03.Python函数
简单操作:
""" 函数: """ # 定义函数 def say(): print("俺正在说话") # 使用lambda表达式简化上面函数 say = lambda: "俺再一次说话" # print(say()) # 带参数的函数 def eat(what): print(f"你们正在吃{what}") eat = lambda what: f"你们正在吃{what}" # print(eat("螺蛳粉")) # 定义带两个参数的函数 def test(a, b=222): print(f"a={a}") print(f"b={b}") test = lambda a,b=222: f"a={a},b={b}" # print(test(111)) # 带条件的lambda test7 = lambda a,b : a if a > b else b print(test7(22, 44)) # 求1,2,3内的和,用lambda实现 test8 = lambda *args: sum(args) # print(test8(1, 2, 3)) # 定义可变参数1,参数是元组类型 # 多个值的和 def test1(*args): """这是一个求多个值和的函数""" sum = 0 for i in args[0]: sum += i else: # print(f"和为{sum}") # 返回值 return sum # 定义可变参数2: # 参数为字典类型 def test2(**kwargs): for k, v in kwargs.items(): print(k, v) # 返回值为多个 def test3(a, b, c): """ 这是一个测试函数,测试函数为多个返回值 :param a: 值1 :param b: 值2 :param c: 值3 :return: 返回多个值 """ a += 100 b += 100 c += 100 return a, b, c # 计算多个值的平均值 def test4(*args): sum = test1(args) return sum / len(args) # 测试变量范围 a = 222 # 全局变量 def test5(): # 在函数内部修改全局变量的值 # 必须声明 变量为全局变量 global a a = 333 print(f"函数内:{a},地址为:{id(a)}") # 递归:函数内部调用函数本身 # 求某个数以内的和 def test6(num): if num == 1: return 1 return num + test6(num - 1) # 调用递归函数 # print(test6(100)) # print(f"函数外:{a},地址为:{id(a)}") # test5() # print(f"函数外:{a},地址为:{id(a)}") # 调用函数:必须放在定义函数的后面 # say() # 调用有参的函数 # eat("辣椒炒尖椒") # 调用参数:1.位置方式 # test(11, 22) # 2.关键字方式 # test(b=22, a=11) # 3.缺省参数(默认值) # 注意:有默认值的参数必须放在没有默认值参数的后面 # test(11, 22) # 调用可变参数1 # print(test1(1, 2, 3)) # 调用可变参数2 # test2(name="光头强", age=19) # 调用返回值为多个值的函数 # print(test3(20, 10, 30)) # 查看函数的说明文档 # help(test3) # 函数嵌套 # print(test4(1, 2, 3)) # 使用lambda对字典列表进行排序 persons = [ {"name": "张三", "age": 22}, {"name": "小四", "age": 12}, {"name": "王五", "age": 23}, {"name": "赵六", "age": 2} ] persons.sort(key= lambda person:person["name"], reverse=True) print(persons)
各位朋友,本楼主是学java的,也只是1至2年的小白,但学习能力还是挺强的,已经在工作,而且工作之余还在研究python,如有人需要资源,可在博客园评论,我不时会登录看看,或更新一些东西,如果看到需要资源的评论,我会和你私聊发送资源,谢谢各位咯