python-函数&内置函数&模块
1、内置函数
- all()、any()
1 # all() 判断可迭代的对象里面的值是否都为真 2 print(all([1,2,3,4])) # 结果:True 3 print(all([1,2,3,0])) # 结果:False 4 5 #any() 判断可迭代的对象里面的值是否有一个为真 6 print(any([1,2,3,0])) # 结果:True 7 print(any(['',False,0])) # 结果:False
- bin()、chr()、ord()
1 # bin() 十进制转二进制 2 print(bin(10)) # 0b1010 0b开头表示是二进制 3 4 # hex() 数字转成16进制 5 print(hex(111)) # 结果:0x6f 6 7 # oct() 数字转成8进制 8 print(oct(111)) # 结果:0o157 9 10 # chr() 打印ascii码对应的数字或字符 11 print(chr(98)) # 结果:b 12 13 # ord() 打印字符串对应的ascii码 14 print(ord('b')) # 结果:98
- dir()、locals()、globals()
1 # dir('') 打印传入对象的可调用方法 2 f = open('a.txt','w') 3 print(dir(f)) 4 5 # locals() 返回函数里的局部变量 6 def func(): 7 name = 'abc' 8 age = 18 9 print(locals()) #以字典形式返回局部变量 10 func() 11 12 # golbals() 返回程序内所有的变量,返回的是一个字典 13 name = '123' 14 print(globals())
- 比较常用的内置函数
1 # 取最大值 2 print(max([1,5,9])) 3 4 # 取余 结果:(3, 1) 5 print(divmod(10,3)) 6 7 # 取几位小数 结果:11.11 8 print(round(11.111111,2))
zip()
1 # 把两个list合成一个二维数组 2 l = ['u1','u2','u3','u4'] 3 l2 = ['p1','p2','p3'] 4 print(list(zip(l,l2))) # 结果:[('u1', 'p1'), ('u2', 'p2'), ('u3', 'p3')] 5 print(dict(zip(l,l2))) # 结果:{'u1': 'p1', 'u2': 'p2', 'u3': 'p3'}
sorted():
-
1 # sorted() 2 # 应用一 3 l = [1,2,635,63,62,325,2352] 4 print(sorted(l,reverse=True)) 5 print(l) 6 7 # 应用二 8 l = [ 9 ['小名',5],['xiaohei',19], 10 ['xiaobai',20],['xiaolan',10] 11 ] 12 13 14 def use_key(x): 15 return x[1] 16 17 # key的作用是传一个函数名 18 # l2 = sorted(l,reverse=True,key=lambda x:x[-1]) 19 # 按数字倒序排列 20 # 结果:[['xiaobai', 20], ['xiaohei', 19], ['xiaolan', 10], ['小名', 5]] 21 l2 = sorted(l,reverse=True,key=use_key) 22 print(l2) 23 print(l) 24 25 # 应用三 26 d = {'a':1,'b':2} 27 print(d) 28 print(sorted({'a':1,'b':2},reverse=True)) #['b', 'a'] 29 l2 = sorted(d.items(),reverse=True,key=lambda x:x[0]) 30 print(l2) #[('b', 2), ('a', 1)] 31 32 33 # 应用四 34 l = [ 35 ['小名',5,['xx',11]],['xiaohei',19,['xx',13]], 36 ['xiaobai',20,['xx',18]],['xiaolan',10,['xx',20]] 37 ] 38 39 # 结果:[['xiaolan', 10, ['xx', 20]], 40 # ['xiaobai', 20, ['xx', 18]], 41 # ['xiaohei', 19, ['xx', 13]], 42 # ['小名', 5, ['xx', 11]]] 43 l2 = sorted(l,reverse=True,key=lambda x:x[-1][-1]) 44 print(l2)
filter():
1 # filter():过滤数据 2 result = filter(lambda x:x>5,[12,3,12,2,1,2,35]) 3 print(result) # 返回一个对象:<filter object at 0x10a334780> 4 print(list(result)) 5 6 7 def filter_test(x): 8 return x>5 9 10 result1 = filter(filter_test,[12,3,12,2,1,2,35]) 11 print(list(result1))
map():
1 # map():保存返回值 2 result = map(lambda x:x>5,[12,3,12,2,1,2,35]) 3 # 结果:[True, False, True, False, False, False, True] 4 print(list(result)) 5 6 # map方式实现 7 l =[12,3,12,2,1,2,35] 8 result1 = map(lambda x:str(x).strip().zfill(3),l) 9 # 结果:['012', '003', '012', '002', '001', '002', '035'] 10 print(list(result1)) 11 12 # 传统方式实现 13 l2 = [] 14 for i in l: 15 new_i = str(i).strip().zfill(3) 16 l2.append(new_i) 17 print(l2) 18 19 # 列表生成式实现 20 l3 = [str(i).strip().zfill(3) for i in l] 21 print(l3)
enumerate():
1 # enumerate():自动计算下标 2 3 # 实现方式一 4 l = ['购物','注册','充值','积分查询'] 5 index= 0 6 for i in l: 7 print('%s -> %s'%(index,i)) 8 index += 1 9 10 # 实现方式二 11 for index,i in enumerate(l): 12 print('%s -> %s' % (index, i)) 13 14 print('请输入你的选择:')
1 # 运行结果 2 ''' 3 0 -> 购物 4 1 -> 注册 5 2 -> 充值 6 3 -> 积分查询 7 请输入你的选择: 8 '''
exec()、eval()
1 # exec():执行python代码 2 str_code = ''' 3 import os 4 l = ['购物','注册','充值','积分查询'] 5 l3 = [str(i).strip().zfill(3) for i in l] 6 print(l3) 7 ''' 8 if 'import os' in str_code: 9 print('os模块不能用') 10 else: 11 exec(str_code) 12 13 14 # eval():用来执行python代码,执行简单的:定义数据类型和运算 15 result = eval('{"code":1,"name":"lzh"}') #字符串转字典 16 print(result)
lambda表达式:
1 # 匿名函数也是一个函数 2 f1 = lambda x, y: x+y 3 4 5 def f2(x): 6 return x+1 7 8 print(f1(1,2)) # 结果:3 9 print(f2(1)) # 结果:2
2、函数
- 函数返回多个值
1 1 # 函数返回多个值:以元祖形式返回 2 2 def func(): 3 3 a = 1 4 4 b = 2 5 5 c = 3 6 6 return a,b,c 7 7 8 8 result = func() 9 9 print(result) # 结果:(1, 2, 3) 10 10 # 解包 11 11 a,b,c = func() 12 12 print(a,b,c) # 结果:1 2 3
- 局部变量&全局变量
1 # 局部变量:在函数里面定义的变量都是局部变量(没有加global修饰),作用域是在函数里面,出了函数就失效了 2 # 全局变量:定义在函数外面,一般都是写在代码的最上面,作用域是全部的,大家都可以用 3 name = 'lzh' 4 5 6 def rename(): 7 name = 'lzh1' 8 print('name1',name) 9 10 rename() # 结果:lzh1 11 print('name2',name) # 结果:lzh
1 name = 'lzh' 2 3 4 def rename(): 5 global name # 声明全局变量 6 name = 'lzh1' 7 print('name1',name) 8 9 rename() # 结果:lzh1 10 print('name2',name) # 结果:lzh1
1 # 练习一 2 money = 500 3 4 5 def test(consume): 6 return money - consume 7 8 9 def test1(money): 10 return test(money) + money 11 12 money = test1(money) 13 print(money) # 结果:500
1 # 练习二 2 def test(): 3 global a 4 a = 5 5 6 7 def test1(): 8 c = a + 5 9 return c 10 11 # 注意:函数只是定义,没调用不会被执行 12 res = test1() # 只会执行test1(),不会执行test(),所以找不到a 13 print(res) # 结果:NameError: name 'a' is not defined
3、random模块
1 import random 2 3 # 随机整数 4 number = random.randint(1,100) 5 print(number) 6 # 随机小数 7 f = random.uniform(1,100) 8 print(f) 9 10 # 从你给的数据里面随机选择一个 11 l = [1,2,3,4,5,6] 12 print(random.choice(l)) 13 14 # 随机从list里面取N个元素 15 print(random.sample(l,5)) 16 17 # 洗牌,打乱 18 l = [str(i) for i in range(1,14)] 19 random.shuffle(l) 20 # 结果:['7', '6', '13', '12', '2', '11', '5', '10', '4', '1', '9', '3', '8'] 21 print(l)
4、导入模块
1 #模块:一个python文件 2 #1、标准模块,python自带的,不需要单独按照 3 #2、第三方模块,需要自己安装 4 5 # import一个文件,就是把这个模块里的代码执行一次 6 # 导入模块的顺序: 7 # 1、从当前目录下找 8 # 2、从python的环境变量里面找 9 # import一个文件夹的时候,就是执行这个文件夹里的__init__.py文件

浙公网安备 33010602011771号