Python学习(3) ----- Python的函数定义及其使用

Python 中函数是组织好的、可重复使用的代码块,用于实现单一或相关联的功能。下面是函数定义和使用的完整说明:


一、函数定义语法

def 函数名(参数1, 参数2=默认值, *args, **kwargs):
    """函数说明文档"""
    函数体
    return 返回值

✅ 二、简单示例

def greet(name):
    return f"Hello, {name}!"

result = greet("Alice")
print(result)  # 输出: Hello, Alice!

三、参数类型详解

1. 位置参数

def add(a, b):
    return a + b

print(add(3, 5))  # 输出 8

2. 默认参数

def greet(name, message="Hi"):
    return f"{message}, {name}!"

print(greet("Tom"))            # Hi, Tom!
print(greet("Tom", "Hello"))   # Hello, Tom!

3. 可变参数 (*args)

args是可以自己命名的,这里的类型是元组(tuple)
tuple的特点
Python学习(3) ----- Python的函数定义及其使用_第1张图片

def sum_all(*args):
    return sum(args)

print(sum_all(1, 2, 3))  # 6

4. 关键字参数 (**kwargs)

适用于字典类型的入参,kwargs是可以自己命名的,这里的类型是字典(dict)

def show_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

show_info(name="Alice", age=30)
# 输出:
# name: Alice
# age: 30

四、返回值

单值返回:

def square(x):
    return x * x

多值返回(返回元组):

def get_user():
    return "Tom", 25

name, age = get_user()

♻️ 五、函数作为变量传递

def say_hello():
    print("Hello")

greet = say_hello
greet()  # Hello

六、带文档的函数

def square(x):
    """返回数字的平方"""
    return x * x

print(square.__doc__)  # 返回函数说明文档

✅ 七、匿名函数(lambda)

square = lambda x: x * x
print(square(5))  # 25

常用于排序、过滤等场景:

nums = [3, 1, 2]
nums.sort(key=lambda x: -x)

八、函数的好习惯

  • 使用明确的函数名和参数名
  • 编写函数文档字符串("""说明文字"""
  • 尽量保持函数短小和单一职责

下面是几道精选的 Python 函数练习题,每道题都有题目说明提示,适合巩固函数的定义与使用。


练习题 1:写一个求最大值的函数

题目:编写一个函数 get_max(a, b),返回两个数中的最大值。

def get_max(a, b):
    # TODO: 返回较大的那个数
    pass

print(get_max(10, 20))  # 应该输出 20

提示:使用 if...else 判断大小。


练习题 2:列表求和(可变参数)

题目:编写一个函数 sum_all(*args),接收任意数量的参数,并返回它们的总和。

def sum_all(*args):
    # TODO: 返回所有参数的总和
    pass

print(sum_all(1, 2, 3))        # 输出 6
print(sum_all(5, 10, 15, 20))  # 输出 50

提示:使用 sum() 函数或 for 循环遍历 args


练习题 3:计算 BMI 指数

题目:写一个函数 bmi(weight, height),根据体重(kg)和身高(米)计算 BMI = 体重 / 身高²。

def bmi(weight, height):
    # TODO: 返回 BMI 指数
    pass

print(bmi(60, 1.7))  # 应该输出大约 20.76

提示:BMI 的单位是 kg/m²,保留小数可用 round(bmi, 2)


练习题 4:欢迎语(带默认参数)

题目:定义一个函数 greet(name, message="Hello"),默认打招呼用 “Hello”,可以自定义问候语。

def greet(name, message="Hello"):
    # TODO: 打印 message, name!
    pass

greet("Tom")          # Hello, Tom!
greet("Alice", "Hi")  # Hi, Alice!

练习题 5:分析用户信息(关键字参数)

题目:定义函数 print_info(**kwargs),可以接受任意键值对,并打印它们。
kwargs也可以叫其他名字主要是前面有**标识

def print_info(**kwargs):
    # TODO: 遍历打印每一个 key: value
    pass

print_info(name="Tom", age=22, city="Shanghai")

提示:用 for key, value in kwargs.items() 遍历。


可以尝试把这些函数写进一个 .py 文件里,比如 my_functions.py

python my_functions.py

你可能感兴趣的:(Python,python,学习,开发语言)