进阶语法-数据容器与文件

1.数据类型

image-20260427180752447

a = 10     # 数值(整数)类型
print(a,type(a))
b = 9.88    # 数值(浮点)类型
print(b,type(b))
c = True    # 布尔类型(True/False)
print(c,type(c))
d = 'hello' # 字符串(容器)类型
print(d,type(d))
e = ['apple', 'banana', 'cherry']   # 列表(容器)类型
print(e,type(e))
f = (10,20,30)      # 元组(容器)类型
print(f,type(f))
g = {'name':'kaser','age':'21',"addresses":"Shannxi Xian"}   # 字典(容器)类型
print(g,type(g))
h = {10,20,20,30,30,30}     # 集合(容器)类型
print(h,type(h))

image-20260427180804290

📝 代码总结

  • 核心知识点:Python 内置基础数据类型与容器类型
  • 实现逻辑:通过不同字面量语法创建变量,使用 type() 动态检测其数据类型,集合自动过滤重复值
  • 关键语法type()int/float/bool/str/list/tuple/dict/set 字面量定义
  • 功能作用:全面展示 Python 动态类型系统,帮助区分标量类型与容器类型,理解各类型的基础特征(如元组不可变、集合去重)

2.列表的定义与使用

image-20260427183302507

# 1. 通过一对方括号来实现列表定义
fruit = ['apple', 'banana', 'orange']
# 2. 列表可以直接打印
print(fruit)
# 3. 判断fruit对应的数据类型
print(type(fruit))

image-20260427183310751

📝 代码总结

  • 核心知识点:列表(List)的基础定义与类型验证
  • 实现逻辑:使用方括号包裹逗号分隔的元素创建列表,直接输出并检测类型
  • 关键语法[元素1, 元素2]print()type()
  • 功能作用:演示列表的最简创建方式,验证其作为有序可变容器的数据类型

3.列表对应的索引下标

image-20260427183656043

# 字符串,列表,元组都有索引下标,默认从 0 开始,依次递增。
names = ['哈兰德','德布劳内','鲁本迪亚斯']
print(names,type(names))
print(names[0],type(names[0]))
print(names[1],type(names[1]))
print(names[2],type(names[2]))  # 在一个列表中,index_max = len(list) - 1

image-20260427183707747

📝 代码总结

  • 核心知识点:序列类型的零基索引机制
  • 实现逻辑:通过整数下标直接定位并访问容器中对应位置的元素
  • 关键语法容器名[索引]
  • 功能作用:展示有序容器的随机访问能力,明确索引边界规则(最大索引 = 长度-1)

4.列表查询操作

image-20260427184856797

names = ['Gemini','ChatGPT','DeepSeek']
print(names,type(names))
print(len(names))   # 获取列表中元素个数(长度)
print(names[0],names[1],names[2])

ip = '172.16.31.10'
black_ips = ['10.1.1.10','172.25.254.10','192.168.0.10']
if ip in black_ips:     # in 关键词,判断指定元素是否出现在列表中。
    print('访问失败,您的IP地址在我们黑名单中!')
else:
    print('访问成功,IP地址不在黑名单中')

image-20260427184907886

📝 代码总结

  • 核心知识点:列表长度获取与成员资格测试
  • 实现逻辑:使用 len() 统计元素数量,使用 in 关键字结合条件语句判断元素是否存在
  • 关键语法len(列表)元素 in 列表if/else
  • 功能作用:提供列表基础查询能力,演示基于白名单/黑名单的访问控制逻辑实现

5.列表的增删改操作

image-20260427185732950

"""
增加 => 列表.append(新元素):在列表的尾部追加新元素
删除 => del 列表[索引] 或 列表.remove(元素值)
修改 => 列表[索引] =新修改后的值
"""
# 1. 定义一个空列表(可打印)
list1 = []
print(list1,type(list1))
# 2. 新增元素
list1.append('x')
list1.append('y')
list1.append('z')
print(list1)

# 3. 删除操作
# 根据索引下标删除元素
del list1[1]
print(list1)

# 根据元素值移除元素
list1.remove('z')
print(list1)

# 4. 替换操作
list1[0] = 'n'
print(list1)

image-20260427185743300

📝 代码总结

  • 核心知识点:列表的动态增删改操作
  • 实现逻辑:从空列表开始,尾部追加元素;按索引或值删除;按索引重新赋值修改
  • 关键语法.append()del list[idx].remove(val)list[idx] = new_val
  • 功能作用:完整演示列表作为可变序列的 CRUD 操作,区分按位置删除与按值删除的适用场景

6.列表的翻转与排序操作

image-20260427190604647

"""
翻转:reverse()就相当于把列表进行倒序排列
排序:sort()默认从小到大,添加一个reverse参数,可以实现从大到小
"""
list1 = ['apple', 'banana', 'cherry']
list1.reverse()     # 等价于 list1 = list1[::1]
print(list1)

list2 = [30, 25, 35, 20, 10]
list2.sort()
print(list2)   # 排序-从小到大
list2.sort(reverse=True)
print(list2)

image-20260427190615794

📝 代码总结

  • 核心知识点:列表原地翻转与排序
  • 实现逻辑:调用内置方法直接修改原列表顺序;支持升序/降序切换;注释补充切片逆向替代方案
  • 关键语法.reverse().sort(reverse=True)[::-1](注释)
  • 功能作用:提供数据重排能力,演示原地修改(In-place)特性与参数控制排序方向的方法

7.列表的遍历操作

image-20260427190945856

