第26天:返回值与函数组合

5 阅读2分钟

返回值与函数组合

  • 学习目标
    • 使用 return 返回值,如果没有 return 则返回 None
    • 返回多个值(实质是返回元组)
    • 函数可以调用其他函数,实现功能组合
    • 理解 return 终止函数执行
  • 实践任务
    1. 编写函数 add(a,b)multiply(a,b),然后编写 calculate(a,b,op) 根据 op 调用相应函数并返回结果。
    2. 编写函数 get_name_and_age() 返回元组 (name, age),并解包接收。
    3. 编写函数 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))

在这里插入图片描述