Python零基础教程第十课 认识新朋友 模块和包

浏览量:17 次 发布时间:2025-12-26 21:16 作者:明扬工控商城 下载docx

最近更新:Python零基础教程第七课:我的第一个工具箱——函数


欢迎来到第十课。前面我们学会了编写自己的程序,但编程的世界很大,有很多功能别人已经帮我们写好了。今天我们要学习如何使用这些现成的工具,它们叫做模块和包。就像你要做饭,不需要自己种菜、榨油、磨面粉,直接去超市买现成的材料就可以了。

第一部分 什么是模块和包

想象一下,你有一个工具箱:

  1. 锤子模块:专门敲钉子

  2. 螺丝刀模块:专门拧螺丝

  3. 尺子模块:专门测量长度

每个模块都有专门的功能。把这些模块放在一个工具箱里,这个工具箱就是包。

在Python中:

  • 模块:一个.py文件,包含了一些函数和变量

  • 包:一个文件夹,里面包含多个模块

第二部分 使用内置模块

Python自带了很多模块,我们叫它们标准库。让我们看看怎么使用。

使用math模块做数学计算

代码部分:
使用math模块
import math

print("数学计算示例")
print("圆周率π =", math.pi)
print("自然常数e =", math.e)

计算
print("\n计算示例:")
print("4的平方根 =", math.sqrt(4))
print("2的3次方 =", math.pow(2, 3))
print("sin(30度) =", math.sin(math.radians(30))) 注意要先转换成弧度
print("log(100) =", math.log(100, 10)) 以10为底100的对数

向上取整和向下取整
print("\n取整示例:")
print("3.14向上取整 =", math.ceil(3.14))
print("3.14向下取整 =", math.floor(3.14))
print("3.14四舍五入 =", round(3.14))

使用random模块生成随机数

代码部分:
使用random模块
import random

print("随机数示例")
print("\n生成0到1之间的随机小数:")
for i in range(3):
print(f"第{i+1}次:", random.random())

print("\n生成指定范围的随机整数:")
print("1到10的随机数:", random.randint(1, 10))
print("1到100的随机数:", random.randint(1, 100))

print("\n从列表中随机选择:")
水果列表 = ["苹果", "香蕉", "橙子", "葡萄", "西瓜"]
print("随机水果:", random.choice(水果列表))
print("随机选择2个水果:", random.sample(水果列表, 2))

打乱列表顺序
print("\n打乱列表顺序:")
牌组 = ["红桃A", "红桃2", "红桃3", "红桃4", "红桃5"]
print("原始牌组:", 牌组)
random.shuffle(牌组)
print("洗牌后:", 牌组)

使用datetime模块处理时间

代码部分:
使用datetime模块
import datetime

print("日期时间示例")

获取当前时间
现在 = datetime.datetime.now()
print("当前完整时间:", 现在)
print("当前日期:", 现在.date())
print("当前时间:", 现在.time())
print("年份:", 现在.year)
print("月份:", 现在.month)
print("日期:", 现在.day)
print("小时:", 现在.hour)
print("分钟:", 现在.minute)
print("秒:", 现在.second)

格式化时间
print("\n格式化时间:")
格式1 = 现在.strftime("%Y年%m月%d日 %H时%M分%S秒")
格式2 = 现在.strftime("%Y-%m-%d %H:%M:%S")
格式3 = 现在.strftime("%A, %B %d, %Y") 英文格式
print("中文格式:", 格式1)
print("标准格式:", 格式2)
print("英文格式:", 格式3)

时间计算
print("\n时间计算:")
今天 = datetime.date.today()
print("今天是:", 今天)

一天 = datetime.timedelta(days=1)
一周 = datetime.timedelta(weeks=1)

明天 = 今天 + 一天
昨天 = 今天 - 一天
下周 = 今天 + 一周

print("明天:", 明天)
print("昨天:", 昨天)
print("下周今天:", 下周)

第三部分 导入模块的不同方式

导入模块有几种方法,适用于不同场景。

方法1:import 模块名

代码部分:
方法1:import 模块名
import math
import random
import datetime

这样使用
结果 = math.sqrt(16)
print("16的平方根:", 结果)

随机数 = random.randint(1, 100)
print("1-100随机数:", 随机数)

现在 = datetime.datetime.now()
print("当前时间:", 现在)

方法2:import 模块名 as 别名

代码部分:
方法2:import 模块名 as 别名
import math as m
import datetime as dt

这样使用
结果 = m.sqrt(25)
print("25的平方根:", 结果)

现在 = dt.datetime.now()
print("当前时间:", 现在)

当模块名很长时,用别名很方便
import numpy as np
import pandas as pd
这是数据科学生态中常用的别名

方法3:from 模块名 import 功能名

