No. 34 笔记 | Python知识架构与数据类型相关内容 | 实操

在今天的Python学习中,我对Python的知识架构有了更深入的理解,同时也对Python的数据类型及其操作有了全面的认识和实践。

一、Python知识架构理解

Python是一门功能强大且应用广泛的编程语言,其知识架构可以从多个层面来理解。

从整体结构上看,Python程序由模块组成,模块是组织代码的基本单位,它将相关的功能和代码封装在一起,便于管理和复用。模块中包含语句,语句是执行具体操作的指令,比如变量赋值、函数调用等。而语句又由表达式构成,表达式是产生值或结果的代码片段,例如数值运算、逻辑判断等。

从语言特性方面来说,Python具有简洁清晰的语法,使得代码易于编写和阅读。它支持多种编程范式,包括面向过程、面向对象和函数式编程,这使得开发者可以根据不同的需求和场景选择合适的编程方式。Python还拥有丰富的标准库和第三方库,涵盖了从文件操作、网络通信到数据分析、机器学习等众多领域,极大地提高了开发效率,降低了开发难度。

此外,Python的解释型特性使得代码可以在不同的平台上快速运行和调试,无需进行复杂的编译过程。其动态类型系统允许变量在运行时根据赋值的对象自动确定类型,这在一定程度上增加了代码的灵活性,但也需要开发者在编写代码时更加注意类型相关的问题,以避免潜在的错误。

二、Python的数据类型及操作

Python的数据类型丰富多样,每种类型都有其独特的特点和用途,以下是详细介绍及相关操作:

(一)数值类型

Python的数值类型主要包括整数(int)和浮点数(float)。

  • 四则运算
    • 加法:例如3 + 5,结果为8
    • 减法:7 - 2,结果是5
    • 乘法:4 * 6,得到24
    • 除法:9 / 3,结果为3.0(在Python 3中,整数除法默认返回浮点数)。
    • 取整除法:9 // 3,结果为3,只取商的整数部分。
    • 取余运算:10 % 3,结果是1,即10除以3的余数。
    • 幂运算:2 ** 3,表示2的3次方,结果为8
(二)列表(List)

列表是Python中常用的有序集合,可以包含不同类型的元素,并且元素可以修改。

  • 索引访问
    • 正向索引:从0开始,例如my_list = [10, 20, 30, 40]my_list[0]获取到第一个元素10my_list[2]获取到第三个元素30

    • 反向索引:从-1开始,my_list[-1]获取到最后一个元素40my_list[-2]获取到倒数第二个元素30

  • 高级语法操作
    • 切片:my_list[1:3]获取从索引1(包含)到索引3(不包含)的子列表,即[20, 30]my_list[:3]表示从开头到索引3(不包含),结果为[10, 20, 30]my_list[2:]表示从索引2(包含)到末尾,结果是[30, 40]

    • 列表推导式:例如[i ** 2 for i in range(5)],会生成一个包含0到4的平方数的列表[0, 1, 4, 9, 16]

复制代码
- 添加元素:`my_list.append(50)`,在列表末尾添加元素`50`。`my_list.insert(2, 25)`,在索引2的位置插入元素`25`。
复制代码
- 删除元素:`my_list.remove(30)`,删除列表中第一个值为`30`的元素。`del my_list[1]`,删除索引为1的元素。
(三)元组(Tuple)

元组与列表类似,但元素不可修改,一旦创建,其内容就不能改变。

  • 索引访问

    • 同样支持正向和反向索引,例如my_tuple = (100, 200, 300)my_tuple[0]获取到100my_tuple[-1]获取到300
  • 高级语法操作

    • 虽然元组本身不可变,但如果元组中的元素是可变类型(如列表),则可以修改该可变元素。例如my_tuple = (100, [200, 300], 400),可以通过my_tuple[1].append(500)来修改元组中列表元素的值,此时元组变为(100, [200, 300, 500], 400),但元组的结构(元素个数和位置)并未改变。

    • 元组也支持切片操作,用法与列表相同,如my_tuple[1:3]