"""
基本语法:
    for 临时变量 in 数据容器:
        数据容器的元素个数决定:有多少个元素,则循环机会循环多少次
        每次循环时系统会自动将容器中的元素放入临时变量中
"""
list1 = ['x', 'y', 'z']
for i in list1:
    print(i,type(i))
print(list1,type(list1))

image-20260427191101315

📝 代码总结

  • 核心知识点:基于 for 循环的容器遍历
  • 实现逻辑:迭代器自动按顺序提取容器元素赋值给临时变量,循环次数等于元素个数
  • 关键语法for var in iterable:
  • 功能作用:展示 Python 最基础的顺序遍历模式,适用于所有可迭代对象

8.列表实现随机点名程序

image-20260427192317463

"""
点名程序
1. 定义一组数据(所有点名人员名单)
2. 引入random模块,用于生成随机数 => 相当于列表的索引下标
3. 根据索引下标抽取用户信息
"""
import random
student_list = ['杜皓杰','姜昆沅','鄢语晨','方艺凝','雒煊','高菘菘']
print(student_list)
# 分析: Max = len(student_list) - 1, Min = 0
# index 范围 [0,len(student_list) - 1]
for i in range(1,11):
    index = random.randint(0, len(student_list) - 1)
    print(f"你是第{i}位幸运儿:",student_list[index])

image-20260427192331806

📝 代码总结

  • 核心知识点:随机数生成与列表索引结合应用
  • 实现逻辑:生成合法范围内的随机整数作为索引,通过索引访问列表元素
  • 关键语法import randomrandom.randint(a, b)len(),列表索引访问
  • 功能作用:将基础语法融会贯通,实现动态随机抽取功能,演示索引边界的安全控制

9.元组的定义与使用

image-20260427194251822

"""
定义 tuple 元组,需要使用 ()
    单元素元组 (xxx,)
    多元素元组 (xxx,aaa,bbb)
元组,只要被定义,元组内的数据不会被修改;
有些数据结构,必须使用元组进行数据传输,如函数类型,传参时,可以使用元组来接收所有的参数
"""
# 定义 单元/多元 tuple 元组
tuple1 = (10,)
print(tuple1,type(tuple1))
tuple2 = (10,20,30)
print(tuple2,type(tuple2))
# 被定义之后,数据不会被修改 --> 保护数据
# del tuple1
# print(tuple1)

image-20260427194304297

📝 代码总结

  • 核心知识点:元组(Tuple)定义、单元素语法与不可变性
  • 实现逻辑:使用圆括号创建;单元素必须加逗号;注释演示修改/删除会报错;支持索引与遍历读取
  • 关键语法(val,)(v1, v2),索引访问,for 遍历
  • 功能作用:展示只读数据容器的创建与访问方式,强调其在数据保护与函数传参中的特殊用途

10.字典的定义与使用

image-20260427194832970

"""
列表:适合大批量数据的存储
字典:适合某一事物的存储,如一个人、一本书、一个商品、一台主机
"""
# 空字典(内部没有键值对)
dict1 = {}
print(dict1,type(dict1))
# 数据字典
dict2 = {'name':'Kaser','age':'21','address':'Shannxi xian'}
print(dict2,type(dict2))

image-20260427194843097

📝 代码总结

  • 核心知识点:字典(Dict)的基础定义与适用场景
  • 实现逻辑:使用花括号创建空字典或键值对集合,打印结构与类型
  • 关键语法{}{key: value}
  • 功能作用:引入映射型数据结构,对比列表说明字典更适合描述实体属性(Key-Value 模型)

11.字典的增删改操作

image-20260427200333220

"""
字典和列表一样比较灵活,支持增删改操作
增加与修改操作,基本语法
    字典名称[key] = value值
    如果字典中没有这个key,则以上就相当于增加操作!
    如果字典中存在这个key,则以上就相当于修改操作
字典删除操作,基本语法
    del 字典名称[key],根据这个key,删除指定的key:value键值对
"""
dict1 = {}
dict1['name'] = 'Kaser'
dict1['age'] = 21
print(dict1,type(dict1))
print('-' * 20 )
dict1['name'] = 'Saker'
dict1['age'] = 33
print(dict1,type(dict1))
print('-' * 20 )
del dict1['age']
print(dict1,type(dict1))
del dict1['name']
print(dict1,type(dict1))

image-20260427200809569

📝 代码总结

  • 核心知识点:字典的动态增删改机制
  • 实现逻辑:通过键赋值实现“无则增、有则改”;使用 del 按键删除键值对
  • 关键语法dict[key] = valdel dict[key]
  • 功能作用:演示字典基于哈希键的高效数据维护方式,统一增改语法简化代码逻辑

12.字典的查询方法

image-20260427201437944

dict1 = {'name':'Kaser','age':21}
print(dict1,type(dict1))
print(dict1['name'])
print(dict1['age'])
print('@' * 20 )
# 查看字典中的 key
for i in dict1.keys():
    print(i)
print('@' * 20)
# 查看字典中的 value
for j in dict1.values():
    print(i)
print('@' * 20)
for i,j in dict1.items():
    print(i,j)

image-20260427201451210

📝 代码总结

  • 核心知识点:字典的键值查询与视图迭代
  • 实现逻辑:直接按键取值;调用 .keys()/.values()/.items() 获取视图对象并配合 for 遍历
  • 关键语法dict[key].keys().values().items(),多变量解包 for k, v in ...
  • 功能作用:提供多维度字典数据提取方式,满足仅遍历键、仅遍历值或同时处理键值对的不同业务需求
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