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)}")