内置函数
1、函数参数,引用
2、lambda表达式
3、python内置函数
4、递归
5、作业
1、lambda表达式
1 def f1(): 2 return 123 3 4 print(f1()) 5 6 f2 = lambda : 123 7 r = f2() 8 print(r) 9 10 def f3(a1, a2): 11 return a1 + a2 12 13 r3 = f3() 14 print(r3) 15 16 f4 = lambda a1,a2: a1 + a2 17 r4 = f4() 18 print(r4)
2、内置函数
1 abs(123) #取绝对值 2 print(all([0,1,2])) #循环参数,如果每个元素都为真,返回真,否则false 3 # 如何判断元素是否为真 4 # 假:0,none,"",[],(),{}----->>:0,none,空值为假 5 print(bool(0)) 6 print(bool(-1)) 7 print(bool(1)) 8 print(bool([])) 9 print(bool(())) 10 print(bool({})) 11 12 print(any([{}, (), 0, None, 1])) # 循环参数,只要一个为真即为真 13 li = [] 14 r = ascii(li) # 返回对应参数的类的__repr__方法的返回值 15 print(r) 16 # # 17 print(bin(10)) # 十进制数10转成二进制 18 print(hex(10)) # 十进制数14转换成十六进制 19 print(oct(8)) # 十进制数8转换成八进制 20 print(int(10)) # 十进制数10转换成十进制 21 22 # 进制之间转换 23 i = int('0b11', base=2) # 二进制0b11转换成十进制 24 print(i) 25 26 i = int('0o11', base=8) # 八进制0o11转换成十进制 27 print(i) 28 29 i = int('0xe', base=16) # 十六进制11转换成十进制 30 print(i) 31 32 i = chr(66) # 接收一个数字,返回对应的ASCII码中的对应值 33 print(i) 34 35 i = ord('t') 36 print(i) 37 38 r = callable('s') # 如果传入的参数可以被执行,返回True,否则False。比如函数加括号可以被执行 39 print(r) 40 41 # compile() #用来编译代码 42 dir([]) # 查看传入的对象有什么方法 43 # help([]) # 帮助 44 r = divmod(10, 3) # 返回两个参数的商和余数的元组,在分页中用 45 print(r) 46 47 ret = eval('1 + 3') # 将字符串转换成表达式,并返回结果。即eval可以执行一个字符串形式的表达式 48 ret1 = eval("a + 60", {'a': 99}) 49 print(ret) 50 print(ret1) 51 52 exec("for i in range(10):print(i)") # 把参数当代码执行,但没有返回值 53 54 filter(函数, 可迭代对象) # 循环可迭代对象,将迭代对象的元素当做参数,传到函数中,如果函数返回true,则把该元素当做列表的元素返回# 55 def f1(x): 56 # if x > 22: 57 # return True 58 # else: 59 # return False 60 return x > 22 61 62 63 # ret = filter(f1, [11, 22, 33, 44]) 64 # for i in ret: 65 # print(i) 66 ret = filter(lambda x: x > 22, [11, 22, 33, 44]) 67 for i in ret: 68 print(i) 69 70 71 map(函数,可迭代对象) 循环迭代对象的每个元素传入函数中,并返回每个元素的返回值 72 73 def f2(x): 74 return x + 100 75 76 ret = map(f2, [1,2,3,4,5]) 77 ret = map(lambda x: x + 100, [1,2,3,4,5]) 78 print(ret) 79 print(type(ret)) 80 for i in ret: 81 print(i) 82 83 # isinstance() # 判断对象是否由某个类创建的 84 li = [] 85 i = isinstance(li, list) 86 print(i) 87 88 i = pow(2, 10) # 2的10次方 89 print(i) 90 91 r = round(3.33) # 四舍五入 92 print(r)
3、随机验证码
1 import random 2 temp = '' 3 for x in range(6): 4 xx = random.randrange(0, 4) # 生成0-3的随机数 5 if xx == 1 or xx == 3: # 如果等于1或者3,就生成数字,否则生成字母 6 i = random.randrange(0, 10) 7 temp += str(i) 8 else: 9 i = random.randrange(65, 91) 10 rad = chr(i) 11 temp += rad 12 print(temp)
4、作业
1 # 三目运算、三元运算 2 if 1 == 1: 3 name = 'alex' 4 else: 5 name = 'eric' 6 7 name = 值1 if 条件 else 值2 8 9 #2、函数 10 # 定义函数 11 # def 函数名(形参): 12 # 函数体 13 # return 返回值 14 # 执行函数调用 15 # 函数名(实参) 16 # 17 #、如果实参没有关键字,则按默认顺序 18 # 19 #、形参默认值,默认参数需要放在后面 20 # 21 #、动态参数 22 # *args,元组,元组的元素 23 # **kwargs,字典类型 24 def f1(a, *args, **kwargs): 25 print(a, type(a)) 26 print(args, type(args)) 27 print(kwargs, type(kwargs)) 28 29 f1('aa', 'adf', 'afa', [11,3,4], k1 = 'adf', k2 = '333') 30 31 #局部变量全局变量 32 # 全局变量: 33 # 大写 34 # 修改global 35 # 局部变量: 36 # 小写,仅在代码块中能用 37 # 38 #5、深浅拷贝 39 # 1、数字和字符串 40 # 对于 数字 和 字符串 而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。 41 # 2、其他基本数据类型 42 # 对于字典、元祖、列表 而言,进行赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的。 43 # 44 # 45 #1、简述普通参数、指定参数、默认参数、动态参数的区别 46 # 普通参数:按顺序获取参数值 47 # 指定参数:按照关键字参数一一对应,不一定是按照位置参数 48 # 默认参数:在参数的末尾 49 # 动态参数:可以接受多个参数,*args:可以接受多个参数,**kwargs:键值对形式传参 50 # 51 #2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数 52 def fun_num(p): 53 isdigit_num = 0 54 isalnum_num = 0 55 isspace_num = 0 56 others_num = 0 57 for i in p: 58 if i.isdigit(): 59 isdigit_num += 1 60 elif i.isalnum(): 61 isalnum_num += 1 62 elif i.isspace(): 63 isspace_num += 1 64 else: 65 others_num += 1 66 return (isdigit_num, isalnum_num, isspace_num, others_num) 67 68 ret = fun_num('sdfa123afaa,.09()') 69 print(ret) 70 71 #3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。 72 def fun_objectnum(p): 73 if isinstance(p, str) or isinstance(p, list) or isinstance(p, tuple) # isinstance()判断对象是否由某类创建的 74 if len(p) > 5: 75 return True 76 else: 77 return False 78 79 li = [1,23,1,1,123,2] 80 ret = fun_objectnum(li) 81 print(ret) 82 83 #4、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。 84 def check_space(s): 85 for i in s: 86 if i.isspace: 87 print('空格啦。。。') 88 return True # 只要有空格就停止 89 else: 90 return False 91 92 93 ret = check_space('ahfi add 23') 94 print(ret) 95 96 def check_space(arg): 97 ret = true 98 for c in arg: 99 if c.isspace: 100 ret = False 101 break 102 return ret 103 104 #5、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。 105 def check_len(s): 106 print(len(s)) 107 if len(s) > 2: 108 return s[0:2] 109 else: 110 print("{0} is too short with len {1}".format(s, len(s))) 111 s = [1,3] 112 ret = check_len(s) 113 print(ret) 114 115 #6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。 116 def check_index(p): 117 li = [] 118 for i in range(len(p)): 119 print(i) 120 if i % 2 == 1: 121 print(i) 122 li.append(p[i]) 123 else: 124 pass 125 return li 126 s = [1,23,13,4,123,123,1,5,2356] 127 ret = check_index(s) 128 print(ret) 129 130 def check_index(p): 131 li = [] 132 for index, i in enumerate(p): 133 print(index) 134 if index % 2 ==1: 135 li.append(p[index]) 136 else: 137 pass 138 return li 139 s = [1,23,13,4,123,123,1,5,2356] 140 ret = check_index(s) 141 print(ret) 142 143 #7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。 144 145 dic = {"k1": "v1v1", "k2": [11,22,33,44]} 146 PS:字典中的value只能是字符串或列表 147 148 def check_value(arg): 149 ret = {} 150 for key, value in arg.items: 151 if len(value) > 2: 152 ret[key] = value[0:2] 153 else: 154 ret[key] = value 155 return ret 156 157 dic = {"k1":"v1v1", "k2":[11,22,33,44], 'k3':'12'} 158 ret = check_value(dic) 159 print(ret) 160 #8、写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。

浙公网安备 33010602011771号