# 一句话实现交换字典的key和value
dic1={'a':1,'b':2,'c':3}
gen3=((value,key) for key,value in dic1.items())
print(dict(gen3))
# dic1=dict(((value,key) for key,value in dic1.items()))
t=[[1,2],[2,3],[3,4]]
def dice1(sep):
p={}
for item in sep:
for item1 in range(2):
p[item[0]]=item[1]
return p
print(dice1(t))
(表达式 for 变量 in 序列 if 条件语句)
def gen():
for x in 序列:
if 条件语句:
yield 表达式
# python的三目运算符
# C语言 条件语句?值1:值2
# 如果条件语句为真,整个表达式的值是值1,否则值2
python 中
值1 if 条件语句 else 值2
a,b=10,20
result = a if a>b else b
print(result)
数据持久化
程序中产生的数据默认保存在内存中 程序结束后数据自动销毁。如果需要程序运行结束后数据不销毁,就需要数据持久化 将数据保存到文件中,然后将文件保存在硬盘中
2.文件操作(对文件内容操作)
1.打开文件
open(file,mode='r',encoding=None) - 以指定的方式打开文件,返回文件对象
file - 文件路径,可以写绝对路径也可以写相对路径
绝对路径 - 文件的具体位置,完整路径
相对路径 - 需要将文件保存在当前工程中
./ - 当前目录 (可以省略)
../ - 当前目录的上层目录
.../ - 当前目录上层目录的上层目录
依次类推
x1=f.read() 报错 以'w'只写的方式打开,不能读
x=f.read() # 读所有
print(x)
x1=f.read()
print(x1) #第二次读不出来 因为第一次读到了最后
f.seek(0) 设置读写位置()里面填字节大小
f.readline()读一行
如果读取内容到最后没有了,使用read/readline 会返回空字符串 读一个本地的txt文件的内容,一行一行的读,度完为止
s=open('test',encoding='utf-8')
while True:
print(s.readline())
if s.readline()=='':
break
3.字节类型(bytes)
将其他类型转换成bytes类型:整数 布尔 字符串(要加encoding='utf-8' 以'br'/'rb'的方式读文件,也能拿到
两种将字符串转换成二进制的方法
print(bytes('你好',encoding='utf-8'))
print('你好!'.encode())
两种将bytes转换成字符串的方法
b1='路飞'.encode()
print(b1)
str1=str(b1,encoding='utf-8')
print(str1)
str2=b1.decode(encoding='utf-8')
print(str2)
二进制文件的读写
图片、视频、音频等都是二进制文件。这些文件只能以
带'b'的方式打开然后操作
# 读操作
# image_file=open('图片.jpg','br')
# b1=image_file.read()
# 写操作
image_file2=open('新图片.jpg','wb')
image_file2.write(b1)
什么是json数据
满足json格式要求的数据就是json数据;文件内容满足json 格式要求,就是json文件
import json #这个内置的
json格式要求
1.一个json有且只有一个数据
2.这个数据必须是json支持的数据类型的数据
json支持的数据类型:
number(数字) - 包含所有的整数,小数,科学计数法 例如 3e4 10.23 12
string(字符串) - 使用(!!双引号!!)的字符集
(bool)布尔 - 只有true false (小写)
(array)数组 - 相当于python中的列表
(dict)字典 - 键只能是字符串,值任何数据
null - None
# 2.python数据和json数据的相互转换
# python中内置json模块,用来支持json操作
json 转 python
json -> python
数字 int/float
字符串 str,有可能将"变为'
布尔 true变为True,false变为False
数组 list
字典 dict
null None
json.loads(字符串,encoding='utf-8') - 将json数据转换成python对应的数据
注意:字符串要求字符串内容必须是json数据(去掉引号之后是json数据)
print(json.loads('"abc"'))
python -> json
int/float number
bool ture、false
str 加双引号
list/tuple 数组[]
dict 字典
None null
# json.dumps(数据) - 将pytoon数据变成json数据
print(json.dumps(({2:2,3:3})))