昨日内容复习
1.运算符
1.逻辑运算符
and
or
not
2.成员运算
in
not in
3.身份运算
is 内存地址
== 值
2.流程控制
1.if判断
if condition1:
code1
elif condition2:
code2
……
else:
code
2.while循环
while condition:
循环替代码
"""
break 结束本层循环
continue 结束本次循环,直接开始下一次
"""
3.for循环
for 变量名 in 可迭代对象(字符串、列表、字典、元组):
循环体代码
"""
range() 产生指定的数字序列组合
"""
3.数据类型的内置方法
1.整型 int()
2.浮点型 float()
3.字符串 str()
len() strip() split() count() 索引去值切片
upper() lower() isupper() islower() replace()
4.列表
list() len() append() insert() extend()
索引取值及切片 l[i]=value pop() remove() sort()
4.作业
username=input("username>>>").strip()
if username=="jason":
print("超级管理员")
elif username in ["tony","kevin"]:
print("普通用户")
else:
print("fp")
"""
程序编写的思考逻辑
1.先写程序的主体功能
2.之后再完善次要功能
3.最后再考虑优化代码
"""
age=18
count=1
while True:
if count==4:
choice=input("您已猜错三次,是否继续y/n>>>")
if chioce=="y":
count=1
else:
print("欢迎下次再来玩!")
break
guess_age=input("guess age>>>").strip()
if not guess_age.isdigit():
print("请输入纯数字")
guess_age=int(guess_age)
if guess_age>age:
print("猜大了")
count+=1
elif guess_age<age:
print("猜小了")
count+=1
else:
print("你真聪明!")
break
今日内容
1.数据类型内置方法
1.字典
d={"username":"jason",
"password":"123",
"hobby":["reading","studying","music"]}
* 统计长度(键值对个数)
print(len(d))
* 获取值
print(d["username"])
print(d.get("hobby"))
print(d.get("username","不好意思没有这个键")
* 修改值
d["username"]="jasonfp"
d["username"].append("swimming")
* 删除值
d.pop("password")
print(d,res)
*三个小方法
print(d.keys())
print(d.values())
print(d.items())
2.元组
t=(11,22,33,44)
* 统计长度
print(len(t))
* 索引取值和切片操作
print(t[0],t[1:3])
* 元组内元素不能被修改
t1=(11,22,33,[1,2,3])
t1[-1].append(666)
print(t1)
3.集合
* 去重
集合内不允许出现重复的元素,会自动去重
se={11,11,22,44,22,111,11,33,44,55}
print(se)
* 关系运算
s1={'jason','kevin','tony'}
s2={'jason','tom','jack'}
print(s1&s2)
print(s1|s2)
print(s1^s2)
print(s1-s2)
print(s1>s2)
"""重点掌握字符串、列表、字典"""
2.字符编码
* 定义
人类与计算机交互过程中,均是使用人类能读懂的字符,如中文、韩文、英文……
而计算机只能识别01的二进制数
字符编码就记录了人类的字符与数字的对应关系
* 发展历史
1.阶段1:计算机起源于美国,最先仅考虑让计算机识别英文字符
ASCII码表——记录了英文字符与数字的对应关系
8bit=1bytes 表示一个英文字符
2.阶段2:
中国:GBK——记录了英文字符、中文字符与数字的对应关系
2bytes 表示一个中文字符(遇到生僻字可能采用3bytes、4bytes……)
日本:shift_JIS——记录了英文字符、日文字符与数字的对应关系
韩国:EUS_kr——记录了英文字符、韩文字符与数字的对应关系
3.阶段3:
unicode万国码
统一使用2 bytes 存储字符
utf8
针对unicode的优化版本
1bytes 表示一个英文字符
3bytes 表示一个中文字符
"""
内存使用的是unicode
银盘使用的是utf8
"""
1.文件不乱码的核心:文件最初以什么编码存储,就以什么编码打开
2.编码与解码
编码:将人类的字符按照指定的编码编成计算机能够直接识别的数据(二进制数据) encode
解码:将计算机数字类型的数据按照指定的编码解码成人类的字符 decode
info='年少有为'
res=info.encode("GBK")
print(res)
res1=res.decode("utf8")
print(res1)
3.文件操作
文件:操作系统提供给用户用来操作计算机硬盘的快捷方式
1.打开文件
open("文件路径","读写模式","文件编码")
with open("a.txt","r",encoding="utf8") as f:
print(f.read())
* 文件路径
绝对路径:不需要参考系,相当于完整的路径,任何位置都可以直接找到对应的数据
相对路径:需要有参考系,路径只能给基于参考系的位置才能找到
* 读写模式
r 只读 不能写
w 只写 不能读
a 只追加(接在文件末尾) 不能读
* 文件编码
print(r'E:\数据分析\python基础day01\视频')
* 操作模式
t 文本模式 只能操作文本文件(文件操作的默认模式)
r
w
a
b 二进制模式 能够操作所有文件,需要自己指定
rb、wb、ab
"""
字符串前面加字母b表示bytes类型数据,在python中可以直接理解为二进制
"""
with open(r'11.jpg','rb') as f:
data=f.read()
with open(r'222.jpg','wb') as f:
f.write(data)
作业
1.整理今日内容
涉及到代码编写,要自己手动敲
2.尝试使用文件操作实现用户登陆注册
用户登录 数据校验来自于文件
用户注册 数据写入保存到文件