Python函数操作
1.1 语法及示例
# 1.语法 # def关键字 函数名(参数列表): # 函数体 # return 返回值
# 函数使用 def my_len(data): count = 0; for x in data: count += 1 print(f"字符串{data} 的长度为:{count}") my_len("hello") my_len("hello,world!")
1.2 python函数返回值
python的函数支持多个返回值,c/c++函数的返回值在函数声明的时候就确定了,类型只有一种。
# 如果没有指定返回值,默认返回None def test(): print("ok") return None print(f"test函数的返回值为:{test()}") print(f"test函数的返回值类型为:{type(test())}") # 函数的多返回值 def return_multi_value(): return 1, "hello", [1,2,3] x, y, num_list = return_multi_value() print(x) print(y) print(num_list)
1.3 python函数的说明文档
使用 “”" 函数功能描述"“”
# 函数的说明文档 def add(num1, num2): """ add函数可以实现两数相加功能 :param num1: 参数1 :param num2: 参数2 :return: 两数相加的结果 """ res = num1 + num2; return res print("res = %d" % add(1, 2))
1.4 python函数参数传递的几种方式
def set_user_info(name, age, addr="beijing"): print(f"{name} 同学, 年龄:{age} 家庭住址:{addr}") set_user_info("lwang", 20, "beijing") # 1.4.1 关键字传参 set_user_info(name = "panda", age = 20, addr = "xian") # 1.4.2 参数有默认值,其中addr默认为:beijing set_user_info("lyz", 18) # 1.4.3 不定长参数传递 # (1)位置不定长 - *args 会根据传入参数的位置,合并为一个元组tuple,args是元组类型 def func1(*args): print(f"args的类型为:{type(args)}, 内容是:{args}") func1(1, 2, 3, "name") # (2)关键字不定长 - **kvargs 要求必须是 k-v 的形式传递参数,以字典的形式保存数据 def func2(**kvargs): print(f"kvargs的类型为:{type(kvargs)}, 内容是:{kvargs}") func2(name="jazz", age=20, addr="tianjin",habbie="game")
1.5 函数作为参数传递(函数指针)
# 函数作为参数传递 def add(x, y): return x+y; def sub(x, y): return x-y; def calculator(add_ptr, x, y): print(f"add_ptr 的类型为:{type(add_ptr)}") return add_ptr(x, y) print(calculator(add, 2, 3))
1.6 lambda表达式
# 7. 函数的定义: # def 关键字,定义有名称的函数; # lambda 关键字定义匿名函数, 语法: lambda 参数:函数体(一行代码),return默认省略 print(f"lambda表达式测试结果:{calculator(lambda x,y:x+y, 100, 100)}")