python第三天学习总结

1.集合
集合主要对里面的元素进行去重和关系运算,元素排列是无序的。
a.集合的操作
#############去重
set1 = {1,1,2,2,3,4,4,5}
print(set1) #输出set1 = {1,2,3,4,5}
##############增加值
set1 = {1,1,2,2,3,4,4,5}
set1.add(6)
print(set1) #输出set1 = {1,2,3,4,5,6}
set1.update('abc')
print(set1) #输出set1 = {1,2,3,4,5,6,'a','b','c'}
###############删除
set1.pop() #随机删除
set1.remove('a') # 按照元素删除,如果无此元素会报错
set1.clear() #清空集合
del set1 #删除集合
#################查询
用for循环查询,因为集合的元素是无序的
b.集合的关系运算
set1 = {1,2,3,4,5} set2 = {1,2,3,7,8}
print(set1 & set2) #交集。输出{1, 2, 3}
print(set1 | set2) #并集。输出{1, 2, 3, 4, 5, 7, 8}
print(set1 - set2) #差集。输出{4, 5}
print(set2 - set1) #差集。输出{7, 8}
print(set1 ^ set2) #反交集。输出{4, 5, 7, 8}
print(set1 < set2) #子集。输出False
print(set2 > set1) #超集。输出False

2.深浅copy
######浅copy 第一层各自独立,从第二层开始,共用一个内存地址
s1 = [1, 2, 3,[11,22]]
s2 = s1.copy()
s1[-1].append(666)
print(s1, s2) #s1和s2一样的值
print(id(s1), id(s2)) #s1和s2的内存id不同
print(id(s1[-1]), id(s2[-1])) #内层列表的id值是一样的
深copy 无论多少层,都是互相独立的
import copy
s1 = [1, 2, 3,[11,22]]
s2 = copy.deepcopy(s1)
s1.append(4)
print(s1, s2) #只有s1增加了4,s2并没有增加4,说明第一层不是同一内存地址
s1[-1].append(33) #在内层的列表增加值33
print(s1, s2) #只有s1内层列表增加了33,s2并没有增加33,说明内层不是同一内存地址

3.文件操作
文件操作的执行流程: 打开文件,产生文件句柄(f1)--- 对文件句柄进行操作(open())---关闭文件句柄(f1.close())
########文件的读
r模式:
f1 = open('123.txt',encoding='utf8',mode='r') #123.txt要存在当前目录,否则会报错
print(f1.read()) #打印读取的内容
f1.close() #关闭文件句柄
f1.read(n) #按照字符读取,n代表n个字符
f1.readline() #按行读取
f1.readlines() #返回列表,包含所有的行
rb模式(读取非文字类):
f1 = open('1.jpg',mode='rb') #1.jpg要存在当前目录,否则会报错
print(f1.read())
f1.close()
f1.read(n) #按照字节读取,n代表n个字节
for循环模式:一次循环占用一块内存,循环完后释放。
r+模式和r+b模式和以上模式类似。
##############文件的写
f1 = open('456.txt',encoding='utf-8',mode='w') #没有文件,新建文件写入内容,有原文件,先清空内容,再写入新内容
print(f1.write('456'))
f1.close()
wb模式(非文字类的写入)
f2 = open('2.jpg', mode='wb')
f2.write(f1.read()) #f1.read()是读取一个图片内容
f2.close()
w+模式和w+b模式和以上模式类似.
###############文件的追加
f1 = open('456.txt',encoding='utf-8',mode='a') #没有文件,新建文件写入内容,有原文件,在源文件的基础上增加
print(f1.write('789'))
f1.close()
ab模式 a+模式 a+b模式和以上模式类似
#########文件的其它常用操作
f1.seek() #调整光标的位置
f1.tell() # 告诉光标的位置
with open('123.txt', encoding='utf-8') as f1 #不用主动关闭文件句柄

4.初识函数
函数:以功能为导向,解决重复代码多 可读性差的问题
函数的定义:
def 关键字 函数名():
函数体
函数执行:函数名()
函数的return:终止函数或给函数的执行者返回值。
函数的参数:
#########实参角度
a.位置参数 按照顺序一一对应
def func1(a, b, c):
print(a, b, c)
func1(1, 2, 3) #a=1 b=2 c=3
b.关键字传参 一一对应
def func1(a, b, c):
print(a, b, c)
func1(c=1,b=2,a=3)
c.混合参数(同时包含位置参数和关键字传参),关键字参数必须在位置参数后面
def func1(a, b, c):
print(a, b, c)
func1(1,2,c=3)
############形参角度
a.位置参数 按照顺序一一对应
def func1(a, b, c):
print(a, b, c)
func1(1, 2, 3) #a=1 b=2 c=3
b.默认参数,默认参数在位置参数的后面。
def func1(a, b, c=3):
print(a, b, c)
func1(1,2)
#############动态参数 args:所有的位置参数,放在一个元组中.kwargs:所有的关键字参数,放在一个字典中
def func1(*args, kwargs): #函数的定义的时候 代表聚合
print(args)
print(kwargs)
func1(
[1, 2, 3],
{'name':'cc', 'age':'18'}) #函数的执行的时候 代表打散
形参的顺序:位置参数--
args--默认参数--**kwargs

猜你喜欢

转载自blog.51cto.com/13544778/2122320