内置函数

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 个数,并将该值返回给调用者。

 

posted @ 2020-05-11 21:14  H年轻的心  阅读(25)  评论(0)    收藏  举报