python基础-note-4.15

昨日内容复习

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.作业

#1.根据输入名字的不同,打印不同内容
username=input("username>>>").strip()
if username=="jason":
	print("超级管理员")
elif username in ["tony","kevin"]:
	print("普通用户")
else:
	print("fp")

#2.猜年龄的游戏
"""
程序编写的思考逻辑
1.先写程序的主体功能
2.之后再完善次要功能
3.最后再考虑优化代码
"""
age=18
count=1	#定义一个记录用户猜测次数的变量
while True:
	if count==4:	#先判断当前用户猜测是第几次
		choice=input("您已猜错三次,是否继续y/n>>>")
		if chioce=="y":	#判断
			count=1	#重置count计数
		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))	#3

* 获取值
print(d["username"])	#jason
#如果键不存在则直接报错
print(d.get("hobby"))	#["reading","studying","music"]
#如果键不存在,则返回None
print(d.get("username","不好意思没有这个键")	#自定义提示信息(键不存在才会展示)

* 修改值
d["username"]="jasonfp"
d["username"].append("swimming")

* 删除值
d.pop("password")
print(d,res)

*三个小方法
print(d.keys())	#获取字典所有键	dict_keys(['username','password','hobby'])
print(d.values())	#获取字典所有值	dict_values(['jason',123,['reading','studying','music'])
print(d.items())	#获取字典所有键值对	dict_items([('username',jason'),('password',123),('hobby',['read','study','music'])])


2.元组
t=(11,22,33,44)
* 统计长度
print(len(t))	#4

* 索引取值和切片操作
print(t[0],t[1:3])	#11,(22,33,44)

* 元组内元素不能被修改
t1=(11,22,33,[1,2,3])
t1[-1].append(666)
print(t1)	#(11,22,33,[1,2,3,666])


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)	#b'\xc4\xea\xc9\xd9\xd3\xd0\xce\xaa'
#解码
res1=res.decode("utf8")	#解码
print(res1)	#'年少有为'

3.文件操作

文件:操作系统提供给用户用来操作计算机硬盘的快捷方式
#control+方法:查看使用方法
1.打开文件
open("文件路径""读写模式""文件编码")
with open("a.txt","r",encoding="utf8") as f:
	print(f.read())
* 文件路径
	绝对路径:不需要参考系,相当于完整的路径,任何位置都可以直接找到对应的数据
	相对路径:需要有参考系,路径只能给基于参考系的位置才能找到
* 读写模式
	r	只读	不能写	#若文件路径不存在,则报错
	w	只写	不能读	#若文件路径不存在,则自动创建该文件,文件存在会先清空文件内容,然后写入
	a	只追加(接在文件末尾)	不能读	#若文件路径不存在,则自动创建文件
* 文件编码

#pass不执行任何代码,只为了补全语法
#\n	换行符	\t	制表符	
#转义:在字符串路径前面加字母r
print(r'E:\数据分析\python基础day01\视频')

* 操作模式
t	文本模式	只能操作文本文件(文件操作的默认模式)
r#(rt)
w#(wt)
a#(at)
#1.必须指定encoding参数
#2.读写都是以字符串为单位
#3.只能操作文本文件
b	二进制模式	能够操作所有文件,需要自己指定
	rb、wb、ab
#1.不需要encoding参数
#2.读写都是以bytes类型为单位
#3.能够操作所有文件
"""
字符串前面加字母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.尝试使用文件操作实现用户登陆注册
	用户登录	数据校验来自于文件
	用户注册	数据写入保存到文件
	#只需要实现一次即可(无需多个用户 也无需校验用户名重复)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值