python-day4-内置函数2
Posted ppppppy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-day4-内置函数2相关的知识,希望对你有一定的参考价值。
摘要:python中有好多可用性特别强的内置函数,熟练掌握对于以后的编程过程中有很大的帮助~~~~
callable函数、chr函数与ord函数、random函数、compile函数、evec与eval函数、dir函数,divmod函数、isinstance函数、filter与map函数
1 #上节课回顾 2 li = [11, 22, 33, 44] 3 def f1(arg): 4 arg.append(55) 5 li=f1(li) 6 print(li) 7 >>>None 注意:因为函数无return所以返回值为None,li=f1(li)是把None值赋给li 8 9 li = [11, 22, 33, 44] 10 def f1(arg): 11 arg.append(55) 12 f1(li) 13 print(li) 14 >>>[11, 22, 33, 44, 55]
1 #callable函数,判断是否可调用 2 def f1(): 3 pass 4 f1() 5 f2=123 6 print(callable(f1)) 7 #>>>True 8 print(callable(f2)) 9 #>>>False
1 #chr函数与ord函数 2 r=chr(65) 3 print(r) 4 >>>A #将65转化为对应的ASCII码 5 n=ord(‘a‘) 6 print(n) 7 >>>97 #将字幕a转化为对应的ASCII码数字
#随机验证码,纯6位字母 import random li=[] for i in range(6): temp=random.randrange(65,91)#随机获取65 到 91之间的数 c=chr(temp)#将随机数转化为字母 li.append(c)#追加放入列表中 result="".join(li) print(result) #随机验证码,字母与数字结合 import random li=[] for i in range(6): if random.randrange(0,5) % 2: num = random.randrange(0,10) li.append(str(num)) else: temp=random.randrange(65,91)#随机获取65 到 91之间的数 c=chr(temp)#将随机数转化为字母 li.append(c)#追加放入列表中 result="".join(li) print(result)
#compile函数,将字符串编译为python代码 exec接受:代码或者字符串 exec("print(‘abc‘)") >>>abc #执行表达式,并且获取结果 ret=eval("7+9+8") print(ret) >>>24
1 #快速查看,对象提供了那些功能 2 print(dir(list)) 3 >>>[‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, 4 ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, 5 ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, 6 ‘__imul__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, 7 ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, 8 ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, 9 ‘__subclasshook__‘, ‘append‘, ‘clear‘, ‘copy‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, 10 ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘]
#divmod函数,共97条数据,每页显示10条,需要多少页 r=divmod(97,10) print(r) >>>(9, 7) #9页余7条数据,可加判断r[1]>0 则共需要r[0]+1页
1 #isinstance函数,判断是否为类的对象 2 s=[11,22,33] 3 r=isinstance(s,list) 4 print(r) 5 >>>True#列表s为列表的对象,字符串类型的值为str类的对象,字典类型的值为dict的对象
1 #filter函数 循环第二个参数,让每个元素执行函数,如果函数返回True,表示元素合法,用于筛选 2 由下面程序引出 3 def f1(args): 4 result=[] 5 for item in args: 6 if item>22:#判断列表中大与22的值 7 result.append(item)#追加到result列表中 8 return result 9 li=[11,22,33,44,55] 10 ret=f1(li)#ret接收result的值 11 print(ret) 12 >>>[33, 44, 55] 13 #filter函数只返回True或False需要借助lambda自动return接收返回值 14 f1=lambda a:a+30 15 ret=f1(30) 16 print(ret) 17 >>>60 18 19 #等同于 20 li=[11,22,33,44,55] 21 #循环第二个可迭代元素,判断是否大于30返回True,lambda自动接收返回值并放入result中用于筛选 22 result= filter(lambda a:a > 30,li) 23 # 小于返回Flaselambda不接收返回值 24 print(list(result)) 25 26 #map函数,循环第二个可迭代元素,并返回值 27 li=[11,22,33,44,55] 28 result=map(lambda a:a+200,li) 29 print(list(result)) 30 >>>[211, 222, 233, 244, 255] 31 32 #两函数比较 33 li = [11, 22, 33, 44] 34 r = map(lambda a: a+100, list(map(lambda a: a>30,li))) 35 print(list(r)) 36 # >>>[100, 100, 101, 101] #第二个元素结果返回0或1 37 38 li = [11, 22, 33, 44] 39 r = filter(lambda a: a+100, list(filter(lambda a: a>30,li))) 40 print(list(r)) 41 #>>>[33, 44] #filter无法进行表达式运算,只能将True结果通过lambda返回 42 43 li = [11, 22, 33, 44] 44 r = map(lambda a: a+100, list(filter(lambda a: a>30,li))) 45 print(list(r)) 46 #[133, 144] 结合运用,判断大于30的则进行表达式运算
1 #len函数,注2.0版本中len字符自动转为utf-8的字节长度,3.0版本则不转换,一个字符为一个长度 2 s=‘李光旭‘ 3 print(len(s)) 4 #>>>3 5 b=bytes(s,encoding=‘utf-8‘) 6 print(len(b)) 7 #>>>9
以上是关于python-day4-内置函数2的主要内容,如果未能解决你的问题,请参考以下文章