目录
1.import time #调⽤time模块
2.import random #调⽤random随机数模块
3. type(参数)函数:查询参数的类型
4. print()函数
5. round()函数:
6. input()函数:
7. append()函数
8.len()函数
9. 元组
10. pop()函数:
11. extend()函数:
12. Python的三种排序⽅式sort()函数
13. reverse()函数:
14.range()函数
15. bool()函数:
16.连接语句and,or,not,in,not in
17. 代码规范:格式化字符串
18. format()函数
19. join()函数
20. index()函数
21. try语法:
22. return语句
23. ⾃定义函数:
24. 读写⽂件格式规范:
25. readlines()函数:
26. writelines()函数:
27. split()函数:
28. join()函数:
29. dir()函数
30. csv模块中常⽤的类⽅法
查询英文取名【⽹址】 :https://unbug.github.io/codel
所有报错的查询【⽹址】: https://www.runoob.com/python/python-xceptions.html
time.sleep(n)#n代表n秒,程序休眠n秒time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())time.localtime():读取当前时间time.strftime('格式',时间参数):格式为%Y-%m-%d %H:%M:%S ,参数为当前时间2022-04-15 21:36:45
randint()函数:格式:random.randint(a,b)代码范例:X = random.randint(a,b) #从a到b产⽣⼀个随机整数并赋值给Xlist1 = [1,2,3,4,5,6,]
random.sample(seq, n)#写法是random.sample()#需要传递两个参数,第⼀个参数是⼀个序列(列表、字符串、元组),第⼆个参数是随机选取的元素个数list2 = random.sample(list1,3)#把list1中的随机3个元素拿出来组成list2
随机选择函数格式:random.choice(参数,个数)范例代码:dict1 = {['A':[],'B':[],'C':[]}dict2 = random.choice(dict1,2)#从dict1中随机选2个组成dict2
强制转换函数:str()\int()\float() + 将内容拼接,需要统⼀类型为str()str()函数int()函数float()函数格式:str(参数)/int(参数)/flfloat(参数)范例代码:print(int(float('1.5')))#str型先转为float型,再转成int型>>>1注意:int()只能转换纯整数字符串类浮点数字符串如'1.5'中的⼩数点是⽆法被int函数直接识别转换的,会报错
格式:print('',end='')end参数可省略不写,默认 end = '\n'print函数⼀种⽤法,⽤逗号隔开,可在同⼀⾏打印不同类型的数据。print(x,'/',y,'=',z)范例代码:i = 2j = 4print('%d * %d = %-2d' % (i,j,i*j),end = 'A')>>>8A
格式:round(参数,数位)函数代码范例: print(round((0.55+0.3),2)))>>>0.85
格式:input('字符串')返回值:在屏幕上显示'字符串',并存储⽤户输⼊的数据(str型)代码范例:A = input('请输⼊')#假设⽤户输⼊了1+1print (A) # A == '1+1'>>>请输⼊>>>1+1
列表操作:在列表末尾添加新元素格式:列表名.append(新元素)#举例:list1.append(n)新元素只能是⼀个,可以是任意类型,甚⾄是⼀个列表范例代码:list3 = [1,2]list3.append(3)#添加单个元素 3 在列表list3末尾print(list3)#输出 [1,2,3]list3.append(4,5)#不可添加多个元素,会报错#报错信息:list3.append(4,5)TypeError: append() takes exactly one argument (2 given) list3.append([4,5])#添加⼀个新的列表在末尾print(list3)#输出 [1,2,3[4,5]]
列表/字典操作:求列表/字典⻓度并返回⼀个⻓度值格式:len(列表/字典名)范例代码:scores = {'⼩明':95,'⼩红':90,'⼩刚':90}print(len(scores))
tuple1 = ('A','B')元组名 赋值号 ⼩括号左 元素N个⽤逗号隔开 ⼩括号右和列表特别类似。
功能:同时提取和删除某个元素(抓出来某元素),默认最后⼀个格式:列表.pop(下标)范例代码:students = ['⼩明','⼩红','⼩刚']student1 = students.pop(0)print(students) #输出['⼩红','⼩刚']print(student1) #输出: ⼩明
格式:列表.extend(列表2)范例代码:list1 = [91, 95, 97, 99]list2 = [92, 93, 96, 98]list1.extend(list2)print(list1)>>>[91, 95, 97, 99, 92, 93, 96, 98]
格式1:列表.sort()升序排序格式2:列表.sort(reverse=True)降序排序格式3:列表.reverse反转排序范例代码:list1 = [91, 95, 97, 99, 92, 93, 96, 98]list1.sort()print(list1)>>>[91, 92, 93, 95, 96, 97, 98, 99]list1.sort(reverse=True)print(list1)>>>[99, 98, 97, 96, 95, 93, 92, 91]
list1 = [91, 95, 97, 99, 92, 93, 96, 98]list1.reverse()print (list1)>>>[98, 96, 93, 92, 99, 97, 95, 91]
格式:range(a,b,c),#从a数到b-1,数的间隔为c当默认 a=0 时可省略为range(b),注意c也不能写当默认 c=1 时可省略为range(a,b)通常与for循环配合使⽤作⽤相当于⽣成⼀个⻓度为b-a的序列list1 = [a,a+1,a+2......b-1]范例代码:for i in range(0,10,3):print(i)输出:0369
格式:bool(参数)代码范例:print('以下数据判断结果都是【假】:') print(bool(False))print(bool(0))print(bool(''))print(bool(None))print('以下数据判断结果都是【真】:')print(bool(True))
格式:语句1 and 语句2返回值:0 and 0 == 00 and 1 == 01 and 0 == 01 and 1 == 1
格式: 语句1 or 语句2返回值:0 or 0 == 00 or 1 == 11 or 0 == 11 or 1 == 1
not 语句格式: not 语句返回值:not 0 == 1not 1 == 0
in 语句 / not in 语句格式: 参数 (not) in 语句返回值:代码范例:a = [0,1]>>> 0 in aTrue >>> 1 not in aFalse
格式:'%s %d %f'% ('字符串',整型参数,浮点型参数)注意和字典类似,⽆序,位置、类型唯⼀对应范例代码:lucky = 8print('我的幸运数字是%d' % lucky)>>>我的幸运数字是8print('我的幸运数字是%d' % 8)>>>我的幸运数字是8print('我的幸运数字是%s' % '⼩⻰⼥的⽣⽇816')>>>我的幸运数字是⼩⻰⼥的⽣⽇816print('我的幸运数字是%d和%d' % (8,16))>>>我的幸运数字是8和16
格式:'...{}...{}...'.format(元素1,元素2......)范例代码:print('\n{}{}'.format('数字:',0)) #优势1:不⽤担⼼⽤错类型码。print('{},{}'.format(0,1)) #不设置指定位置时,默认按顺序对应。print('{1},{0}'.format(0,1)) #优势2:当设置指定位置时,按指定的对应。print('{0},{1},{0}'.format(0,1)) #优势3:可多次调⽤format后的数据。name2 = 'Python基础语法'print('我正在学{}'.format(name2)) # format()函数也接受通过参数传⼊数据。
语法: 'sep'.join(seq)参数说明sep:分隔符。可以为空seq:要连接的元素序列、字符串、元组、字典上⾯的语法即:以sep作为分隔符,将seq所有的元素合并成⼀个新的字符串#列表、元组可得到相同结果(可理解为去掉括号,⽤分隔符分隔每个元素)#字典操作后得到的是 键(舍弃值)#字符串操作后得到的是每个单字符返回值:返回⼀个以分隔符sep连接各个元素后⽣成的字符串范例代码:#对序列进⾏操作(分别使⽤' '与':'作为分隔符)>>> seq1 = ['hello','good','boy','doiido']>>> print ' '.join(seq1)hello good boy doiido>>> print ':'.join(seq1)hello:good:boy:doiido#对字符串进⾏操作>>> seq2 = "hello good boy doiido">>> print ':'.join(seq2)h:e:l:l:o: :g:o:o:d: :b:o:y: :d:o:i:i:d:o#对元组进⾏操作>>> seq3 = ('hello','good','boy','doiido')>>> print ':'.join(seq3)hello:good:boy:doiido#对字典进⾏操作>>> seq4 = {'hello':1,'good':2,'boy':3,'doiido':4}>>> print ':'.join(seq4)boy:good:doiido:hello
格式:list.index(obj),obj为object(对象)的缩写描述:index() 函数⽤于找出列表中某个元素第⼀次出现的索引位置具体可参考代码和运⾏结果。范例代码:num = [0,1,0,1,2]print(num.index(1)) # 数字1⾸先出现的索引位置是list[1](索引位置从0开始)。print(num.index(2)) # 数字2⾸先出现的索引位置是list[4]。>>>1>>>4
try:执⾏命令(⼤部分情况是⽤户输⼊)except 报错类型1:except 报错类型2:报错类型有:1.精确报错:ZeroDivisionError、ValueError、TypeError、2.精确报错(多项):(报错类型1,报错类型2...)3.模糊报错:Exception范例代码1:num = [1,2,0,3,1.5,'6']for x in num:try: # 尝试执⾏下列代码print (6/x)except ZeroDivisionError:print('0是不能做除数的!')except TypeError:# 当报错信息为TypeError,执⾏下⾯的语句。print('被除数必须是整值或浮点数!')范例代码2:print('\n欢迎使⽤除法计算器!\n')while True:try:x = input('请你输⼊被除数:')y = input('请你输⼊除数:')z = flfloat(x)/flfloat(y)print(x,'/',y,'=',z)break # 默认每次只计算⼀次,所以在这⾥写了 break。except ZeroDivisionError: # 当除数为0时,跳出提示,重新输⼊。print('0是不能做除数的!') except ValueError: # 当除数或被除数中有⼀个⽆法转换成浮点数时,跳出提示,重新输⼊。print('除数和被除数都应该是整值或浮点数!')# ⽅式2:将两个(或多个)异常放在⼀起,只要触发其中⼀个,就执⾏所包含的代码。# except(ZeroDivisionError,ValueError):# print('你的输⼊有误,请重新输⼊!')# ⽅式3:常规错误的基类,假设不想提供很精细的提示,可以⽤这个语句响应常规错误。# except Exception:# print('你的输⼊有误,请重新输⼊!')
return语句就是将结果返回到调⽤的地⽅,并把程序的控制权⼀起返回,程序运⾏到所遇到的第⼀个return即返回(退出def块),不会再运⾏第⼆个return。要返回两个数值,写成⼀⾏即可:范例代码:def a(x,y):if x==y:return x,yprint a(3,3)
>>> 3,3return a,b # return 多个值时,返回⼀个元组(a,b)
但并不意味着⼀个函数体中只能有⼀个return 语句,例如:def test_return(x):if x > 0:return xelse:return 0函数没有 return,默认 return⼀个 None 对象。
递归函数中没有return 的情况:def gcd(a,b):if a%b==0:return belse:gcd(b,a%b)分析:else 中没有 return 就没有出⼝,这个程序是⾃⼰内部运⾏,程序没有返回值,
return 和 print 的区别:在交互模式下,return的结果会⾃动打印出来,⽽作为脚本单独运⾏时则需要print函数才能显示。x = 1y = 2def add (x, y):z = x + yreturn zprint (add(x,y) x = 1y = 2def add (x, y):z = x + yprint zprint (add(x,y))
默认情况下,遇⻅ return 函数就会返回给调⽤者,但是 try,fifinally情况除外:def func():try:print 98return 'ok' #函数得到了⼀个返回值fifinally: #fifinally语句块中的语句依然会执⾏print 98print fun()输出:>>>98>>>98>>>ok
函数作为返回值返回:def lazy_sum(*args):def sum():x=0for n in args:x=x+nreturn xreturn sum
lazy_sum(1,2,3,4,5,6,7,8,9)#这时候lazy_sum 并没有执⾏,⽽是返回⼀个指向求和的函数的函数名sum 的内存地址。f=lazy_sum(1,2,3,4,5,6,7,8,9)print(type(f))print(f()) # 调⽤f()函数,才真正调⽤了 sum 函数进⾏求和,这其实就是闭包。返回⼀个函数列表:def count():fs = []for i in range(1,4):def f():return i*ifs.append(f)return fsf1, f2, f3 = count()print(f1())print(f2())print(f3())输出: >>>9>>>9>>>9执⾏过程:当i=1, 执⾏for循环, 结果返回函数f的函数地址,存在列表fs中的第⼀个位置上。当i=2, 由于fs列表中第⼀个元素所指的函数中的i是count函数的局部变量,i也指向了2;然后执⾏for循环, 结果返回函数f的函数地址,存在列表fs中的第⼆个位置上。当i=3, 同理,在fs列表第⼀个和第⼆个元素所指的函数中的i变量指向了3; 然后执⾏for循环, 结果返回函数f的函数地址,存在列表fs中的第三个位置上。所以在调⽤f1()的时候,函数中的i是指向3的:f1():return 3*3同理f2(), f3()结果都为9闭包时牢记的⼀点就是:返回函数不要引⽤任何循环变量,或者后续会发⽣变化的变量。即包在⾥⾯的函数(本例为f()),不要引⽤外部函数(本例为count())的任何循环变量--------如果⼀定要引⼊循环变量,⽅法是再创建⼀个函数,⽤该函数的参数绑定循环变量当前的值,⽆论该循环变量后续如何更改,已绑定到函数参数的值不变:复制代码def count():fs=[]for i in range(1,4):def f(j):def g():return j*jreturn gfs.append(f(i))return fsf1,f2,f3=count()print(f1())print(f2())print(f3())
返回值条件判断句式:return a if 条件A成⽴ (else 条件B)
def 函数名(参数1(位置参数),*参数2(不定⻓参数),参数3=默认值(默认参数)):#可以没有参数,这样只有⼀种输出。(缩进空格)函数主体内容#如对参数进⾏何种改变(缩进空格)return语句#可以没有return语句,和return None同样效果,return a if A else B范例代码: def menu(appetizer,course,*barbeque,dessert='绿⾖沙'):print('⼀份开胃菜:'+appetizer)print('⼀份主菜:'+course)print('⼀份甜品:'+dessert)for i in barbeque:print('⼀份烤串:'+i)menu('话梅花⽣','⽜⾁拉⾯','烤鸡翅','烤茄⼦','烤⽟⽶',dessert = '银⽿羹')
class 类A():变量1 = 100@classmethoddef 函数A(cls):print(cls.变量1)类A.函数A()① 第⼀个格式@classmethod的中⽂意思就是“类⽅法”,@classmethod声明了函数1是类⽅法,这样才能允许函数1使⽤类属性中的数据。icon② 第⼆个格式cls的意思是class的缩写。如果类⽅法函数1想使⽤类属性(也就是类中的变量),就要写上cls为函数1的第⼀个参数,也就是把这个类作为参数传给⾃⼰,这样就能被允许使⽤类中的数据。icon③ 第三个格式是cls.变量。类⽅法想使⽤类属性的时候,需要在这些变量名称前加上cls.。
第⼀种:普通写法#打开⽂件fifile1 = open('路径','只读r/重写w/追加a',encodeing = 'utf-8 or gbk')#路径含 \ ,⽤\\代替或在路径前加r#读取⽂件fifilecontent = fifile1.read()#写⼊⽂件fifile1.write('写⼊的内容')#打印⽂件print(fifilecontent)#关闭⽂件fifile1.close()第⼆种:with关键字写法with open ('路径','只读r/重写w/追加a') as fifile1:#with open('⽂件地址','读写模式') as 变量名:(冒号不能丢)fifile1.write('写⼊内容')#缩进,⽆需close()函数
功能:“按⾏读取”格式:变量名 = ⽂件名.readlines()范例代码:fifile1 = open('/Users/Ted/Desktop/scores.txt','r',encoding='utf-8')fifile_lines = fifile1.readlines()fifile1.close()print(fifile_lines) readlines() 会从txt⽂件取得⼀个列表,列表中的每个字符串就是scores.txt中的每⼀⾏。⽽且每个字符串后⾯还有换⾏的\n符号
功能:“按⾏重写”格式:⽂件名.writelines(参数)范例代码:fifinal_scores = [1,3,5,76,7,8]winner_new = open('winner_new.txt','w',encoding='utf-8')winner_new.writelines(fifinal_scores)winner_new.close()
格式:参数.split()#不带参数形式,默认空格替换成分隔符,不管空格在哪,或者有⼏个 全部被镐掉,得到⼀个列表范例代码:st0 = ' song huan gong 'print(st0.split())>>>['song', 'huan', 'gong']格式2:参数.split('分隔符','分隔次数'),默认分隔次数最⼤值(字符串⻓度)范例代码:st0 = 'iisongiiihuaniiiigongi'print(st0.split('i'))>>>['', '', 'song', '', '', 'huan', '', '', '', 'gong', '']
格式:参数1.join(参数2)#⽤参数1将参数2串起来成为新的字符串范例代码:a = 'cat'b = '-'print(b.join(a))>>>c-a-t
格式:dir(模块名/函数名/类型名) #简单查看:范例代码:import csv for i in dir(csv):print(i)
csv.reader(csvfifile,dialect = 'excel',**fmtparams)#fmpt参数范例代码:import csvwith open('test.csv',newline='',encoding='utf-8')as f:data1 = csv.reader(f)#数据存在内存中,需要保持读取⽂件的姿势进⾏遍历操作for i in data1:#此处如果不缩进会报错,原因⻅上⼀条注释print(i)
import csvwith open('test.csv','a',newline='',encoding='utf-8')as f:writer = csv.writer(f)writer.writerows(写⼊的内容)#注意:默认编码是Unicode,Python中默认编码utf-8,需指定。范例代码:import csvwith open('test.csv','a', newline='',encoding='utf-8') as f:writer = csv.writer(f)writer.writerow(['4', '猫砂', '25', '1022', '886'])writer.writerow(['5', '猫罐头', '18', '2234', '3121'])
引⽤模块语句直接写同⼀⾏中:print(''.join(__import__('random').choice('/\\') for i in range(50*24)))
# 知识1:⼀种新的列表⽣成⽅式num1 = [1,2,3,4,5] # 想⼀想,如果⽤这个⽅法⽣成⼀个1-100的列表……num2 = list(range(1,6))print(num1)print(num2)# 知识2:extend 的新⽤法num2.extend(['ABCDE'])num2.extend('ABCDE') # extend后⾯是列表的话会将其合并,后⾯是字符串的话会将每个字符当成⼀个列表中的元素。print(num2)# 知识点3:列表⽣成式list1 = [i for i in range(3)] # 规定列表中元素的范围print(list1)list2 = [m+n for m in ['天字', '地字'] for n in '⼀⼆'] # 列表元素可以是组合,分别规定范围。print(list2)list3 = [n*n for n in range(1,11) if n % 3 == 0] # 元素既可规定范围,也可附加条件。print(list3)