欢迎来到《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
总结
今天学习了函数参数与返回值的核心知识:
参数三种方式:
- 位置参数:按顺序传递
- 关键字参数:明确指定参数名
- 默认参数:预设常用值
返回值三种形式:
- 单个值:返回计算结果
- 多个值:元组打包
- 无返回值(None):只执行操作
掌握这些,你就能设计灵活实用的函数。明天学习变量的作用域!
学习建议:
- 多练习参数的不同传递方式
- 设计实用函数,思考参数和返回值
- 函数和参数命名要清晰