python基础-第四篇-4.1内置函数
lambda表达式
- lambda表达式是对简单函数的精简化表达
- 语法结构:函数名 = lambda:运算表达式
def f1(a): a = a + 1 return a ret = f1(1) print(ret) #结果为2 #lambda表达式 f2 = lambda a: a + 1 ret2 = f2(1) print(ret2) #结果为2
python内置函数
-
abs() 求数字的绝对值
a = 12 a1 = abs(a) print(a1) #结果为12 b = -13 b1 = abs(b) print(b1) #结果为13
-
all(可迭代的) 循环每个元素,如果每个元素都为真,那么all的返回值为真(0,None,空列表,空字典,空字符串,空元组为假,如果你不确定真假,可以bool检验)
ret1 = all([1,[0.2]]) print(ret1) #结果为True ret2 = all([None,1]) print(ret2) #结果为False ret3 = all((11,{},22)) print(ret3) #结果为False
-
any(可迭代的) 循环每个元素,只要有一真,则为真
ret1 = any([0,(),'']) print(ret1) #结果为False ret2 = any((1,0,{})) print(ret2) #结果为True
-
bin() 二进制
-
oct() 八进制
-
int() 十进制
-
hex() 十六进制
r1 = bin(11) #十进制转二进制 print(r1) #结果为0b1011 r2 = oct(8) #十进制转八进制 print(r2) #结果为0o10 r3 = int('0b1000',base=2) #二进制转化为十进制 print(r3) #结果为8 r4 = int('0o10',base=8) #八进制转化为十进制 print(r4) #结果为8 #利用int的第二参数可以将其他进制转化十进制 r5 = hex(14) #十进制转化为十六进制 print(r5) #结果为0xe
-
bool() 判断真假,把一个对象转换成布尔值
a = {} r1 = bool(a) print(r1) #结果为False b = 12544 r2 = bool(b) print(r2) #结果为True c = '123'.isdigit r3 = bool(c) print(r3) #结果为True d = None r4 = bool(d) print(r4) #结果为False
-
chr() 返回整数对应的ASCII字符
-
ord() 作用和chr()相反,返回字符对应的ASCII编号
随机验证码实例:
import random #首先要导入随机数模块 rand_num = '' #初始化验证码 for i in range(6): #定义随机码的长度为6 k = random.randrange(0,3) #给出一个让随机码组成不定的随机数 if k == 1: #对随机码进行判断,然后确定是给数字还是字母 a = random.randrange(0,10) #随机数字 rand_num += str(a) elif k == 2: i = random.randrange(97,123) #随机小写字母 a = chr(i) rand_num += a else: i = random.randrange(65,91) #随机大写字母 a = chr(i) rand_num += a print(rand_num)
-
divmod(被除数,除数) 返回商和余数组成的元组 应用方面:网站目录展示
t = divmod(10,3) print(t,type(t)) #结果为(3, 1) <class 'tuple'>
-
eval() 可以执行字符串形式的表达式,并且有返回值
ret = eval('102+788') print(ret) #结果为890 ret2 = eval('a+63',{'a':90}) print(ret2) #结果为153
-
exec() 直接执行字符串代码,无返回值
exec('for i in range(10):print(i)') exec('print("明天你好")') #结果为 明天你好
-
filter(函数,可迭代的) 把循环的每个元素当做函数的参数并执行函数,筛选返回Ture的元素,元素组成的对象类型和range的类型差不多,没有创建在内存里,只有迭代是才创建
函数内部实现过程:
#函数 def f1(args): if args > 25: return True else: return False #先循环列表 my_list = [] #符合函数条件的元素存储列表 li = [11,22,33,44,55] for i in li: a = f1(i) if a == True: my_list.append(i) print(my_list)
def f1(args): if args > 25: return True else: return False li = [11,22,33,44,55] ret = filter(f1,li) print(ret) for i in ret: print(i) 结果为: <filter object at 0x0000000000A5CC50> 33 44 55
-
map(函数,可迭代的) 对循环的元素进行函数运算,结果组成迭代器
函数内部实现过程:
f2 = lambda x: x + 100 #运算式 my_list = [] #函数运算后的元素存储列表 li = (11,22,55,88,99,456,14258) for i in li: a = f2(i) my_list.append(a) print(my_list) #结果为[111, 122, 155, 188, 199, 556, 14358]
f2 = lambda x: x + 100 #运算式 li = (11,22,55,88,99,456,14258) ret = map(f2,li) print(ret) for i in ret: print(i) 结果为: <map object at 0x0000000000A4CC50> 111 122 155 188 199 556 14358
-
globals() 获取当前程序所有的全局变量
-
locals() 获取当前程序所有局部变量
global a global C C = 'test' test = 'haha' b = 'init' def function1(): global a a = 123 b = 'string' print(a) print(b) print(globals()) print(locals()) function1() print(a) print(b) print(globals()) print(locals())
-
isinstance() 数据类型匹配
s = '景女神' ret = isinstance(s,str) print(ret) #结果为True num = 123 ret1 = isinstance(num,str) print(ret1) #结果为False
-
max(可迭代的) 取最大值
-
min(可迭代的) 取最小值
-
sum(可迭代的) 求和
li = [11,22,33,44] ret1 = sum(li) print(ret1) #结果为110 ret2 = max(li) print(ret2) #结果为44 ret3 = min(li) print(ret3) #结果为11
-
pow(底数,指数) 求幂
ret1 = pow(2,10) print(ret1) #结果为1024 ret2 = 2**10 print(ret2) #结果为1024
-
callable() 是不是可执行的
def f1(): return 123 r = callable(f1) print(r) #结果为True f2 = 123 r1 = callable(f2) print(r1) #j结果为False
-
__import__() 导入模块时并别名
-
round() 四舍五入
-
ascii() 到对象的类中找__repr__,获取其返回值
-
compile() 把字符串转换成python可执行的代码(代码编译)
-
hash() 对字典的key优化
-
iter(可迭代的) 创建一个可迭代的对象
python内置的排序方法
- 排序中不能同时有两种数据类型
- 数字排序,从小到大
li = [12,458,30,751,25,42] ret = sorted(li) print(ret)
- 字符串排序,先数字,再字母,后中文
li = ['125','中','alex','25','wen','号','356326823'] ret = sorted(li) print(ret) #结果为['125', '25', '356326823', 'alex', 'wen', '中', '号']
欢迎大家对我的博客内容提出质疑和提问!谢谢
笔者:拍省先生