day11-markdown总结

1.record 容器类型:字典,列表,集合
1.列表:有序的(可以获取下标),可变的(增删改),列表的元素一颗是任何类型的数据
2.列表相关操作:增删改查
3.删除:del,remove:删除指定元素 pop:下标删除
4.列表相关方法:
字典(dict):
1.可变(增删改):唯一的,不可变
2.value:可以是任何类型数据
相关操作:增删改查
字典相关运算:in/not in len()
元祖(tuple):有序,不可变(看成不可变的列表)
差和列表一样
只有一个原色的元祖:(1,)
获取元祖中的原色:x, y=(100,200)
集合(set):无序的,可变,元素是不可变的,支持数学的集合运算:包含,交集,并集,差集和补课
函数:
1.函数的声明(格式和步骤)---声明的时候不会执行函数体

def 函数名(参数列表): 函数的说明文档 函数体

2.函数的调用(格式和调用过程)
函数名() 变量() 列表[下标]() 字典[key]()还是调用函数

【day11-markdown总结】3.参数相关:位置参数、关键字参数、参数的默认值、不定长参数
4.返回值:return和None
return作用:结束参数
5.匿名函数:格式
6.递归函数
7.函数作为变量使用:声明函数的时候实质是在声明一个类型滴function的变量
2.文件操作 1.基本过程:打开文件-操作-关闭文件
open(路径,打开方式,encoding=编码方式<文本编码设置>,二进制不能设置编码)
a.路径:相对路径:./相对路径 b.打开方式:r/rb/br----读相关的 w/bw/wb,a-----写相关的 路径不存在的时候,读打开会报错,写的时候打开会自动新建文件 c.设置编码:utf-8 注意:如果是以二进制形式打开文件,不能设置编码方式 3.文件的读和写read()/readline----读 write()---写 4.关闭 5.close()

一、打开文件和关闭文件的简写方式()
with open('./files/0.jpg','rb') as f: content = f.read() print(type(content)) with open('./files/new.jpg', 'wb') as ff: ff.write(content)

3.json文件 json是有特殊格式的一种文本形式,他有自己的语法。
json文件就是后缀是.json的文本文件
1.json格式对应的数据类型及其表现
a.一个json文件中只能存在一个数据,这个数据的类型必须是一下类型中的一个

类型 格式
对象(object) {"a":10, "b":[1,2]}
数组(array) [100, "abc", [1, 2]]
数字(number) 100, 3.14
字符串(string) "ac", "hell"
布尔(): true/false
json模块是python中内置的,专门用来处理json数据的一个模块
1.load(json文件对象):以json的格式,获取文件中的内容 2.loads(json格式内容的字符串,编码方式):将json格式的字符串,转换成python对应的数据

with open('./files/josn1.json', 'r', encoding='utf-8')as f: content = json.load(f) print(content)

2.python对json数据的支持
json python
对象 字典(dict)
数组 列表(list)
数字 整数(int)浮点数(float)
布尔(trur/false) 布尔(True/False)
1.load(json文件对象):以json的格式,获取文件中的内容
2.loads(json格式内容的字符串,编码方式)json转python
3.dump(需要写入json文件中的python数据,json文件对象)
4.dumps(需要转换成json格式字符串的python数据)
content1 = json.loads('{"a":100, "abc":true}',encoding = 'utf-8') print(content1) with open('./files/new.json', 'w', encoding = 'utf-8') as f json.dump({"a":100,"b":102}, f) 注意:python中集合不能转换成json数据

练习:用json文件来保存一个班级信息,包括班级名和班上所有学生(名字年龄好电话)
输入学生信息添加学生
根据姓名删除学生
做到数据持久化
基本框架
{ "class_name": "班级名" "all_student":[ {"name":名字1, "age":年龄, "tel":"123"}, {"name":名字2, "age":年龄, "tel":"123"}, {"name":名字3, "age":年龄, "tel":"123"}, ] }

1.读出保存班级信息对应的json文件的内容 with open('./files/class_info.json', 'r', encoding='utf-8') as f: class_content=json.load(f) print(class_content) 2.输入信息添加数据 name = input('姓名') age = input('年龄:') tel = input('电话:') stu = {"name":name, "age":int(age), "tel":tel} class_content["all_student"].append{stu} with open('./files/class_info.json', 'w', encoding='utf-8') as f: json.dump(class_content,f)

4.异常捕获 1.为什么要使用异常捕获
程序出现某种异常,但是不想因为异常而让程序崩溃,这时候就可以使用异常捕获机制
2.怎么不糊异常
形式1:捕获try代码块所有异常
try: 需要捕获异常的代码块(可能会出现异常的代码块),出现异常直接捕获except except: 出现异常后执行代码 执行过程:执行try后面的代码块,一旦遇到异常,就马上执行except后面的代码块,执行完后在执行其他语句

形式2 try: 需要捕获异常的代码块(可能会出现异常的代码块)出现异常直接执行except except 错误类型: 出现异常后执行代码 执行过程:执行try后面的代码块,一旦遇到指定异常,就马上执行except后面的代码块 执行完后再执行其他的语句。 如果try里面的代码块没有出现指定异常,就不执行except后面的代码块,而是直接执行其他语句

形式3: try: 需要捕获异常的代码块(可能会出现异常的代码块)出现异常直接执行except except (错误类型1,错误类型2,错误类型3): 出现异常后执行代码

形式4 try: 需要捕获异常的代码块(可能会出现异常的代码块) except 错误类型1: 执行语句块1 except 错误类型2: 执行语句块2

形式5 try: 需要捕获异常的代码块(可能会出现异常的代码块) except : pass finally: 不管有没有捕获到异常,都会执行(就算崩溃了也会执行)。

1.什么情况 a.输入两个数,然后求两个数的商是多少14 num1 = float(input('除数:')) num2 = float(input('被除数:')) print('%f / %f = %f'% (num1,num2, num1/num2)) b.打开一个不存在的文件,不希望程序崩溃,只是让读出的内容是空 2.异常捕获 a = [1, 2, 3, 4, 5] try: print(int('abcd')) print(a[6]) except: print('捕获到异常') print('============')try: print(a[6]) except (IndexError, KeyError):#(多个捕获) print('下标越界') try: print('abc') except: print('出现异常') finally: print('最后的语句')num = input('请输入一个奇数:') if int(num) % 2 == 0: raise ValueError

    推荐阅读