
人工智能时代,该学学python了!
既然确定学习Python了,那么就要一步一步从基础开始学习嘛~!
下面我们来看看基础知识集合(Set)及其函数
集合是一个无序的、无重复元素的序列。
list={1,3,6,5,7,9,11,3,7}#定义集合方式一 list1=set([1,3,6,5,7,9,11,3,7])#定义集合方式二 list2=set()#定义一个空集合 print(list1,list)#打印后可看到,集合中的元素已自动去重 print(3inlist)#判断一个元素是否在集合中,返回bool值 print(20not inlist1)#判断一个元素是否不在集合中,返回bool值 list1.add(99)#新增元素 list1.update([10,20,30,2])#新增多项 list1.remove(3)#删除一个元素,若元素不存在则报错 print(list1.discard(8))#删除一个元素,若元素不存在则不做任何操作 print(len(list1))#计算集合中元素的个数 print(list1.pop())#从集合中随机弹出一个元素 list.clear()#清空集合集合的运算
list1=set([1,3,6,5,7,9,11,3,7]) list2=set([2,4,6,8,3,5]) print(list1,list2) #交集 print(list1.intersection(list2)) print(list1&list2) #并集 print(list1.union(list2)) print(list1|list2) #差集 print(list1.difference(list2)) print(list1-list2) #对称差集 print(list1.symmetric_difference(list2)) print(list1^list2) #是否为子集是否为父集 list3=set([9,11]) print(list3.issubset(list1)) print(list1.issuperset(list3)) #若两个集合的交集为空返回true list4=set([20,30]) print(list1.isdisjoint(list4)) print(list1.isdisjoint(list2))文件(File)操作
在开发中经常会有读写文件的需求,相关的代码实现如下:
文件的打开模式

文件的读操纵、写操作、追加操作、按行读取文件
#read直接读文件全文 f=open('test','r',encoding='utf-8')#文件句柄 data=f.read() print(data) #write向文件中写 f=open('test1','w',encoding='utf-8') f.write('我爱北京天安门, 天安门上太阳升') #append在文件最后追加内容 f=open('test1','a',encoding='utf-8') f.write('呀呼嘿') #loop按行读取文件 #highbigger将文件作为迭代器读一行打印一行内存中只缓存一行 f=open('test','r',encoding='utf-8') count=0 forl inf: ifcount==9: print('----------') count+=1 continue print(l.strip()) count+=1 #lowloop将文件内容全部读取至内存,效率低 f=open('Sonnet','r',encoding='utf-8') for index,line inenumerate(f.readlines()): ifindex==9: print('------------') continue print(line.strip())文件的函数
f=open('test','r',encoding='utf-8')#文件句柄读模式打开文件 print(f.tell())#获取当前光标位置 print(f.readline()) print(f.readline()) print(f.tell()) print(f.readline()) f.seek(10)#跳转光标到第10个字符 print(f.readline()) print(f.encoding)#获取文件编码 print(f.fileno())#idon'tknowwhatitis print(f.isatty())#判断文件是否是tty终端 print(f.readable())#判断文件是否是可读 print(f.writable())#判断文件是否是可写 print(f.seekable())#判断文件是否是可跳转光标(tty不可跳转 f.flush()#当用写模式打开文件时并不是写一句系统就会调用一次io若需要及时刷新硬盘中的文件内容可以调用该函数 f.close()#关闭文件 print(f.closed)#判断文件是否关闭文件的修改
#文件的修改直接修改文件本身比较困难可以将修改写入另一个文件中如有需求可以再写回文件本身 f=open('test','r',encoding='utf-8') f_new=open('test.bak','w',encoding='utf-8') forline inf: if'我曾千万次梦见'inline: line=line.replace('我曾千万次梦见','我不想千万次梦见') f_new.writelines(line) f.close() f_new.close()一个进度条实例 用于理解flush函数的机制 该实例可以实现进度条效果
importsys importtime f=open('Sonnet1','w',encoding='utf-8')#文件句柄写模式打开文件会新建一个文件若同名文件存在则直接覆盖 fori inrange(10): sys.stdout.write('#') sys.stdout.flush() time.sleep(0.2)字符编码转换
字符编码转换最重要的一点就是,切记unicode是编码之间的中转站,若unicode不是目标编码或者原始编码,那么任何两个编码相互转换都需要经过unicode(见下图)。
需要注意的是,python的默认编码是ASCII,python3的默认编码是unicode。
在python3中encode,在转码的同时还会把string变成bytes类型,decode在解码的同时还会把bytes变回string。

函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。python提供了许多内建函数(如print());也可以自己创建函数,即用户自定义函数。
定义一个有自己想要功能的函数,需要遵循以下规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 () 。 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。 函数的第一行语句可以选择性地使用文档字符串――用于存放函数说明。 函数内容以冒号起始,并且缩进。 return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。待补充知识:函数的参数、变量作用域、递归、高阶函数。