Python基础第三课
上节课讲的内容
变量、输入输出、选择语句 比较运算符: >,<,>=,<=,!=,==... 逻辑运算符: and or not 演示08_answer.py 石头剪刀布人机大战字符编码:
ASCII、GB2312、GBK、UNICODE------> utf-8ord('A')=65 chr(66)='B' # -*- coding: utf-8 -*- 告诉别人,你的Python文件是UTF-8编码
Python的字符编码问题总结:
使用说明
1.str就是str类型,Python内部用UTF-8编 2.bytes(str,encoding="UTF-8")可以把str转化为UTF8编码的字节流 3.str.encode("gbk") 吧str转化为gbk编码的二进制串 4.byte.decode("UTF-8") 把二进制串按照UTF-8编码解析成字符串 5.Python默认写入文件是gbk编码,想要修改可以打开文件时用UTF-8 例: 把字符串转化为UTF-8编码的二进制串bytes(str(a), encoding="UTF-8")把字符串转化为gbk编码的二进制串
str(a).encode("gbk")把GBK编码的二进制串用GBk编码方式解码成字符串
str(a).encode("gbk").decode("GBK")用默认(GBK)方式打开文件并进行写操作(Python会先gbk打开文件,给写入字符串编码成gbk,再写入文件)
with open("b.txt" , "w") as f:用UTF-8打开文件并进行写入操作( Python会先UTF-8打开文件,给写入字符串编码成UTF-8,再写入文件)
f.write(str(a))
with open("b.txt" , "w", encoding="UTF-8") as f:
f.write(str(a))
典型错误:
str(a).decode("UTF-8")错误1:str类型不能decode,bytes不能encode
print(str(a).encode("gbk").decode("UTF-8"))错误2:用gbk编码成二进制串,再用UTF-8解码不了
重要数据结构:
list 列表
Python 内置的一种数据类型是列表:list。 list 是一种有序的集合(非数学上的集合),可以随时添加和删除其中的元素。 classmate=['小明', '小张'] classmate[0]='小明' ----------->下标从0开始,不可以下标越界 classmate[1]='小张' 增加:append(值) ------>加到结尾 插入:insert(位置,值)------->加到指定位置 删除 pop(位置) 修改:直接赋值 len(列表名) = 列表元素个数 更多操作,11.pytuple 元组
类似列表,但是不可以修改 classmate=('小明', '小张')dict 字典类型
采用hash方式存储,从名字快速对应到内容(so 名字是唯一的),速度快,空间换时间 (what is hash? 127.0.0.1/my/test.php) d={'aa':95 , 'bbb':80 ,'ccccc':100} 查询:通过名字找到对应的值 d['aa'] 增加:去一个名字,然后赋值就可以。 d['dddd'] = 120 d['aa']=150 --------->会覆盖原来的值 修改:直接赋值 d['aa']=150 删除:pop d.pop('aa') d.clear()全部删除set 集合 (数学上的集合,不可以有重复的值)
由list创建 s=set([1,2,3,4,5]) = {1,2,3,4,5} s=set([1,2,2,4]) ={1,2,4} s.add() s.remove() 两个set可以做数学意义上的交集、并集等操作 & |程序控制结构
循环结构:
for ... in ...: ... example: classmate=['asd','asdasd'] for i in classmate: -------->给每一个list类型的值取出来放到i print(i , end=" ") for i in range(len(classmate)):------->len取长度,classmate的个数,range(n) 相当于生成[0,n)的整数 print(classmate[i]) list(range(10)) ------->给rang转化为list类型 while ...: .... ... i=10 while(i!=0): print(i) i=i-1每一项演示10.py 用户登录、添加、查看 09.py

更多精彩