Python函数案例如何基础定义

wen python案例 27

本文目录导读:

Python函数案例如何基础定义

  1. 最简单的函数定义
  2. 有返回值的函数
  3. 参数类型详解
  4. 实际应用案例
  5. 函数文档字符串(Docstring)
  6. 函数高级特性

我来从最基础开始,系统地介绍Python函数定义的相关案例。

最简单的函数定义

无参数无返回值

# 最基本的函数
def greet():
    print("Hello, World!")
# 调用函数
greet()  # 输出: Hello, World!

有参数无返回值

def greet_person(name):
    print(f"Hello, {name}!")
greet_person("小明")  # 输出: Hello, 小明!

有返回值的函数

计算并返回值

def add(a, b):
    return a + b
result = add(3, 5)
print(result)  # 输出: 8
# 也可以直接使用
print(add(10, 20))  # 输出: 30

多个返回值

def get_min_max(numbers):
    return min(numbers), max(numbers)
min_val, max_val = get_min_max([3, 1, 7, 2, 9])
print(f"最小值: {min_val}, 最大值: {max_val}")
# 输出: 最小值: 1, 最大值: 9

参数类型详解

默认参数

def power(base, exp=2):
    """计算base的exp次方,默认计算平方"""
    return base ** exp
print(power(5))     # 输出: 25 (5的平方)
print(power(5, 3))  # 输出: 125 (5的立方)

关键字参数

def introduce(name, age, city):
    print(f"大家好,我是{name},今年{age}岁,来自{city}")
# 位置参数
introduce("张三", 25, "北京")
# 输出: 大家好,我是张三,今年25岁,来自北京
# 关键字参数(顺序可以不同)
introduce(city="上海", name="李四", age=30)
# 输出: 大家好,我是李四,今年30岁,来自上海

可变参数

# *args 可以接收任意数量的位置参数
def sum_all(*numbers):
    total = 0
    for num in numbers:
        total += num
    return total
print(sum_all(1, 2, 3, 4, 5))  # 输出: 15
print(sum_all(10, 20))         # 输出: 30
# **kwargs 可以接收任意数量的关键字参数
def print_info(**info):
    for key, value in info.items():
        print(f"{key}: {value}")
print_info(name="小明", age=18, grade="高一")
# 输出:
# name: 小明
# age: 18
# grade: 高一

实际应用案例

案例1:计算器函数

def calculator(num1, num2, operator):
    """基础计算器"""
    if operator == "+":
        return num1 + num2
    elif operator == "-":
        return num1 - num2
    elif operator == "*":
        return num1 * num2
    elif operator == "/":
        if num2 != 0:
            return num1 / num2
        else:
            return "除数不能为0"
    else:
        return "不支持的运算符"
# 测试
print(calculator(10, 5, "+"))  # 输出: 15
print(calculator(10, 5, "-"))  # 输出: 5
print(calculator(10, 5, "*"))  # 输出: 50
print(calculator(10, 5, "/"))  # 输出: 2.0

案例2:用户验证函数

def login_check(username, password):
    """简单的登录验证"""
    # 假设的用户数据库
    users = {
        "admin": "123456",
        "user1": "abc123"
    }
    if username in users:
        if users[username] == password:
            return "登录成功"
        else:
            return "密码错误"
    else:
        return "用户名不存在"
# 测试
print(login_check("admin", "123456"))  # 输出: 登录成功
print(login_check("admin", "123"))     # 输出: 密码错误
print(login_check("guest", "123"))     # 输出: 用户名不存在

案例3:数据处理函数

def process_student_scores(scores):
    """处理学生成绩,返回统计信息"""
    if not scores:
        return "没有成绩数据"
    average = sum(scores) / len(scores)
    highest = max(scores)
    lowest = min(scores)
    # 分级
    if average >= 90:
        grade = "优秀"
    elif average >= 80:
        grade = "良好"
    elif average >= 70:
        grade = "中等"
    elif average >= 60:
        grade = "及格"
    else:
        grade = "不及格"
    return {
        "平均分": average,
        "最高分": highest,
        "最低分": lowest,
        "等级": grade
    }
# 测试
scores = [85, 92, 78, 95, 88]
result = process_student_scores(scores)
print(result)
# 输出: {'平均分': 87.6, '最高分': 95, '最低分': 78, '等级': '良好'}

案例4:递归函数

def factorial(n):
    """计算阶乘(递归方式)"""
    if n == 0 or n == 1:
        return 1
    else:
        return n * factorial(n - 1)
def fibonacci(n):
    """计算斐波那契数列第n项"""
    if n <= 0:
        return 0
    elif n == 1:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)
# 测试
print(factorial(5))   # 输出: 120 (5*4*3*2*1)
print(fibonacci(10))  # 输出: 55

函数文档字符串(Docstring)

def calculate_bmi(weight, height):
    """
    计算BMI指数
    Parameters:
    weight (float): 体重(公斤)
    height (float): 身高(米)
    Returns:
    float: BMI指数
    str: 体重状态描述
    """
    bmi = weight / (height ** 2)
    if bmi < 18.5:
        status = "偏瘦"
    elif bmi < 24:
        status = "正常"
    elif bmi < 28:
        status = "偏胖"
    else:
        status = "肥胖"
    return bmi, status
# 查看函数文档
help(calculate_bmi)
# 使用函数
bmi, status = calculate_bmi(70, 1.75)
print(f"BMI: {bmi:.2f}, 状态: {status}")
# 输出: BMI: 22.86, 状态: 正常

函数高级特性

Lambda匿名函数

# 简单的lambda函数
square = lambda x: x ** 2
print(square(5))  # 输出: 25
# 在排序中使用
students = [
    {"name": "张三", "score": 85},
    {"name": "李四", "score": 92},
    {"name": "王五", "score": 78}
]
# 按成绩排序
students.sort(key=lambda s: s["score"], reverse=True)
print(students)
# 输出: [{'name': '李四', 'score': 92}, {'name': '张三', 'score': 85}, {'name': '王五', 'score': 78}]

基础函数定义的步骤:

  1. 使用 def 关键字
  2. 函数名(建议使用有意义的名称)
  3. 参数列表(可以为空)
  4. 函数体(缩进)
  5. 可选:返回值(使用 return

建议从简单的例子开始练习,逐步掌握各种参数类型和函数特性。

抱歉,评论功能暂时关闭!