内置函数(二)
1.1 callable()
功能:函数是否可调用
示例1:
def f1(): pass f1() f2 = 123 f2() # 输出结果 TypeError: ‘int‘ object is not callable
示例2:
def f1(): pass # f1() f2 = 123 # f2() print(callable(f1)) print(callable(f2)) # 输出结果 True False
1.2 chr()
功能:数字转字母,返回对应的ASCII码。
r = chr(65) print(r) # 输出结果 A
1.3 ord()
功能:字母转数字
n = ord("B") print(n) # 输出结果 66
1.4 range()
功能:取值范围
示例1:随机生成6位验证码 字母
# 使用前必须导入random import random # 定义一个空列表 li = [] # 循环6次,取值范围6位 for i in range(6): # 设置随机数范围65-91 temp = random.randrange(65, 91) # 生成的数字转换成字母 c = chr(temp) # 将取到的结果添加到列表li内 li.append(c) # li = ["c","b","a"] #cba 合并 # 拼接字符串join result = "".join(li) # 打印结果 print(result)
示例2:随机6位验证码 完整版 字母+数字
# 使用前必须导入random import random # 定义空列表 li = [] # 循环6次,取值范围6位 for i in range(6): # 设定r为随机生成数,范围0-5 r = random.randrange(0, 5) # 当 r=2 或 r=4 时 if r == 2 or r == 4: # num为0-10随机生成数 num = random.randrange(0, 10) # 添num值到列表 li.append(str(num)) # 当 r=0,1,3,4时 else: # temp为A-Z的随机生数65-91 temp = random.randrange(65, 91) # 转换获取到的数字为字母 c = chr(temp) # 添加字母到列表 li.append(c) # li = ["c","b","a"] #cba 合并 # 拼接字符串join result = "".join(li) # 打印结果 print(result)
1.5 compile()
功能:将字符串编译成Python代码
# single 单行 # eval 表达式 # exec python s = "print(123)" # 将字符串编译成python代码 r = compile(s, "<string>","exec") # 执行代码 exec(r) # 输出结果 123
1.6 eval()
功能:执行表达式,获取结果,有返回值
s = "8*8" ret = eval(s) print(ret) # 输出结果 64
1.7 exec()
功能:执行python代码,接收代码或者字符串,无返回值
exec("7+9+8")
小结:compile,exec,eval
compile():转换,将字符串,编译成python代码
eval():执行表达式,获取结果,有返回值
exec():执行python代码,无返回值
1.8 dir()
功能:快速查看一个对象提供了哪些功能
# 查看列表提供了哪些功能 print(dir(list)) # 输出结果 [‘__add__‘, ‘__class__‘, ‘__contains__‘, ‘__delattr__‘, ‘__delitem__‘, ‘__dir__‘, ‘__doc__‘, ‘__eq__‘, ‘__format__‘, ‘__ge__‘, ‘__getattribute__‘, ‘__getitem__‘, ‘__gt__‘, ‘__hash__‘, ‘__iadd__‘, ‘__imul__‘, ‘__init__‘, ‘__iter__‘, ‘__le__‘, ‘__len__‘, ‘__lt__‘, ‘__mul__‘, ‘__ne__‘, ‘__new__‘, ‘__reduce__‘, ‘__reduce_ex__‘, ‘__repr__‘, ‘__reversed__‘, ‘__rmul__‘, ‘__setattr__‘, ‘__setitem__‘, ‘__sizeof__‘, ‘__str__‘, ‘__subclasshook__‘, ‘append‘, ‘clear‘, ‘copy‘, ‘count‘, ‘extend‘, ‘index‘, ‘insert‘, ‘pop‘, ‘remove‘, ‘reverse‘, ‘sort‘]
1.9 help()
功能:查看帮助,功能详细
1.10 divmod()
功能:比较x,y,返回商和余数,返回类型为tuple
例:共:97条,每页显示10条,需要多少页
r = divmod(97,10) print(r) # 输出结果 (9, 7)
1.11 isinstance()
功能:用于判断对象是否是某个类的实例
# 对象是类的实例 s = "alex" r = isinstance(s, str) print(r) # 输出结果 True
1.12 filter()
功能:用于过滤列表中的一些元素
格式:filter(函数,可迭代的对象)
示例:li = [11, 22, 33, 44, 55, ],筛选大于22的
1.12.1 编写函数
# 定义函数f1 def f1(args): # 设定空列表 result = [] # for循环 for item in args: # 判断item是否大于22 if item > 22: # 大于22添加到result列表 result.append(item) # 返回result值 return result li = [11, 22, 33, 44, 55, ] # 执行函数 ret = f1(li) print(ret) # 输出结果 [33, 44, 55]
1.12.2 filter函数
# 定义函数f2 def f2(a): if a > 22: return True li = [11, 22, 33, 44, 55, ] # filter内部循环第二个参数,让每个循环元素执行函数,如果函数的返回值True,表示元素合法 ret = filter(f2, li) print(list(ret)) # 输出结果 [33, 44, 55]
1.12.3 通过lambda表达式实现
lambda回顾 自动return
f1 = lambda a: a > 30 ret = f1(90) print(ret) # 实现筛选,简化表达式 li = [11, 22, 33, 44, 55, ] result = filter(lambda a: a > 22, li) print(list(result)) # 输出结果 [33, 44, 55]
1.13 map()
功能:将一个列表映射到另一个列表
格式:map(函数, 可迭代的对象(可以循环的东西))
示例,列表里的数分别增加100
map方法
# 列表 li = [11, 22, 33, 44, 55, ] # 定义函数f2,参数a def f2(a): # 函数体,a + 100并返回值 return a + 100 # 运行函数,li列表内的所有元素循环作为f2函数的参数a并执行f result = map(f2, li) print(list(result)) # 输出结果 [111, 122, 133, 144, 155]
lambda方法
li = [11, 22, 33, 44, 55, ] result = map(lambda a: a + 100 , li) print(list(result)) # 输出结果 [111, 122, 133, 144, 155]
1.14 globals(),locals()
globals 所有的全局变量
locals 所有的局部变量
NAME = "ALEX" # 全局变量 def show(): a = 123 # 局部变量 c = 123 print(globals()) print(locals()) show() # 输出结果 # 全局变量 {‘__cached__‘: None, ‘__name__‘: ‘__main__‘, ‘__package__‘: None, ‘__loader__‘: <_frozen_importlib_external.SourceFileLoader object at 0x000000DB870C5940>, ‘NAME‘: ‘ALEX‘, ‘show‘: <function show at 0x000000DB8712E510>, ‘__file__‘: ‘ old_dict.__delitem__(host)\n\nprint(u"====信息更新完毕====")\nprint(old_dict)\n‘} # 局部变量 {‘a‘: 123, ‘c‘: 123}
1.15 hash()
功能:转换哈希值,一般用于保存字典里的key
s = "ffff" print(hash(s)) # 输出结果 6225191154271087305
1.16 len()
功能:字符长度
python 3里默认按字符()
s = "李杰" print(len(s))
python2.7里默认按字节
s = "李杰" b = bytes(s, encoding="utf-8") print(len(b))
1.17 sum()
功能:数字序列的元素相加
r = sum([11,22,33,44,]) print(r) # 输出结果 110
1.18 memoryview()
说明:内存地址相关的一个类
1.19 object()
说明:是所有类的父类
1.20 pow()
功能:方法返回xy(x的y次方)的值
# 需要导入math import math print(math.pow(2, 3)) # 输出结果 8.0
1.21 property()
说明:特性(面向对象)
1.22 repr()
功能:repr执行类里的__repr__
r = repr("alex") print(r) # 输出结果 ‘alex‘
1.23 reversed()
功能:反转
print(list(reversed([‘NB‘,‘is‘,‘alex‘]))) # 输出结果 [‘alex‘, ‘is‘, ‘NB‘]
1.24 round()
功能:四舍五入
格式:round(数字,保留位数)
print(round(5.44, 1)) print(round(5.77, 1)) # 输出结果 5.4 5.8
1.25 slice()
功能:切片
s = "sssssssss" print(s[0:2:2]) # 输出结果 s
1.26 sorted()
功能:排序
li = [11, 44, 22, 33,] print(li) li.sort() print(li) # 输出结果 [11, 44, 22, 33] [11, 22, 33, 44]
1.27 zip()
功能:接受一系列可迭代对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)
l1 = ["alex", 11, 22, 33, ] l2 = ["is", 11, 22, 33, ] l3 = ["nb", 11, 22, 33, ] r = zip(l1, l2, l3) # print(list(r)) temp = list(r)[0] ret = " ".join(temp) print(ret) # 输出结果 alex is nb