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的理解和应用能力得到了进一步提升,为后续更深入的学习和实际项目开发奠定了坚实的基础。

相关推荐
bug404_6 分钟前
使用pytorch从头实现一个vit
人工智能·pytorch·python
日拱一卒无有尽, 功不唐捐终入海8 分钟前
Mybatis乐观锁使用
java·开发语言·jvm·mybatis
深图智能31 分钟前
Pytorch使用教程(12)-如何进行并行训练?
人工智能·pytorch·python·深度学习
游客52032 分钟前
图像处理|顶帽操作
图像处理·人工智能·python·opencv
eyuhaobanga38 分钟前
高质量编程 & 性能优化学习笔记
笔记·学习·性能优化
聚集的流星38 分钟前
初识go语言之指针用法
开发语言·后端·golang
7yewh1 小时前
嵌入式知识点总结 C/C++ 专题提升(一)-关键字
c语言·开发语言·c++·嵌入式硬件·物联网·算法
恩泽君1 小时前
Matlab总提示内存不够用,明明小于电脑内存
开发语言·matlab
longze_72 小时前
计算机基础问答-面试总结
java·python·计算机网络·spring·面试·c#
boligongzhu2 小时前
C#程序关闭时保证所有线程结束的方法
开发语言·c#