本文目录导读:

我来详细介绍Python函数返回值的多种实现方式和案例。
基础返回值
# 返回单个值
def add(a, b):
return a + b
result = add(3, 5)
print(result) # 输出: 8
# 返回字符串
def greet(name):
return f"你好, {name}!"
print(greet("小明")) # 输出: 你好, 小明!
返回多个值(元组)
# 返回多个值(实际上返回元组)
def get_user_info():
name = "张三"
age = 25
city = "北京"
return name, age, city
# 解包接收
name, age, city = get_user_info()
print(f"姓名: {name}, 年龄: {age}, 城市: {city}")
# 输出: 姓名: 张三, 年龄: 25, 城市: 北京
# 也可以用单个变量接收元组
info = get_user_info()
print(info) # 输出: ('张三', 25, '北京')
print(type(info)) # 输出: <class 'tuple'>
返回列表
def get_even_numbers(n):
"""返回1到n之间的所有偶数"""
return [i for i in range(1, n+1) if i % 2 == 0]
# 使用
numbers = get_even_numbers(10)
print(numbers) # 输出: [2, 4, 6, 8, 10]
# 列表操作
numbers.append(12)
print(numbers) # 输出: [2, 4, 6, 8, 10, 12]
返回字典
def create_student(name, age, scores):
"""创建学生信息字典"""
return {
"name": name,
"age": age,
"scores": scores,
"average": sum(scores) / len(scores) if scores else 0
}
# 使用
student = create_student("李四", 18, [85, 92, 78])
print(student)
# 输出: {'name': '李四', 'age': 18, 'scores': [85, 92, 78], 'average': 85.0}
# 访问字典值
print(f"学生姓名: {student['name']}")
print(f"平均分: {student['average']:.1f}")
返回None(无返回值)
# 无return语句
def print_info(name):
print(f"姓名: {name}")
result = print_info("王五")
print(result) # 输出: None
print(type(result)) # 输出: <class 'NoneType'>
# 显示返回None
def validate_age(age):
if age < 0 or age > 150:
return None
return age
age = validate_age(-5)
if age is None:
print("年龄不合法!")
条件返回
def calculate(operation, a, b):
"""根据运算符计算结果"""
if operation == "add":
return a + b
elif operation == "subtract":
return a - b
elif operation == "multiply":
return a * b
elif operation == "divide":
if b == 0:
return "错误:除数不能为0"
return a / b
else:
return "错误:不支持的运算符"
# 测试
print(calculate("add", 10, 5)) # 输出: 15
print(calculate("divide", 10, 0)) # 输出: 错误:除数不能为0
print(calculate("power", 2, 3)) # 输出: 错误:不支持的运算符
返回自定义对象
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def area(self):
return self.width * self.height
def __str__(self):
return f"矩形(宽={self.width}, 高={self.height})"
def create_rectangle(w, h):
"""创建并返回矩形对象"""
if w <= 0 or h <= 0:
return None
return Rectangle(w, h)
# 使用
rect = create_rectangle(5, 3)
if rect:
print(f"创建了{rect}, 面积: {rect.area()}") # 输出: 创建了矩形(宽=5, 高=3), 面积: 15
rect2 = create_rectangle(-1, 3)
print(rect2) # 输出: None
实际应用案例
案例1:计算器程序
def calculator():
"""完整计算器功能"""
def add(a, b):
return a + b
def subtract(a, b):
return a - b
def multiply(a, b):
return a * b
def divide(a, b):
if b == 0:
return None, "除数不能为0"
return a / b, None
# 返回所有函数
return {
"+": add,
"-": subtract,
"*": multiply,
"/": divide
}
# 使用
ops = calculator()
x, y = 10, 5
# 加法
result = ops["+"](x, y)
print(f"{x} + {y} = {result}") # 输出: 10 + 5 = 15
# 除法(错误处理)
result, error = ops["/"](10, 0)
if error:
print(f"错误: {error}") # 输出: 错误: 除数不能为0
案例2:数据分析函数
def analyze_scores(scores):
"""分析成绩数据"""
if not scores:
return {
"valid": False,
"message": "没有数据"
}
return {
"valid": True,
"count": len(scores),
"sum": sum(scores),
"average": sum(scores) / len(scores),
"max": max(scores),
"min": min(scores),
"passed": len([s for s in scores if s >= 60]),
"failed": len([s for s in scores if s < 60])
}
# 测试
scores = [85, 92, 58, 76, 45, 90, 88, 62]
analysis = analyze_scores(scores)
print("成绩分析结果:")
print(f"总人数: {analysis['count']}")
print(f"平均分: {analysis['average']:.1f}")
print(f"最高分: {analysis['max']}")
print(f"最低分: {analysis['min']}")
print(f"及格人数: {analysis['passed']}")
print(f"不及格人数: {analysis['failed']}")
# 检查空数据
empty_analysis = analyze_scores([])
print(f"\n空数据检查: {empty_analysis}")
高级用法:生成器(yield)
def fibonacci_generator(n):
"""生成斐波那契数列"""
a, b = 0, 1
count = 0
while count < n:
yield a
a, b = b, a + b
count += 1
# 使用生成器
for num in fibonacci_generator(10):
print(num, end=" ")
# 输出: 0 1 1 2 3 5 8 13 21 34
# 转换为列表
fib_list = list(fibonacci_generator(10))
print(f"\n列表: {fib_list}")
- 返回值类型:可以返回任何Python对象
- 多个返回值:通过元组实现,自动打包和解包
- None返回值:函数默认返回None,用于表示无返回值
- 错误处理:可以考虑返回元组
(value, error)来进行错误处理 - 返回值使用:函数的返回值可以赋值、直接使用或作为其他函数的参数
这些案例涵盖了Python函数返回值的主要用法,你可以根据实际需求选择合适的方式。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播