告别一次性动作:我在 Python 的循环里,看见时间开始累积
前面几篇写下来,我对 Python 的感觉一直在变。
最开始它只是让我把话说清楚。
后来它开始会变化,会判断,会分路。
而学到这里,我第一次明显感觉到,代码不再只是在做一次动作了。
它开始重复。
而且不是那种空转的重复。
它会一遍一遍往前走,一边走,一边累积结果。
也就是从循环开始,我第一次在 Python 里看见了“时间感”。
原来程序不只是处理一个瞬间,它也能处理一个过程。
1. while 最先让我意识到,代码原来可以一直往下走
我最早接触到循环时,直觉上会觉得它只是“重复执行”。
可真正写出来以后,我才慢慢意识到,循环和前面的代码不太一样。
前面的代码更像是:写一行,做一行。
但 while 不一样。
只要条件还成立,它就会继续往下走。
n = 0
while n < 5:
print('hello world')
n += 1
这个例子很简单,但它第一次让我感觉到,程序已经不只是执行动作,它开始在“持续”了。
而那个 n += 1 也让我很快明白:循环最重要的,不只是重复,还有更新。
如果没有更新,程序就会一直停在原地。
写到这里,我后来会把 while 的骨架记成三件事:
这三样少一样,循环都容易出问题。
2. while True、break 和死循环,让我第一次认真对待“退出”
学循环时还有一个很直观的变化,就是我第一次真正理解了什么叫“停下来”。
whileTrue:
name = input('请输入名字:')
if name == '小红':
print('欢迎回来')
break
print('名字不对,再试一次')
这里的 while True 意味着:默认会一直循环下去。
那它什么时候结束?靠的就是 break。
所以我后来会觉得,循环并不是只要会“继续”就够了,你还得会设计它在什么时刻结束。
这也是为什么死循环会让人紧张。
不是因为它神秘,而是因为你忘了给它一个真正能离开的出口。
3. for 和 range() 让我觉得,重复这件事终于有了更清楚的节奏
如果说 while 让我先理解了“只要条件成立,就继续”,那 for 给我的感觉会更整齐一点。
for i inrange(2, 10, 2):
print(i)
这段代码会依次输出 2、4、6、8。
也就是从这里开始,我第一次把 range() 真正记住了:
- •
range(start, end) 有开始和结束 - •
range(start, end, step) 还可以控制步长
而且它有一个特别重要的特点,就是左边包含,右边不包含。
也就是说,range(2, 10, 2) 会走到 8,不会走到 10。
对新手来说,这一点特别值得单独记住。
因为很多看起来像“差一点”的 bug,最后都出在边界没想清楚。
4. 高斯求和这种题,让我第一次看见“累积”是怎么发生的
total = 0
for i inrange(1, 101):
total += i
print(total)
这段代码真正打动我的地方,不只是它能算出结果。
而是我第一次很清楚地看到,一个结果是怎样被一点点加出来的。
前面学变量时,我刚刚理解“变化”。
而循环让我看见,变化还能不断累积。
今天加一点,下一步再加一点,到最后才长成一个完整的答案。
这种感觉很像很多学习本身。
不是一下子会,而是一点点叠上去。
而像纸张翻倍、国王麦粒这种练习,又让我看见另一种累积:
thickness = 0.1
for i inrange(10):
thickness *= 2
print(thickness)
这时候循环不再只是“每次加一点”,而是会把结果一轮一轮放大。
所以这一段真正补给我的,不只是“会写循环”,而是我开始分得清:
5. continue 和 break 让我明白,重复不是死板地撑到底
for i inrange(5):
if i == 2:
continue
print(i)
前面我理解循环,更像是在想:怎么让它继续。
但到了这里,我开始理解:什么时候该停,什么时候该跳过。
break 是直接结束。
continue 是这一次先跳过,后面继续。
这两个词不复杂,但它们让我第一次意识到,循环不是死板地重复到最后。
它也可以带着判断往前走。
比如遇到对的名字就停止,遇到不需要的值就跳过。
从这里开始,循环不再只是机械执行,它开始有一点“边走边看”的感觉。
还有一个细节,是我后来才真正意识到的:循环后面还能跟 else。
n = 11
for i inrange(2, n):
if n % i == 0:
print('不是质数')
break
else:
print('是质数')
这里的 else 不是和 if 配对,而是和整个 for 配对。
它表达的意思是:如果循环没有被 break 提前打断,那就执行 else。
第一次看到这种写法时,我会觉得有点绕。
但理解以后就会发现,它特别适合“找到了就停,没找到再给结论”这一类题。
6. 嵌套循环和九九乘法表,让我第一次看见程序里也有层次
再往后学到九九乘法表,我明显感觉到,循环已经不只是单层重复了。
for i inrange(9):
for j inrange(i + 1):
print('%dx%d=%d' % (j + 1, i + 1, (j + 1) * (i + 1)), end=' ')
print()
这里最打动我的,不是它终于能打印出一张熟悉的表。
而是我第一次看见,程序里的重复也可以一层套一层。
外层控制行,内层控制列。
前面那种“一个动作重复很多次”的感觉,到这里慢慢变成了“一个结构在不断展开”。
也是从这里开始,我第一次觉得,循环不仅能累积结果,还能搭出形状。
7. 这一段真正补上的,是“循环语句”的知识骨架
学到这里,我把循环这一段的核心知识点总结成这几条:
- •
while:条件成立就继续执行,适合边判断边推进 - •
for:按序遍历,更适合次数明确或对象明确的重复 - •
range():用来生成整数序列,常见写法是 range(end)、range(start, end)、range(start, end, step) - •
for ... else / while ... else:没有被 break 打断时,执行 else
我觉得这一小段总结很重要。
因为很多人一开始以为循环只是在学“重复”。
可真正写下来以后你会发现,循环其实是在学:
怎么让过程持续,怎么在过程中更新,怎么在过程中退出,怎么把一个结构慢慢展开。
8. 这一章最重要的收获,不是会写循环,而是开始理解“过程”
如果说前面几篇让我慢慢看见了表达、变化、判断和分支。
那循环这一章让我真正摸到的,是“过程”。
程序不再只是执行一次动作,然后结束。
它可以重复、更新、累积、跳过、停止,还能一层一层展开。
这时候我才慢慢意识到,很多程序真正迷人的地方,不是它最后给出一个什么答案。
而是它怎么走到那个答案。
而循环,恰恰就是把“怎么走”写出来的方式。
最后
如果让我用现在这套感觉回头看这一段,我会说:
循环最打动我的地方,不只是它能让代码重复执行,而是它让程序第一次有了时间感、节奏感和累积感。
也是从这里开始,我第一次不再把代码看成一个个孤立的瞬间。
我开始看见,它其实可以一步一步往前走,并且在重复里长出结果。
🌷🌷🌷
如果你也在学循环,你第一次明显感觉到“重复不是原地踏步”是在什么地方?
是 while 的持续,range() 的节奏,break / continue 的转折,还是九九乘法表那种一层层展开的感觉?