代码部分:
方法3:from 模块名 import 功能名
from math import sqrt, pi
from random import randint, choice

这样使用,不需要写模块名
print("圆周率:", pi)
结果 = sqrt(36)
print("36的平方根:", 结果)

随机数 = randint(1, 50)
print("1-50随机数:", 随机数)

方法4:from 模块名 import *

代码部分:
方法4:from 模块名 import *
from math import *

这样使用,所有功能都可以直接使用
print("π =", pi)
print("e =", e)
print("sin(π/2) =", sin(pi/2))
print("2的3次方 =", pow(2, 3))

注意:这种方法可能会引起命名冲突,一般不推荐

第四部分 创建自己的模块

我们也可以创建自己的模块,供其他程序使用。

第一步:创建第一个模块
新建一个文件,保存为"我的工具.py"

代码部分:
文件:我的工具.py
我的第一个模块

版本信息
version = "1.0.0"
作者 = "Python学习者"

函数定义
def 问好(名字):
简单的问候函数
return f"你好,{名字}!欢迎使用我的工具。"

def 计算圆面积(半径):
计算圆面积
import math
return math.pi * 半径 * 半径

def 计算圆周长(半径):
计算圆周长
import math
return 2 * math.pi * 半径

def 判断素数(数字):
判断一个数是否是素数
if 数字 < 2:
return False
for i in range(2, int(数字**0.5) + 1):
if 数字 % i == 0:
return False
return True

def 生成斐波那契数列(长度):
生成斐波那契数列
if 长度 <= 0:
return []
elif 长度 == 1:
return [0]
elif 长度 == 2:
return [0, 1]

text
复制
下载
数列 = [0, 1]
for i in range(2, 长度):
    下一个数 = 数列[i-1] + 数列[i-2]
    数列.append(下一个数)
return 数列

测试代码
if name == "main":
print("测试我的工具模块:")
print(问好("小明"))
print("半径为5的圆面积:", 计算圆面积(5))
print("半径为5的圆周长:", 计算圆周长(5))
print("17是素数吗?", 判断素数(17))
print("前10个斐波那契数:", 生成斐波那契数列(10))

第二步:使用自己的模块
新建另一个文件,保存为"使用我的工具.py"

代码部分:
文件:使用我的工具.py
使用我们自己创建的模块

导入模块
import 我的工具

使用模块中的函数
print(我的工具.问好("小红"))

print("半径为3的圆面积:", 我的工具.计算圆面积(3))
print("半径为3的圆周长:", 我的工具.计算圆周长(3))

print("检查素数:")
for 数字 in [2, 3, 4, 17, 20, 29]:
结果 = 我的工具.判断素数(数字)
print(f"{数字}是素数吗?{结果}")

print("斐波那契数列:")
print("前5个:", 我的工具.生成斐波那契数列(5))
print("前8个:", 我的工具.生成斐波那契数列(8))

访问模块信息
print("\n模块信息:")
print("版本:", 我的工具.version)
print("作者:", 我的工具.作者)

第五部分 理解 if name == "main"

在模块中,我们经常看到这行代码,它有什么作用呢?

代码部分:
理解 if name == "main"

创建测试文件 test.py
def 测试函数():
print("这是一个测试函数")

print("name 的值是:", name)

if name == "main":
print("这个文件被直接运行")
测试函数()
else:
print("这个文件被导入为模块")

运行这个文件,会看到:
name 的值是:main
这个文件被直接运行
这是一个测试函数

在另一个文件中导入它:
import test
会看到:
name 的值是:test
这个文件被导入为模块

作用:

  • 当文件被直接运行时,name 等于 "main"

  • 当文件被导入时,name 等于 模块名

  • 这样可以让代码既可作为模块使用,也可直接运行测试

第六部分 创建包

当模块很多时,我们可以把它们组织成包。

创建包的步骤:

  1. 创建一个文件夹(包名)

  2. 在文件夹中创建 init.py 文件(可以是空的)

  3. 在文件夹中创建多个模块文件

示例:创建数学工具包

第一步:创建文件夹结构
数学工具包/
init.py
基本运算.py
几何计算.py
统计分析.py

第二步:创建 init.py

代码部分:
文件:数学工具包/init.py
数学工具包的初始化文件

版本信息
version = "1.0.0"
author = "Python学习者"

简化导入
from .基本运算 import *
from .几何计算 import *
from .统计分析 import *

print(f"数学工具包 {version} 已加载")

第三步:创建基本运算模块

代码部分:
文件:数学工具包/基本运算.py
基本数学运算

def 加法(a, b):
return a + b

def 减法(a, b):
return a - b

def 乘法(a, b):
return a * b

def 除法(a, b):
if b == 0:
return "错误:除数不能为零"
return a / b

def 阶乘(n):
if n == 0:
return 1
result = 1
for i in range(1, n + 1):
result *= i
return result

