14.函数参数与返回值

14.函数参数与返回值

欢迎来到《10天学会Python》第7天第二课!上节课学会了函数的基本使用,今天学习如何让函数更灵活——通过参数接收不同信息,通过返回值输出处理结果。

核心概念

生活化比喻:点菜系统

想象函数就像一个智能点菜系统

  • 参数 = 顾客的点单要求(菜品、数量、口味)
  • 函数体 = 厨房的制作过程
  • 返回值 = 服务员端上桌的菜品

参数让函数能处理不同情况,返回值让函数能给出有用结果。

参数详解:三种传递方式

1. 位置参数(按顺序传递)

位置参数是最基本的方式:实参按定义时的顺序一一对应传递。

python

def order_food(dish, quantity, spicy_level):
    """点餐函数"""
    return f"{quantity}份{dish},辣度{spicy_level}级"

meal = order_food("宫保鸡丁", 2, 3)
print(meal)  # 2份宫保鸡丁,辣度3级

注意:位置必须严格对应!顺序错了会得到错误结果。

2. 关键字参数(明确指定参数名)

使用参数名=值的方式,可以不按顺序传递:

python

meal2 = order_food(spicy_level=1, quantity=1, dish="番茄炒蛋")
print(meal2)  # 1份番茄炒蛋,辣度1级

优势:代码可读性高,避免因顺序错误导致的bug。

3. 默认参数(预设常用值)

定义函数时给参数设置默认值,调用时可以不传递:

python

def greet(name, greeting="你好"):
    """问候函数,有默认配置"""
    return f"{greeting},{name}!"

msg1 = greet("小明")  # 你好,小明!
msg2 = greet("小红", greeting="Hello")  # Hello,小红!

技巧:默认参数放后面,常用配置设默认。

返回值:函数的"成果展示"

1. 返回单个值(最常见)

python

def calculate_area(length, width):
    """计算矩形面积"""
    return length * width

area = calculate_area(5, 4)
print(f"面积:{area}平方米")  # 面积:20平方米

2. 返回多个值(元组打包)

Python允许函数返回多个值,自动打包成元组:

python

def get_student_info():
    """返回学生信息"""
    name = "小明"
    age = 18
    score = 85
    return name, age, score

name, age, score = get_student_info()

3. 无返回值(None)

函数可以不写 return语句,此时返回特殊值 None

python

def show_menu():
    """显示菜单"""
    print("今日菜单:番茄炒蛋 25元")
    # 无return,默认返回None

代码示例(5个生活场景)

示例1:位置参数和关键字参数对比

python

def make_coffee(type, size, sugar):
    return f"{size}杯{type}咖啡,糖度:{sugar}%"

# 位置参数
coffee1 = make_coffee("拿铁", "大", 30)
# 关键字参数  
coffee2 = make_coffee(type="美式", sugar=0, size="中")

示例2:默认参数的使用

python

def book_ticket(movie, seat="普通座"):
    return f"已预订:{movie},{seat}"

ticket = book_ticket("流浪地球3")  # 使用默认值

示例3:返回单个值的函数

python

def calculate_discount(price, discount_rate):
    final_price = price * (1 - discount_rate/100)
    return round(final_price, 2)

示例4:返回多个值的函数

python

def analyze_scores(scores):
    highest = max(scores)
    lowest = min(scores)
    average = sum(scores) / len(scores)
    return highest, lowest, round(average, 1)

示例5:无返回值的函数

python

def create_welcome_card(name):
    print(f"欢迎{name}参加活动!")

练习题

按照任务要求,设计3组递进难度的练习题:

第1组(基础)

编写函数计算矩形面积(长和宽为参数)

python

# 函数名:rectangle_area
area = rectangle_area(5, 3)  # 返回15

第2组(应用)

编写函数将摄氏度转换为华氏度

python

# 函数名:celsius_to_fahrenheit
f_temp = celsius_to_fahrenheit(25)  # 返回77.0

第3组(综合)

编写函数处理学生成绩,返回平均分、最高分、最低分

python

# 函数名:process_grades
scores = [85, 92, 78, 88, 95]
avg, highest, lowest = process_grades(scores)  # 87.6, 95, 78

总结

今天学习了函数参数与返回值的核心知识:

参数三种方式

  1. 位置参数:按顺序传递
  2. 关键字参数:明确指定参数名
  3. 默认参数:预设常用值

返回值三种形式

  1. 单个值:返回计算结果
  2. 多个值:元组打包
  3. 无返回值(None):只执行操作

掌握这些,你就能设计灵活实用的函数。明天学习变量的作用域!


学习建议

  1. 多练习参数的不同传递方式
  2. 设计实用函数,思考参数和返回值
  3. 函数和参数命名要清晰
13.函数的定义与调用 2026-01-21
15.变量的作用域 2026-01-21

评论区