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]()还是调用函数

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

你可能感兴趣的:(day11-markdown总结)