Python的秘密基地--[章节3]函数与模块

第3章:函数与模块

函数与模块是Python开发中的核心部分,它们可以极大提高代码的复用性和组织性。


3.1 函数

3.1.1 什么是函数

函数是具有名字的代码块,可以通过调用来多次使用。

# 函数定义与调用
def greet(name):
    return f"Hello, {name}!"

print(greet("Alice"))  # 输出: Hello, Alice!
3.1.2 定义函数
  • 使用 def 关键字定义函数。
  • 函数可以有参数和返回值。
# 一个简单的加法函数
def add(a, b):
    return a + b

print(add(3, 5))  # 输出: 8
3.1.3 参数类型
类型描述示例
位置参数参数按顺序匹配def greet(name) -> greet("Alice")
默认参数提供默认值,可在调用时省略def greet(name="Guest") -> greet()
可变参数使用*args接收任意数量的位置参数def add(*args)
关键字参数使用**kwargs接收任意数量的关键字参数def info(**kwargs)
# 示例代码
def info(name, age=18, *args, **kwargs):
    print(f"Name: {name}, Age: {age}")
    print(f"Additional args: {args}")
    print(f"Additional kwargs: {kwargs}")

info("Alice", 25, "Student", country="USA", hobby="reading")
3.1.4 匿名函数(Lambda表达式)
  • 用于定义简单的、临时的函数。
  • 使用关键字 lambda 定义。
# 示例
square = lambda x: x ** 2
print(square(5))  # 输出: 25

3.2 作用域与闭包

3.2.1 变量作用域
  • 局部变量(Local):定义在函数内部,只在函数内有效。
  • 全局变量(Global):定义在函数外部,可在整个模块中访问。
  • 作用域规则(LEGB)
    • L:Local (函数内部)
    • E:Enclosing (嵌套函数的外部函数)
    • G:Global (模块级别)
    • B:Built-in (内置作用域)
# 示例
x = "Global"

def test_scope():
    x = "Local"
    print(x)  # 输出: Local

test_scope()
print(x)      # 输出: Global
3.2.2 闭包(Closure)

闭包是指在函数内部定义的函数可以捕获并“记住”其外部函数的变量。

# 闭包示例
def outer_func(x):
    def inner_func(y):
        return x + y
    return inner_func

add_5 = outer_func(5)
print(add_5(10))  # 输出: 15

3.3 模块

3.3.1 什么是模块

模块是一个包含Python代码的文件,扩展名为.py。通过模块可以组织代码并实现复用。

  • 内置模块:Python自带的模块(如mathos等)。
  • 自定义模块:用户自己创建的模块。

3.3.2 导入模块
导入方式描述示例
导入整个模块使用 import 模块名import math
导入模块中的指定部分使用 from 模块名 import 成员from math import sqrt
给模块取别名使用 import 模块名 as 别名import numpy as np
# 示例:使用math模块
import math
print(math.sqrt(16))  # 输出: 4.0

3.3.3 自定义模块
  1. 创建模块
    创建一个名为my_module.py的文件,内容如下:

    def greet(name):
        return f"Hello, {name}!"
    
  2. 导入模块
    在主程序中使用该模块:

    import my_module
    print(my_module.greet("Alice"))  # 输出: Hello, Alice!
    

3.3.4 包(Package)

包是一个包含多个模块的目录,通过在目录中添加__init__.py文件使其成为包。

  1. 创建包结构

    my_package/
    ├── __init__.py
    ├── module1.py
    └── module2.py
    
  2. 使用包

    from my_package import module1
    module1.some_function()
    

3.4 Python中的标准库

Python自带了许多功能强大的模块和库,以下是几个常用模块的介绍:

3.4.1 math模块

提供数学运算相关的功能。

import math
print(math.pi)        # 圆周率
print(math.factorial(5))  # 阶乘
3.4.2 os模块

用于操作系统相关的功能。

import os
print(os.getcwd())   # 获取当前工作目录
os.mkdir("new_folder")  # 创建新目录
3.4.3 random模块

用于生成随机数。

import random
print(random.randint(1, 100))  # 随机整数

小结

这一章介绍了Python函数的定义与使用、作用域的规则、模块的导入以及标准库的功能。通过掌握这些内容,可以更高效地编写模块化代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码上有潜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值