上节课讲的内容
变量、输入输出、选择语句
比较运算符:
>,<,>=,<=,!=,==...
逻辑运算符:
and or not
演示08_answer.py 石头剪刀布人机大战
字符编码:
ASCII、GB2312、GBK、UNICODE------> utf-8
ord('A')=65chr(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")
str(a).encode("gbk").decode("GBK")
用默认(GBK)方式打开文件并进行写操作(Python会先gbk打开文件,给写入字符串编码成gbk,再写入文件)
with open("b.txt" , "w") as f:
f.write(str(a))
用UTF-8打开文件并进行写入操作(Python会先UTF-8打开文件,给写入字符串编码成UTF-8,再写入文件)
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.py
tuple 元组
类似列表,但是不可以修改
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