#设计一个生成验证码的函数import random
import string
ALL_CHARS = string.digits + string.ascii_letters
print(ALL_CHARS)defgenerate_code(code_len =4):return''.join(random.choices(ALL_CHARS, k = code_len))defget_suffix(filename):
pos = filename.rfind('.')if pos <=0:return''return filename[pos +1:]print(get_suffix('maxiaoyang.mahuan'))#可变参数defcalc(*args):
result =0for arg in args:if(type(arg)in(int,float)):
result += arg
return result
print(calc(1,2,3))#可变参数 + 关键字参数defcal(*args,**kwargs):
result =0for arg in args:iftype(arg)in(int,float):
result += arg
for value in kwargs.values():iftype(value)in(int,float):
result += value
return result
print(calc())print(cal(1,2,3))print(cal(1,2, d=4, a=2))#高阶函数defca(*args, init_value, op,**kwargs):
result = init_value
for arg in args:iftype(arg)in(int,float):
result = op(result, arg)for value in kwargs.values():iftype(value)in(int,float):
result = op(result, value)return result
defadd(x, y):return x + y
defmul(x, y):return x * y
print(ca(1,2,3, init_value=0, op=mul, x=6))defis_even(num):return num %2==0defsquare(num):return num **2
numbers1 =[35,12,8,99,60,52]
numbers2 =list(map(square,filter(is_even, numbers1)))print(numbers2)#列表生成式同样的功能
numbers2 =[num **2for num in numbers1 if num %2==0]print(numbers2)#Lambda函数
numbers1 =[35,12,8,99,60,52]
numbers2 =list(map(lambda x: x **2,filter(lambda x: x %2==0, numbers1)))print(numbers2)defcalc1(*args, init_value=0, op=lambda x, y: x + y,**kwargs):
result = init_value
for arg in args:iftype(arg)in(int,float):
result = op(result, arg)for value in kwargs.values():iftype(value)in(int,float):
result = op(result, value)return result
print(calc1(1,2,3, x=4, y=5))print(calc1(1,2,3, x=4, y=5, init_value=1, op=lambda x, y: x * y))