返回值与函数组合
- 学习目标
- 使用
return返回值,如果没有return则返回None - 返回多个值(实质是返回元组)
- 函数可以调用其他函数,实现功能组合
- 理解
return终止函数执行
- 使用
- 实践任务
- 编写函数
add(a,b)和multiply(a,b),然后编写calculate(a,b,op)根据 op 调用相应函数并返回结果。 - 编写函数
get_name_and_age()返回元组(name, age),并解包接收。 - 编写函数
is_even(n)返回布尔值,然后在另一个函数filter_even(numbers)中调用它,返回偶数列表。
- 编写函数
- 挑战任务
实现一个简单的数学运算链:函数add_then_multiply(x,y,z)先加后乘(先计算 x+y 再乘以 z),要求调用两个独立的函数完成。
return
用于从函数中返回一个结果,并结束函数的执行。没有return时返回None
语法:
def 函数名(参数):
#函数体
return 返回值
返回多个值
函数返回多个值,实际上就是通过一个元组来实现的
接收值的几种方法
分别接收每个值
def num():
return 10.5,3,7
x,y,z=num()
print(f"x={x},y={y},z={z}")
作为元组整体接收
def num():
return 10.5,3,7
coords=num()
print(coords)
使用下划线忽略某些值
def num():
return 10.5,3,7
x,_,z=num()
print(f"x={x},z={z}")
使用*收集多余的值
def get_data():
return 1, 2, 3, 4, 5
first, *middle, last = get_data()
print(first)
print(middle)
print(last)
函数中调用其他函数
def dog(name):
return name
def cat(name):
return name
def animal():
print(dog("小黑"))
print(cat("米粒"))
animal()
实践任务
编写函数 add(a,b) 和 multiply(a,b),然后编写 calculate(a,b,op) 根据 op 调用相应函数并返回结果。
def add(a,b):
return a+b
def multiply(a,b):
return a*b
def calculate(a,b,op):
if op=="add":
return add(a,b)
elif op=="multiply":
return multiply(a,b)
else:
return f"不支持操作符{op},请使用'add'或'multiply'"
result1=calculate(1,2,"add")
print(result1)
result2=calculate(1,2,"multiply")
print(result2)
编写函数 get_name_and_age() 返回元组 (name, age),并解包接收。
def get_name_and_age():
return "name","age"
name,age=get_name_and_age()
print(name,age)
编写函数 is_even(n) 返回布尔值,然后在另一个函数 filter_even(numbers) 中调用它,返回偶数列表。
def is_even(n):
return n%2==0
def filter_even(numbers):
res=[]
for num in numbers:
if is_even(num):
res.append(num)
return res
ts=[1,2,3,4,5]
eve=filter_even(ts)
print(eve)
挑战任务
实现一个简单的数学运算链:函数 add_then_multiply(x,y,z) 先加后乘(先计算 x+y 再乘以 z),要求调用两个独立的函数完成。
def ade(x,y):
c=x+y
return c
def mul(z):
return z
def add_then_multiply(x,y,z):
add1=ade(x,y)
am=add1*mul(z)
return am
print(add_then_multiply(2,3,4))