python学习道路(day3note)(元组,字典 ,集合,字符编码,文件操作)

时间:2021-04-22 00:00:27
1.元组()
元组跟列表一样,但是不能增删改,能查。元组又叫只读列表
2个方法 一个 count 一个 index

2.字典{}
字典是通过key来寻找value
因为这里功能比较多,所以写入了一个Code里面,后面加了注释。
 1 #!/usr/bin/env python
2 #_*_coding:utf-8_*_
3
4 info = {
5 'stu1101':"Tenglan Wu",
6 'stu1102':"LongZe Luola",
7 'stu1103':"XiaoZe Maliya",
8 }
9 #print(info)
10 #print(info["stu1101"]) #查找
11 #print(info.get('stu1104')) #查找 常用
12 #info['stu1101'] = "武藤兰" #修改
13 #info['stu1104'] = "cangjingkong" #添加
14 #del
15 #del info["stu1101"] #删除
16 #info.pop("stu1101") #删除
17 #print("stu1103" in info) #判读是不是有个这个key,返回true false
18 # #print(info)
19 b = {
20 'stu1101':"alex",
21 1:3,
22 2:5,
23 }
24 #info.update(b) #把2个字典合并,有交叉的Key覆盖,没有的旧添加
25 #print(info)
26 #c = dict.fromkeys([6,7,8],[1,{"name":"alex"},444]) 没用
27 #print(c)
28 #print(info.items()) #把字典转化为一个列表
29
30 for i in info:
31 print(i,info[i]) #这个更高效
32 for k,v in info.items(): #items 是把字典转为列表过程,时间会慢
33 print(k,v)

 

3.集合

跟数学里面的定义差不多

因为这里功能比较多,所以写入了一个Code里面,后面加了注释。

 1 #!/usr/bin/env python
2 #_*_coding:utf-8_*_
3
4 #集合
5 #list_1 = [1,4,5,7,3,6,7,9] #集合也是无序的
6 #list_1 = set(list_1) #list_1化为集合
7 #print(list_1,type(list_1))
8 #list_2 = set([2,6,0,66,22,8,4])
9 #print(list_1,list_2)
10
11 #交集 &
12 #print(list_1.intersection(list_2))
13 #并集 |
14 #print(list_1.union(list_2))#union联合的意思
15 #差级 我有你没有,你有我没有的 -
16 #print(list_1.difference(list_2)) #保留1里面有的,2里面有没有的
17 #子集 我包含你
18 #print(list_1.issubset(list_2)) #返回ture false
19 #print(list_1.issuperset(list_2))
20 #对称差集 ^ 上面的
21 #print(list_1.symmetric_difference(list_2))#互相都没有的取出来放到一块
22 #print(list_1.isdisjoint(list_2)) #判断有没有交集 返回true false
23
24 #添加一项
25 #list_1.add(999)
26 #print(list_1)
27 #添加多个
28 #list_1.update([888,777,555])
29 #print(list_1)
30 #删除
31 #list_1.remove(888) #不用print删除就是删除了
32 #list_1.pop()
33 #list_1.discard(777) #删除不会报错
34 #长度
35 #print(len(list_1))
36 #成员使用
37 #in not in

 

4.字符编码

记住一句话,用什么编码写的程序,就用什么编码打开  

 1 #!/usr/bin/env python
2 #_*_coding:utf-8_*_
3
4 #默认编码
5 #import sys
6 #print(sys.getfilesystemencoding())
7 #s = "您好"
8 #s_to_unicode = s.decode("utf-8")
9 #print(s_to_unicode)
10 #s_to_gbk = s.decode("utf-8").encode("gbk") #(不给值,就是默认)
11 #print(s_to_gbk)

 

5.文件操作

一般r+ w的关闭和打开具有清空文件作用

因为这里功能比较多,所以写入了一个Code里面,后面加了注释。

 1 #!/usr/bin/env python