(四)字典(Dictionary)

字典是一种无序的键值对集合,通过键(key)来访问值(value),键必须是唯一的,而值可以重复。

python 复制代码
# 字典的创建和键访问
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}
print(my_dict['name'])  
print(my_dict['age'])  

# 添加键值对
my_dict['gender'] = 'female'
print(my_dict)  

# 修改值
my_dict['age'] = 26
print(my_dict)  

# 删除键值对
del my_dict['city']
print(my_dict)  

# 遍历字典的键
for key in my_dict.keys():
    print(key)

# 遍历字典的值
for value in my_dict.values():
    print(value)

# 遍历字典的键值对
for key, value in my_dict.items():
    print(key, value)
  • key访问

    • 例如my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'},通过my_dict['name']可以获取到值'Alice'my_dict['age']获取到25
  • 高级语法操作

    • 添加键值对:my_dict['gender'] = 'female',向字典中添加一个新的键值对。
    • 修改值:my_dict['age'] = 26,将age对应的值修改为26
    • 删除键值对:del my_dict['city'],删除指定键的键值对。
    • 遍历字典:
      • 遍历键:for key in my_dict.keys(): print(key),会依次输出字典的所有键。
      • 遍历值:for value in my_dict.values(): print(value),会依次输出字典的所有值。
      • 遍历键值对:for key, value in my_dict.items(): print(key, value),会依次输出字典的每个键值对。
三、列表、元组、字典的区分

列表、元组和字典虽然都用于存储数据,但它们在以下几个方面存在明显区别:

  • 可变性

    • 列表是可变的,这意味着可以在列表创建后添加、删除或修改元素。
    • 元组是不可变的,一旦创建,其元素就不能被修改(除非元素本身是可变类型,如列表,但这种修改不改变元组的结构)。
    • 字典的键是不可变的,但值是可变的,可以添加、删除或修改键值对。
  • 数据结构

    • 列表和元组是有序的序列,元素按照插入的顺序排列,并且可以通过索引访问。
    • 字典是无序的键值对集合,通过键来快速查找对应的值,而不是通过索引。
  • 使用场景

    • 当需要存储一组有序且可能会经常变动的数据时,列表是一个很好的选择,例如存储学生的成绩列表,可能会随时添加或修改成绩。

    • 元组适用于存储一些不希望被修改的数据,例如表示一个点的坐标(x, y),或者函数返回多个固定值时,使用元组可以保证数据的完整性和不可变性。

    • 字典常用于存储具有映射关系的数据,例如学生的姓名和成绩的对应关系,通过姓名(键)可以快速找到对应的成绩(值),方便数据的查找和管理。

通过对Python知识架构的梳理以及对数据类型的深入学习和操作,我对Python的理解和应用能力得到了进一步提升,为后续更深入的学习和实际项目开发奠定了坚实的基础。

相关推荐
hui函数2 小时前
Flask电影投票系统全解析
后端·python·flask
好学且牛逼的马3 小时前
GOLANG 接口
开发语言·golang
ahauedu3 小时前
AI资深 Java 研发专家系统解析Java 中常见的 Queue实现类
java·开发语言·中间件
韭菜钟3 小时前
在Qt中用cmake实现类似pri文件的功能
开发语言·qt·系统架构
暗流者3 小时前
AAA 服务器与 RADIUS 协议笔记
运维·服务器·笔记
闲人编程3 小时前
Python第三方库IPFS-API使用详解:构建去中心化应用的完整指南
开发语言·python·去中心化·内存·寻址·存储·ipfs
计算机编程小咖4 小时前
《基于大数据的农产品交易数据分析与可视化系统》选题不当,毕业答辩可能直接挂科
java·大数据·hadoop·python·数据挖掘·数据分析·spark
Ro Jace4 小时前
科研笔记:博士生手册
笔记
CTRA王大大4 小时前
【golang】制作linux环境+golang的Dockerfile | 如何下载golang镜像源
linux·开发语言·docker·golang
#include>4 小时前
【Golang】有关垃圾收集器的笔记
笔记·golang