第四步:创建几何计算模块

代码部分:
文件:数学工具包/几何计算.py
几何计算

import math

def 圆面积(半径):
return math.pi * 半径 * 半径

def 圆周长(半径):
return 2 * math.pi * 半径

def 矩形面积(长, 宽):
return 长 * 宽

def 矩形周长(长, 宽):
return 2 * (长 + 宽)

def 三角形面积(底, 高):
return 0.5 * 底 * 高

def 球体积(半径):
return (4/3) * math.pi * (半径 ** 3)

第五步:创建统计分析模块

代码部分:
文件:数学工具包/统计分析.py
统计分析工具

def 平均值(数字列表):
if not 数字列表:
return 0
return sum(数字列表) / len(数字列表)

def 中位数(数字列表):
if not 数字列表:
return 0

text
复制
下载
排序列表 = sorted(数字列表)
n = len(排序列表)

if n % 2 == 1:  奇数个
    return 排序列表[n // 2]
else:  偶数个
    mid = n // 2
    return (排序列表[mid-1] + 排序列表[mid]) / 2

def 众数(数字列表):
if not 数字列表:
return None

text
复制
下载
频率 = {}
for 数字 in 数字列表:
    if 数字 in 频率:
        频率[数字] += 1
    else:
        频率[数字] = 1

最大频率 = max(频率.values())
众数列表 = [数字 for 数字, 频次 in 频率.items() if 频次 == 最大频率]

return 众数列表

def 标准差(数字列表):
if len(数字列表) < 2:
return 0

text
复制
下载
平均值 = sum(数字列表) / len(数字列表)
方差 = sum((x - 平均值) ** 2 for x in 数字列表) / (len(数字列表) - 1)
return 方差 ** 0.5

第六步:使用包

代码部分:
文件:使用数学工具包.py
使用我们自己创建的包

导入整个包
import 数学工具包

使用包中的功能
print("基本运算:")
print("5 + 3 =", 数学工具包.加法(5, 3))
print("5的阶乘 =", 数学工具包.阶乘(5))

print("\n几何计算:")
print("半径3的圆面积:", 数学工具包.圆面积(3))
print("长4宽3的矩形面积:", 数学工具包.矩形面积(4, 3))

print("\n统计分析:")
数据 = [1, 2, 2, 3, 4, 4, 4, 5]
print("数据:", 数据)
print("平均值:", 数学工具包.平均值(数据))
print("中位数:", 数学工具包.中位数(数据))
print("众数:", 数学工具包.众数(数据))
print("标准差:", 数学工具包.标准差(数据))

第七部分 安装第三方包

Python最强大的地方是有海量的第三方包。让我们学习如何安装和使用它们。

使用pip安装包

pip是Python的包管理工具,可以安装、升级、卸载包。

在命令行中运行:

text
复制
下载
pip install 包名

常用命令:

text
复制
下载
pip install requests  安装requests包
pip install numpy    安装numpy包
pip install pandas   安装pandas包
pip list            查看已安装的包
pip show 包名        查看包信息
pip uninstall 包名   卸载包

安装和使用requests包

代码部分:
安装requests包后使用
import requests

print("使用requests访问网页")

尝试访问一个网站
try:
响应 = requests.get("https://www.baidu.com")
print("状态码:", 响应.status_code)
print("编码:", 响应.encoding)
print("前100个字符:", 响应.text[:100])

text
复制
下载
if 响应.status_code == 200:
    print("访问成功!")
else:
    print("访问失败")
    

except Exception as e:
print("出错:", e)

第八部分 小项目 天气查询程序

让我们用第三方包做一个实用的天气查询程序。

第一步:安装必要的包
在命令行运行:pip install requests

第二步:创建天气查询程序

代码部分:
天气查询程序
import requests
import json

def 获取天气(城市):
获取城市天气信息

text
复制
下载
try:
    使用天气API
    这里使用一个免费的天气API
    API地址 = f"http://wthrcdn.etouch.cn/weather_mini?city={城市}"
    
    发送请求
    响应 = requests.get(API地址, timeout=5)
    
    检查响应
    if 响应.status_code == 200:
        解析JSON数据
        数据 = 响应.json()
        
        if 数据.get("status") == 1000:  请求成功
            return 解析天气数据(数据["data"])
        else:
            return "城市不存在或无法获取天气信息"
    else:
        return "网络请求失败,请检查网络连接"
        
except requests.exceptions.Timeout:
    return "请求超时,请稍后重试"
except requests.exceptions.ConnectionError:
    return "网络连接错误"
except Exception as e:
    return f"获取天气失败:{str(e)}"

def 解析天气数据(天气数据):
解析天气数据,返回格式化的字符串

text
复制
下载
基本信息
城市 = 天气数据.get("city", "未知城市")
当前温度 = 天气数据.get("wendu", "未知")

构建结果字符串
结果 = f"城市:{城市}\n"
结果 += f"当前温度:{当前温度}℃\n"

天气预报
预报列表 = 天气数据.get("forecast", [])

if 预报列表:
    结果 += "\n天气预报:\n"
    for 预报 in 预报列表[:3]:  只显示最近3天
        日期 = 预报.get("date", "未知日期")
        天气 = 预报.get("type", "未知天气")
        高温 = 预报.get("high", "未知").replace("高温 ", "")
        低温 = 预报.get("low", "未知").replace("低温 ", "")
        风向 = 预报.get("fengxiang", "未知风向")
        
        结果 += f"{日期}:{天气},{低温}~{高温},{风向}\n"

其他建议
建议 = 天气数据.get("ganmao", "")
if 建议:
    结果 += f"\n温馨提示:{建议}"

return 结果

def 主程序():
print("=" * 50)
print(" 天气查询程序")
print("=" * 50)
print("支持查询全国大部分城市天气")
print("输入'退出'结束程序")
print("=" * 50)

text
复制
下载
while True:
    城市 = input("\n请输入城市名称:").strip()
    
    if not 城市:
        print("请输入城市名称!")
        continue
        
    if 城市 == "退出":
        print("感谢使用天气查询程序,再见!")
        break
    
    print(f"\n正在查询 {城市} 的天气...")
    天气信息 = 获取天气(城市)
    
    print("\n" + "=" * 50)
    print(天气信息)
    print("=" * 50)

if name == "main":
try:
主程序()
except KeyboardInterrupt:
print("\n\n程序被中断,退出。")
except Exception as e:
print(f"程序出错:{e}")

第九部分 常用第三方包介绍

Python有很多强大的第三方包,这里介绍几个常用的:

  1. requests:网络请求,获取网页内容

  2. numpy:数值计算,处理数组和矩阵

  3. pandas:数据分析,处理表格数据

  4. matplotlib:数据可视化,绘制图表

  5. beautifulsoup4:网页解析,提取网页信息

  6. openpyxl:操作Excel文件

  7. pygame:游戏开发

  8. flask:Web开发框架

第十部分 今天学到了什么

今天的内容非常实用,我们学会了:

  1. 使用内置模块:math、random、datetime

  2. 导入模块的不同方式

  3. 创建自己的模块和包

  4. 理解 if name == "main" 的作用

  5. 安装和使用第三方包

  6. 实际应用:制作天气查询程序

第十一部分 练习任务

任务1:制作生日计算器
编写一个程序,计算:

  • 距离下一个生日还有多少天

  • 出生到现在已经多少天

  • 下一个生日是星期几

任务2:随机密码生成器
编写一个密码生成器:

  • 可以指定密码长度

  • 可以选择包含数字、字母、特殊符号

  • 生成多个密码供选择

任务3:简易计算器包
创建一个计算器包,包含:

  • 基本运算模块(加减乘除)

  • 科学计算模块(三角函数、对数等)

  • 单位换算模块(长度、重量、温度等)

任务4:网页内容抓取器
使用requests和beautifulsoup4:

  • 抓取网页标题

  • 提取所有链接

  • 提取特定内容(如新闻标题)

第十二部分 下节课预告

下节课是我们的最后一课,我们将做一个综合项目:智能聊天机器人。这个项目会用到我们学过的所有知识:

  • 变量和数据类型

  • 条件判断和循环

  • 函数和模块

  • 文件操作

  • 错误处理

通过这个项目,你会看到如何把学过的知识组合起来,做出一个真正有用的程序。

学习建议

模块和包是Python编程的重要组成部分,建议你:

  1. 多练习使用内置模块

  2. 尝试将你的代码组织成模块

  3. 学会查找和使用第三方包

  4. 阅读优秀开源项目的代码

  5. 了解虚拟环境的使用(后续学习)

记住,编程不是从零开始造轮子,而是站在巨人的肩膀上。学会使用现有的模块和包,能大大提高你的编程效率。

你已经学会了如何使用Python的强大生态系统,这是成为专业程序员的重要一步。继续加油,我们下节课再见!


明扬工控商城

推荐阅读:

Python零基础教程第十一课 综合项目 智能聊天机器人

Python零基础教程第十课 认识新朋友 模块和包

Python零基础教程第九课:犯错了怎么办?——错误处理

Python零基础教程第八课:与文件对话

Python零基础教程第五课:重复的魔法——循环

Python零基础教程第七课:我的第一个工具箱——函数

Python零基础教程第十课 认识新朋友 模块和包.docx

将本文的Word文档下载到电脑

推荐度:

下载

全部评论

请登录
产业新闻-明扬资讯网
科技资讯-明扬资讯网