Python-函数
创建函数
# def创建函数 def MyFirstFunction(): print('这是我创建的第一个函数!') print('我表示很激动~~~~') print('感谢TVB,CCTV') # 调用函数 MyFirstFunction() # 函数的参数/形参和实参 def MySecondFunction(name): '函数定义过程中的name是叫形参' # 因为他只是一个形式,表示占据一个参数位置 print(name + ',我爱你!') print('传递进来的' + name + '叫做实参,因为他是具体的参数值!') MySecondFunction('yangyang') def add(num1,num2): result = num1 + num2 print(result) add(1,5) # 函数的返回值 def add1(num1,num2): return (num1 + num2) print(add1(3,8)) # 参数文档:function.__doc__ print(MySecondFunction.__doc__) # 关键字参数:通过参数名指定想要赋值的参数 def saysame(name,words): print(name + '->' + words) saysame('yangyang', '未来可期') saysame(words = '未来可期',name = 'yangyang') # 默认参数:定义了默认值的参数 def saysome(name = 'yangyang',words = '未来可期'): print(name + '->' + words) saysome() saysome('qianxi', ) saysome('qianxi', 'respect') # 收集参数:* def test(*params): print('参数的长度是:', len(params)) print('第二个参数是:', params[1]) test(1, '小甲鱼', 3.14, 5, 8, 3) # 收集参数后面如果要加关键字参数,建议设一个默认参数,程序不容易报错 def test1(*params, exp = 7): print('参数的长度是:', len(params), exp) print('第二个参数是:', params[1]) test1(1, '小甲鱼', 3.14, 5, 8, 3) # 全局变量和局部变量 def discounts(price, rate): #局部变量 final_price = price * rate return final_price old_price = float(input('请输入原价:')) #全局变量 rate = float(input('请输入折扣:')) new_price = discounts(old_price, rate) print('打折后的价格是:', new_price) # global:在函数内修改全局变量 count = 5 def MyFun(): global count #修改全局变量count count = 10 print(count) MyFun() print(count) # 内嵌函数,内部函数整个作用域都在外部函数之内 def fun1(): print('fun1正在被调用。。。。') def fun2(): print('fun2正在被调用。。。。') fun2() fun1() # 闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。 def FunX(x): def FunY(y): return x * y return FunY i = FunX(8) print(type(i)) print(i(5)) print(FunX(8)(5)) # lambda:匿名函数 def ds(x): return 2 * x + 1 print(ds(5)) g = lambda x: 2 * x + 1 print(g(5)) f = lambda x, y : x + y print(f(3,9)) # filter(function or None,iterable):过滤器 # 1.None:过滤非true的内容 print(list(filter(None, [1, 0, 5, False, True]))) # 2.筛选出迭代器中符合函数条件的数据 def odd(x): return x % 2 temp = range(20) print(list(filter(odd, temp))) print(list(filter(lambda x : x % 2, temp))) # map(function,iterable):映射,将可迭代的序列中的每个元素作为函数的参数进行运算加工,返回所有加工后的元素组成新序列 print(list(map(lambda x : x * 2, range(5, 10))))