接着上篇继续学习,本篇文章让我们一起学习切片、元组、设置代码格式。
切片
什么是切片
要创建切片,可指定要使用的第一个元素的索引和最后一个元素的索引加1。与函数range() 一样,Python 在到达你指定的第二个索引前面的元素后停止。要输出列表中的前三个元素,需要指定索引0~3,输出0、1和2的元素。
切片基础 — [起点:终点]
记住铁律:终点那个下标不取(和 range 一样"差一位")。
players = ["甲","乙","丙","丁","戊"]
下标: 0 1 2 3 4
players[0:3] → 下标0,1,2 → ['甲','乙','丙'] # 终点3不取!
players[1:4] → 下标1,2,3 → ['乙','丙','丁']
players[:3] → 起点省=从头 → ['甲','乙','丙']
players[2:] → 终点省=到尾 → ['丙','丁','戊']
players[-3:] → 负数从末尾数 → 最后三个 ['丙','丁','戊']

遍历切片
其实就是把"切片"放进 for 里——只循环列表的一部分,而不是全部。因为切片本身是个新列表,for 就只遍历这个新列表里的元素。
for 变量 in 列表[起点:终点]: # 循环体只对切片那段执行

复制列表
✅ 真复制(推荐用 [:])
food_a = ["火锅", "烧烤"]
food_b = food_a[:] # 独立副本
food_a.append("串串")
food_b.append("奶茶")
# food_a = ['火锅','烧烤','串串']
# food_b = ['火锅','烧烤','奶茶'] 互不影响
❌ 假复制(直接 =)
num_a = ["1", "2"]
num_b = num_a # 只是给同一个列表起了第二个名字
num_a.append("3")
# num_b 也变成 ['1','2','3'] ← 跟着变了!
那么,我们怎么一眼看出是不是同一个列表?看 id()
x = [1, 2, 3]
y = x[:] # 真复制 → id 和 x 不同
z = x # 假复制 → id 和 x 相同
输出里 y 的 id 和 x 不一样(真复制),z 的 id 跟 x 一模一样(同一个列表)。id 相同 = 同一份数据。
还有 copy() 也能真复制:
n = m.copy() # 和 m[:] 效果完全一样,都是独立副本
新 = 旧[:] 或 新 = 旧.copy();千万别写 新 = 旧,那样俩变量共用一份,改一个另一个也变。
元组
什么是元组
定义 - 圆括号()
dimensions = (200, 50) # 注意是 () 不是 []
print(dimensions[0]) # 取元素还是用 [],和列表一样
取元素、遍历都跟列表一模一样,区别只在"能不能改"。
遍历元组中的所有值
和列表一样用 for
for d in dimensions:
print(d)
不能改单个值
dimensions[0] = 250 # 报错:'tuple' object does not support item assignment
列表 lst[0] = 250 没问题,但元组这样写就报错——这是它和列表最本质的区别。
但能"整个重新赋值"
dimensions = (400, 100) # 允许,整组换掉
不是改里面的某个数,而是把整个变量指向一个全新的元组。
(),取值/遍历跟列表一样,但不能改单个元素;想换就整组重新赋值。它的价值是"防手滑改掉不该改的数据"。
设置代码格式
"代码写成什么样才规范好读",不跑逻辑、跑的是规范。
格式为什么重要
代码是被阅读的次数,远多于被编写的次数。你写给人看、也写给未来的自己看,格式乱了以后自己都看不懂。
缩进 — 每级 4 个空格
- 用 4 个空格,别用 Tab 键,更别 Tab 和空格混用(前面 4.1.4 讲过,混用会报缩进错)。
- 你用 VS Code /PyCharm等敲代码,默认敲 Tab 会被自动转成 4 个空格,放心用。
行长 — 每行不超过 79 字符
- 一行太长(比如一行 200 字)要横着拖滚动条,很难受。
- 太长就用括号换行,续行要缩进对齐,像文件里
average_temp = (...)那样。 - 注释也别写太长,该换行就换行。
空行 — 像文章分段一样
- 函数之间空两行(文件里
greet_user和describe_operation之间)。 - 函数内部的逻辑块之间空一行,让结构清楚。
其他常用规范
- 运算符两侧各留一个空格:
total = sum(numbers)(别写total=sum(numbers)) - 逗号后面留空格:
[1, 2, 3](别写[1,2,3])
好格式 vs 坏格式 对比
# 坏格式:无空行、没空格、一行超长、Tab空格混用
def f(x):return x*2
magicians=["甲","乙","丙"]
for m in magicians:print(m)
# 好格式:缩进4空格、运算符留空、函数间空行、行长适中
def double(x):
return x * 2
magicians = ["甲", "乙", "丙"]
for m in magicians:
print(m)
根据《Python编程从入门到实践》这本书的第四章,也就是这两篇文章就学习完了。我们一起学习了如何高效处理列表中的元素;如何使用for循环遍历列表;如何根据缩进来确定程序的结构和如何避免错误出现;如何创建简单的数字列表以及对数字列表执行的一些操作;如何切片等等内容。看着很多,听着很累。但是在往后学学,这些内容就很好理解了,加油吧!