首页 > Python资料 博客日记
[Python] 模块导入与字典 : 从入门到进阶
2024-10-22 03:00:11Python资料围观37次
文章目录
收录专栏:[Python]
Python 是一门功能强大且易于学习的编程语言。在 Python 中,模块和字典是两个极其重要的概念。模块用于组织代码并复用现有代码,而字典则是处理键值对映射的重要数据结构。本文将带你从零开始学习 Python 中的模块导入和字典,帮助你更好地掌握这两个概念。适合刚学习 Python 的读者,同时我们会通过经典示例和测试题目帮助你巩固所学内容。
模块导入详解
什么是模块?
在 Python 中,模块相当于一个独立的 .py
文件,里面可以包含函数、类和变量。通过模块,我们可以组织和复用代码,不需要每次都从头开始写代码。
为什么要导入模块?
模块的主要目的是代码复用。例如,Python 内置了许多功能模块(如 datetime
、math
等),我们只需要导入模块并调用其功能,不用自己重新实现。
如何导入模块?
1. 直接导入整个模块
最常见的导入方式是直接导入整个模块。在这种方式下,调用模块内的函数或类型时,必须使用 模块名.函数名
的格式。
import datetime
# 创建两个日期
date1 = datetime.datetime(year=2020, month=5, day=17)
date2 = datetime.datetime(year=2023, month=10, day=5)
# 计算两个日期的差值
print(date2 - date1) # 输出:874 days, 0:00:00
2. 导入模块并重命名
有时模块名比较长,我们可以在导入时给模块起一个别名,这样调用时代码更加简洁。
import datetime as dt
# 创建两个日期
date1 = dt.datetime(year=2020, month=5, day=17)
date2 = dt.datetime(year=2023, month=10, day=5)
# 计算两个日期的差值
print(date2 - date1) # 输出:874 days, 0:00:00
通过 as
关键字,我们将 datetime
模块重命名为 dt
,之后调用时只需使用 dt
代替 datetime
。
3. 直接导入模块中的某个类型或函数
如果我们只需要模块中的某个函数或类型,可以使用 from ... import ...
语法,这样导入后可以直接使用该函数或类型。
from datetime import datetime
# 创建两个日期
date1 = datetime(year=2020, month=5, day=17)
date2 = datetime(year=2023, month=10, day=5)
# 计算两个日期的差值
print(date2 - date1) # 输出:874 days, 0:00:00
这样,我们只导入了 datetime
模块中的 datetime
类型,调用时直接使用类型名即可,不需要加模块名前缀。
4. 导入模块中的所有内容
使用 from ... import *
可以将模块中的所有内容导入。这种方式不推荐使用,因为它会使代码的可读性变差,容易造成命名冲突。
from datetime import *
# 直接使用 datetime 类型
date1 = datetime(year=2020, month=5, day=17)
date2 = datetime(year=2023, month=10, day=5)
print(date2 - date1) # 输出:874 days, 0:00:00
虽然这种方式让调用更加简单,但由于导入了模块的所有内容,可能会覆盖或与现有的函数或变量重名,造成冲突。
Python 字典详解
在 Python 中,字典(dictionary)是一种非常强大且常用的数据结构,它提供了键值对之间的映射关系,能够高效地存储和查找数据。字典的每个元素由键和值组成,键是唯一的,而值可以是任意类型的数据。
创建字典
我们可以通过两种方式来创建字典:
# 方法一:使用 { } 创建字典
student = {}
# 方法二:使用 dict() 创建字典
student = dict()
你也可以在初始化时直接添加键值对:
student = {
'id': 1,
'name': 'Alice',
'age': 20
}
字典的特性
- 键的唯一性:字典中的键必须是唯一的。如果有重复的键,后面的键值对会覆盖前面的。
- 可变性:字典是可变的,可以动态地添加、删除或修改键值对。
- 无序性:字典中的键值对是无序的,也就是说,字典并不会按照插入顺序存储数据。
访问字典元素
我们可以通过键来访问字典中的值。访问方法有两种:
1. 通过 []
访问键值
student = {
'id': 1,
'name': 'Alice'
}
print(student['name']) # 输出:Alice
2. 使用 get()
方法
使用 get()
方法时,如果键不存在,可以返回一个默认值,避免抛出异常。
student = {
'id': 1,
'name': 'Alice'
}
print(student.get('name', 'Unknown')) # 输出:Alice
print(student.get('score', 'Unknown')) # 输出:Unknown
修改和新增元素
字典是可变的,可以随时修改或添加元素。
1. 新增键值对
student = {
'id': 1,
'name': 'Alice'
}
student['score'] = 90
print(student) # 输出:{'id': 1, 'name': 'Alice', 'score': 90}
2. 修改已有的键值对
student['score'] = 95
print(student) # 输出:{'id': 1, 'name': 'Alice', 'score': 95}
删除元素
我们可以使用 pop()
方法根据键删除字典中的键值对。
student = {
'id': 1,
'name': 'Alice',
'score': 90
}
student.pop('score')
print(student) # 输出:{'id': 1, 'name': 'Alice'}
遍历字典
字典支持多种遍历方式。
1. 遍历键
student = {
'id': 1,
'name': 'Alice',
'score': 90
}
for key in student:
print(key)
2. 遍历值
for value in student.values():
print(value)
3. 遍历键值对
for key, value in student.items():
print(f"{key}: {value}")
获取字典中的所有键和值
我们可以使用 keys()
和 values()
方法分别获取字典中的所有键和值。
student = {
'id': 1,
'name': 'Alice',
'score': 90
}
# 获取所有键
print(student.keys()) # 输出:dict_keys(['id', 'name', 'score'])
# 获取所有值
print(student.values()) # 输出:dict_values([1, 'Alice', 90])
# 获取所有键值对
print(student.items()) # 输出:dict_items([('id', 1), ('name', 'Alice'), ('score', 90)])
字典合法的键类型
字典的键必须是可哈希的,即不能是可变类型,例如列表和字典本身不能作为键使用。
以下是一些可用作键的类型:
print(hash(1)) # 整数可作为键
print(hash(3.14)) # 浮点数可作为键
print(hash('hello')) # 字符串可作为键
print(hash(())) # 元组可作为键
但是,像列表和字典这样可变的数据类型不能作为字典的键:
# 列表不能作为键
# my_dict = {[1, 2]: 'value'} # 会抛出 TypeError: unhashable type: 'list'
# 字典不能作为键
# my_dict = {{'a': 1}: 'value'} # 会抛出 TypeError: unhashable type: 'dict'
阅读后的经典测试题
通过以下测试题,你可以更好地巩固模块导入和字典的知识。
题目 1:导入 math
模块并计算平方根
导入 Python 的 math
模块,使用该模块的 sqrt()
函数计算数字 16 的平方根。
# 请写出你的代码:
import math
# 使用 sqrt 计算平方根
result = math.sqrt(16)
print(result) # 输出:4.0
题目 2:创建一个字典并访问其中的值
创建一个包含 id
、name
和 score
的学生字典,并分别访问和输出这些键对应的值。
# 请写出你的代码:
student = {
'id': 101,
'name': 'Alice',
'score': 95
}
print(student['id']) # 输出:101
print(student['name']) # 输出:Alice
print(student['score']) # 输出:95
题目 3:使用 get()
方法访问字典中的值
使用 get()
方法查找字典中 score
键对应的值。如果不存在,返回默认值 "N/A"
。
# 请写出你的代码:
student = {
'id': 101,
'name': 'Alice'
}
score = student.get('score', 'N/A')
print(score) # 输出:N/A
题目 4:添加和修改字典中的键值对
创建一个字典,并在其中添加一个新的键值对 age: 20
。然后修改 name
的值为 "Bob"
。
# 请写出你的代码:
student = {
'id': 101,
'name': 'Alice',
'score': 95
}
# 新增一个键值对
student['age'] = 20
# 修改已有的键值对
student['name'] = 'Bob'
print(student)
# 输出:{'id': 101, 'name': 'Bob', 'score': 95, 'age': 20}
题目 5:遍历字典的键和值
使用 for
循环遍历字典的键和值,并按格式 "键: 值"
输出。
# 请写出你的代码:
student = {
'id': 101,
'name': 'Alice',
'score': 95
}
for key, value in student.items():
print(f"{key}: {value}")
# 输出:
# id: 101
# name: Alice
# score: 95
结语
通过这篇博客,我们深入学习了 Python 模块的导入 方式以及 字典 的创建、操作和应用。模块是 Python 的重要组成部分,能够帮助我们组织和复用代码;字典作为键值对的数据结构,具有高效的查找和存储功能,适合用于各种场景。
模块导入的不同方式适应不同的场景,可以通过直接导入模块、导入模块中的部分类型或函数来简化代码。字典则支持动态添加、修改、删除键值对,同时提供了丰富的操作方法如 get()
、pop()
、keys()
、values()
等。
在学习过程中,确保多动手实践,理解每个示例代码中的操作原理。通过练习这些经典的题目,你将更加熟练地掌握 Python 中模块导入和字典的知识。
标签:
相关文章
最新发布
- 【Python】selenium安装+Microsoft Edge驱动器下载配置流程
- Python 中自动打开网页并点击[自动化脚本],Selenium
- Anaconda基础使用
- 【Python】成功解决 TypeError: ‘<‘ not supported between instances of ‘str’ and ‘int’
- manim边学边做--三维的点和线
- CPython是最常用的Python解释器之一,也是Python官方实现。它是用C语言编写的,旨在提供一个高效且易于使用的Python解释器。
- Anaconda安装配置Jupyter(2024最新版)
- Python中读取Excel最快的几种方法!
- Python某城市美食商家爬虫数据可视化分析和推荐查询系统毕业设计论文开题报告
- 如何使用 Python 批量检测和转换 JSONL 文件编码为 UTF-8
点击排行
- 版本匹配指南:Numpy版本和Python版本的对应关系
- 版本匹配指南:PyTorch版本、torchvision 版本和Python版本的对应关系
- Python 可视化 web 神器:streamlit、Gradio、dash、nicegui;低代码 Python Web 框架:PyWebIO
- 相关性分析——Pearson相关系数+热力图(附data和Python完整代码)
- Python与PyTorch的版本对应
- Anaconda版本和Python版本对应关系(持续更新...)
- Python pyinstaller打包exe最完整教程
- Could not build wheels for llama-cpp-python, which is required to install pyproject.toml-based proj