本文共 3995 字,大约阅读时间需要 13 分钟。
一. 集合操作
1 #assemble 去重 关系测试 2 3 list1=[1,2,3,4,5,6,2,3] 4 list2=[3,4,5,6,7,8,7,8] 5 list3=set([1,2,5]) 6 list4=set([1,2,3,4,5,6,7,8,9]) 7 8 list1=set(list1) #变成集合后就自动去重 9 list2=set(list2)10 11 #交集 intersection12 print(list1 .intersection(list2))13 print(list1 & list2)14 15 #并集 union16 print(list1.union(list2))17 print(list1 | list2)18 19 #差集 difference20 print(list1.difference(list2))21 print(list1 - list2) # in list1 but no in list222 print(list2 - list1) # in list2 but no in list123 24 #对称差集 symmetric difference25 print(list1.symmetric_difference(list2))26 print(list1 ^ list2) #把两个集合都重复的去掉27 28 #子集 issubset29 print(list1.issubset(list4)) #list1是list4的子集30 31 #父集 issuperset32 print(list4.issuperset(list1)) #list4是list1的父集33 34 list1.add(123) #在集合中添加一项35 list2.update([12,34]) #在集合中添加多项36 print(list1)37 print(list2)38 39 list3.remove(5) #删除一项40 print(list3)41 42 43 print(len(list4)) #集合的长度44 45 print(5 not in list3) #5不在集合3中?
二.文件操作 (重点!)
1 #Author : Felix Li 2 # 文件的操作 3 4 #基础操作 5 6 #f=open("yesterday","r",encoding="utf-8") #文件句柄 7 8 #f.write("\n--------------------\n我爱济南!\n") 9 #data=f.read()10 #f.close()11 #print(data)12 13 14 15 '''16 17 #高效 的写法 打开文件,读取文件18 19 f=open("yesterday","r",encoding="utf-8")20 21 count=022 for line in f: #一行行的读 ,内存里只有一行代码 ,f变成了迭代器23 if count== 9:24 print("------我不打印这一行!--------")25 count+=126 continue27 print(line)28 count += 129 30 31 32 33 #low loop34 35 for index,line in enumerate(f.readlines()): #把文件变成一个列表 适合读小文件36 if index == 9:37 print("------我不打印这一行")38 continue39 print(line.strip())40 41 for i in range(5): #读前五行42 print(f.readline())43 44 #print(f.encoding) #打印文件编码45 46 47 48 49 import sys,time #进度条50 for i in range(50):51 sys.stdout.write(">")52 sys.stdout.flush()53 time.sleep(0.1)54 55 56 57 f=open("yesterday","r+",encoding="utf-8")58 print(f.readline())59 print(f.readline())60 print(f.readline())61 print(f.readline())62 print(f.tell())63 f.write(".............")64 print(f.readline())65 '''
三.字符编码与转码
ASCII只能存在英文或者特殊字符
1 #Author : Felix Li 2 3 import sys 4 print(sys.getdefaultencoding()) 5 6 s="我爱济南" 7 print(s) 8 s_gb2312=s.encode("gb2312") #把unicode转成gb2312 9 print(s_gb2312)10 11 gb2312_to_unicode=s_gb2312.decode("gb2312")12 print(gb2312_to_unicode) #把gb2312转成unicode13 14 gb2312_to_utf8=s_gb2312.decode("gb2312").encode("utf_8")15 print(gb2312_to_utf8) #把gb2312转成utf8
py3中 的 encode还会把string--->bytes类型
四.函数与函数式编程
1、 编程方法:
2、函数的优点
3. 形参与实参
非固定参数
1 #Author : Felix Li 2 3 ''' 4 def text1(): 5 # text1 6 print("函数式编程输出") 7 return 0 8 print("出不来") 9 text1()10 x=text1()11 print(x)12 13 14 def text2(x,y,z): #形参和实参15 print(x+2)16 print(y/2)17 print(z*x)18 19 text2(2,15,3)20 21 22 #*args:接受N个位置参数,转化成元组23 24 def test3(x,*args):25 print(x)26 print(*args)27 test3(1,2,3,4,5,6)28 29 '''30 31 32 33 34 #**kwargs:把N个关键字参数,转成一个字典的方式35 36 def test4(name,age=24,*args,**kwargs):37 print(name)38 print(age)39 print(args)40 print(kwargs)41 test4('felix',45,50,60,sex="man",ars='山东省')
4.默认参数
def test(x,y=2)
print(x)
print(y)
test(1)
#默认参数的特点:调用函数的时候,默认参数非必须传递
默认参数的用途: 默认安装值
5、局部变量,全局变量
列表 字典 集合 类 都可以 局部 改 全局
6、递归函数 (常用)
特点:
1 #Author : Felix Li 2 ''' 3 递归特性:(recursion) 4 5 1. 必须有一个明确的结束条件 6 7 2. 每次进入更深一层递归时,问题规模相比上次递归都应有所减少 8 ''' 9 10 # def rec(n):11 # print(n)12 # if int(n/2)>0:13 # return rec(int(n/2))14 # print("-->",n)15 # rec(10)
7、高阶函数
1 def calc(a,b,f):2 return f(a)+f(b)3 4 add=calc(2,-3,abs)5 print(add)
转载地址:http://mrtnmu.baihongyu.com/