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的主要内容,如果未能解决你的问题,请参考以下文章

python-day04 内置函数和函数装饰器

PYTHON-DAY17-模块

python-day7 python内置模块 面向对象

python-day4-装饰器的使用

web代码片段

python-day 1