2 #_*_coding:utf-8_*_
3
4 #文件操作
5 #readlines 是将文件读成列表的形式 ,每行就是一个元素 预先读到内存里成列表
6 #date = open("yesterday.txt",encoding="utf-8").read()
7 #f = open("yesterday.txt",'w',encoding="utf-8")#f 文件句柄,就是这个文件的内存文件对象 w这个写模式是创建文件会覆盖
8 #date= f.read()
9 #f = open("yesterday.txt",'a',encoding="utf-8") #a 就是追加不覆盖文件
10 #ate2 =f.read()#文件指针的这种东西,date2没有内容,文件只读一遍
11 #print(date)
12 #f.write("我爱北京*.......,\n") #斜杠为转义符,\n就是回车
13 #f.write("*上太阳升......")
14 #读前五行
15 #f = open("yesterday.txt",'r',encoding="utf-8")
16 #print(f.readline())
17 #print(f.readline())
18 #print(f.readline())
19 #for i in range(5):
20 # print(f.readline())
21 #for line in f.readlines(): #循环列表,相当于每一行,每一行元素
22 # print(line.strip())
23 #print(f.readlines()) #每行一个元素
24
25
26 #for index,line in enumerate(f.readlines()): #打印到9行前内容 但是提前读了全文 f.readline适合小文件
27 # if index == 9:
28 # print("___fengexian____")
29 # continue
30 # print(line.strip())
31
32 #count = 0
33 #for line in f: #一行行的读,内存也只读一行信息#打印到9行前内容
34 # if count == 9:
35 # print("fdsfsdfsdfsdf___fengexian____dsfdfdsfdsfs")
36 # count += 1
37 # continue
38 # print(line)
39 # count += 1
40
41 #print(f.read(5))#读五个字符
42 #print(f.tell())#告诉你文件句柄的指针打印出来 按字符个数计数
43 #f.seek(0)#回到光标的开始位置 0可以是其他前面的会被删除显示
44 #print(f.readline())
45 #print(f.encoding)#打印文件编码
46 #print(f.fileno()) #返回一个编号,一个接口,调用操作系统文件的IO
47 #print(f.name)#打印文件名字
48 #print(f.isatty())#终端 tty
49 #print(f.readable())#判断文件是否可读
50 #print(f.writable())#判断文件是否可写
51 #print(f.flush())#刷为了解决文件存在内存然后恶意关闭,其实他是有个内存值,当达到了这个值会直接写到硬盘里面
52 #f = open("yesterday.txt",'a',encoding="utf-8")
53
54 #print(f.closed) #判断文件是否关闭
55 #f.truncate(10)#本意截断的意思 不写就是清空 从10往后截断 还需要跟a配合
56 #f.close()
57
58 #文件读写
59 #f = open("yesterday.txt",'r+',encoding="utf-8") #以读和追加打开 a+追加读
60 ##print(f.readline())
61 #print(f.tell())
62 #f.write("12456----duiaoi-------")
63 #写读
64 #f = open("yesterday.txt",'w+',encoding="utf-8") #先创建个文件再追加进去 rb读二进制文件 显示b'就是bytes文件
65 #多用于网络传输,进制文件
66 #f.write("12456----duiaoi-------")
67 #print(f.tell())
68 #f.seek(10)
69 #print(f.tell())
70 #print(f.readline())
71 #f.write("wode tian a shenme iqnkguang ")
72 #在原文件上的修改必须同字符,不然不能修改会把内容覆盖
73 #ru r+u windows上\r回车,linux\n回车为了统一
74
75 #硬盘修改文件方法
76 #f = open("yesterday.txt",'r',encoding="utf-8")
77 #f_new = open("yesterday.bak.txt",'w',encoding="utf-8")
78 #for line in f:
79 # if "年少轻狂" in line:
80 # line = line.replace("年少轻狂","hahaha")
81 # f_new.write(line)
82 #f.close()
83 #f_new.close()
84
85 #with 语法 可以不需要手动写关闭
86 #with open("yesterday.txt",'r',encoding="utf-8") as f:
87 # for line in f:
88 # print(line.strip())
89 #同时打开2个文件
90 #with open("yesterday.txt",'r',encoding="utf-8") as f,\
91 # open("yesterday.bak.txt",'w',encoding="utf-8") as f_new: