侧边栏壁纸
博主头像
phphi

phphi's blog

  • 累计撰写 51 篇文章
  • 累计收到 0 条评论

Day14 - 函数和模块

2026-4-24 / 0 评论 / 2 阅读

函数和模块

函数基础

函数是对"功能独立且会重复使用"的代码的封装。通过函数可以:1)减少重复代码;2)提高代码可读性;3)便于团队协作。

# 定义函数
def fac(num):
    """计算num的阶乘"""
    result = 1
    for n in range(2, num + 1):
        result *= n
    return result

# 调用函数
print(fac(5))   # 120
print(fac(7))  # 5040

函数的参数

位置参数和关键字参数

def greet(name, greeting='你好'):
    print(f'{greeting}, {name}!')

greet('Alice')              # 位置参数
greet(name='Bob', greeting='Hello')  # 关键字参数

默认值参数

def roll_dice(n=2):
    """掷n颗骰子,默认2颗"""
    import random
    return sum(random.randrange(1, 7) for _ in range(n))

print(roll_dice())   # 默认掷2颗
print(roll_dice(3))  # 掷3颗

注意:默认值参数必须放在非默认值参数之后。

可变参数

# 可变位置参数
def add(*args):
    return sum(args)

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

# 可变关键字参数
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f'{key}: {value}')

print_info(name='Alice', age=30, city='Beijing')

模块管理

什么是模块

每个 .py 文件就是一个模块,模块可以避免命名冲突:

module1.py:

def foo():
    print('hello')

module2.py:

def foo():
    print('goodbye')

main.py:

import module1
import module2

module1.foo()  # hello
module2.foo()  # goodbye

导入方式

import math                    # 导入整个模块
from math import factorial     # 导入特定函数
from math import factorial as f  # 导入并取别名
from math import *             # 导入所有(不推荐)

常用内置函数

函数 说明
abs(x) 绝对值
max(iterable) 最大值
min(iterable) 最小值
sum(iterable) 求和
len(thing) 长度
pow(x, y) x 的 y 次方
round(x, n) 四舍五入保留 n 位小数
type(obj) 对象类型
isinstance(obj, type) 类型判断
input(prompt) 读取输入
print(*args) 打印输出

总结

  • 函数用 def 定义,return 返回值,无 return 返回 None
  • 参数类型:位置参数、关键字参数、默认值参数、可变参数
  • 用模块管理函数,避免命名冲突
  • Python 标准库提供了大量模块,优先使用现成实现(不要重复发明轮子)