【30天玩转python】函数与模块

函数与模块

Python 中,函数是组织代码的重要方式,可以将重复的代码封装起来,提升代码的复用性和可读性。模块则是更高层次的组织结构,用来将相关的代码打包在一起,方便管理和使用。本节将介绍函数与模块的定义、使用及相关操作。


1. 函数

1.1 定义函数

函数是使用 def 关键字定义的。函数可以接受参数并返回值。下面是一个简单的函数定义示例:

def greet(name):
    """该函数用于打印问候语"""
    print(f"Hello, {name}!")

调用函数:

greet("Alice")  # 输出:Hello, Alice!
1.2 函数的返回值

函数可以使用 return 语句返回一个值。如果没有 return 语句,函数将返回 None

def add(a, b):
    """该函数返回两个数的和"""
    return a + b

result = add(3, 5)
print(result)  # 输出:8
1.3 函数参数
1.3.1 位置参数

最常见的参数类型,按顺序传递给函数。

def multiply(x, y):
    return x * y

print(multiply(2, 3))  # 输出:6
1.3.2 关键字参数

通过键值对形式传递参数,可以打乱参数的顺序。

def describe_person(name, age):
    print(f"Name: {name}, Age: {age}")

describe_person(age=25, name="Bob")  # 输出:Name: Bob, Age: 25
1.3.3 默认参数

函数可以为某些参数提供默认值,如果调用时未提供对应参数,使用默认值。

def greet(name="Guest"):
    print(f"Hello, {name}!")

greet()         # 输出:Hello, Guest!
greet("Alice")  # 输出:Hello, Alice!
1.3.4 可变参数

通过 *args**kwargs 可以接收可变数量的参数。

  • *args:接收任意数量的位置参数,返回一个元组。
  • **kwargs:接收任意数量的关键字参数,返回一个字典。
def add(*args):
    return sum(args)

print(add(1, 2, 3, 4))  # 输出:10

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

describe(name="Alice", age=25, city="New York")
# 输出:
# name: Alice
# age: 25
# city: New York
1.4 函数的作用域

Python 中变量的作用域分为局部作用域和全局作用域。函数内部定义的变量是局部变量,只能在函数内部访问。全局变量可以在函数外部或内部访问。

x = 10  # 全局变量

def modify():
    global x  # 使用 global 关键字修改全局变量
    x = 5     # 修改全局变量
    print(x)

modify()   # 输出:5
print(x)   # 输出:5
1.5 Lambda 表达式

Lambda 表达式(匿名函数)是没有名字的小型函数,通常用于简单的计算。它使用 lambda 关键字定义。

# 定义一个 lambda 表达式
square = lambda x: x ** 2
print(square(5))  # 输出:25

Lambda 表达式常用于内置函数如 map()filter()sorted()

# 使用 lambda 表达式对列表进行排序
points = [(2, 3), (1, 2), (4, 1)]
points_sorted = sorted(points, key=lambda point: point[1])
print(points_sorted)  # 输出:[(4, 1), (1, 2), (2, 3)]

2. 模块

2.1 什么是模块

模块是一个包含 Python 代码的文件,通常包括函数、类和变量。模块提供了一种将代码组织成独立组件的方法,从而提升代码的复用性和可维护性。

  • 内置模块:Python 自带的模块,如 mathosrandom 等。
  • 自定义模块:用户自己创建的模块。
2.2 导入模块

可以使用 import 关键字导入一个模块。

import math

# 使用 math 模块中的函数
print(math.sqrt(16))  # 输出:4.0

可以导入模块中的特定函数或变量:

from math import pi, sqrt

print(pi)  # 输出:3.141592653589793
print(sqrt(25))  # 输出:5.0

使用 as 关键字给模块或函数起别名:

import math as m

print(m.sqrt(9))  # 输出:3.0
2.3 自定义模块

我们可以通过将 Python 代码保存为 .py 文件来自定义模块,并在其他文件中导入使用。

创建模块文件 my_module.py

# my_module.py
def greet(name):
    print(f"Hello, {name}!")

导入并使用模块:

# main.py
import my_module

my_module.greet("Alice")  # 输出:Hello, Alice!
2.4 __name__ 和模块

每个 Python 文件都有一个特殊的属性 __name__,它的值在模块被直接运行时是 '__main__',在被导入时是模块的名字。可以通过此特性控制模块的运行方式。

# my_module.py
def greet(name):
    print(f"Hello, {name}!")

if __name__ == "__main__":
    greet("World")  # 当该文件被直接运行时会执行此行

3. 标准库模块

Python 有许多强大的标准库模块,以下是一些常见的模块:

  • os 模块:用于与操作系统交互。

    import os
    
    print(os.getcwd())  # 获取当前工作目录
    
  • sys 模块:提供了对解释器和系统功能的访问。

    import sys
    
    print(sys.version)  # 输出 Python 版本信息
    
  • datetime 模块:处理日期和时间。

    import datetime
    
    now = datetime.datetime.now()
    print(now)  # 输出当前日期和时间
    
  • random 模块:生成随机数和随机选择。

    import random
    
    print(random.randint(1, 10))  # 输出 1 到 10 之间的随机整数
    

4. 小结

函数和模块是 Python 编程的基础。函数通过封装重复代码提高了程序的复用性,而模块通过组织相关代码提升了代码的可维护性和清晰度。理解函数与模块的使用,可以帮助我们编写高效、结构化的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱技术的小伙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值