Python · Day 04

循环、倒计时
与猜数字游戏

第四天,我第一次让程序重复执行一段代码。除了写出正常循环,我还因为条件方向写反遇到了死循环,并学会判断原因、停止程序和修正条件。

让程序从 1 数到 5

我先用 while 制作计数器。只要 number <= 5 成立,缩进部分就会重复执行;每轮结束前把数字加一,最终让条件变成不成立。

day4.py
number = 1

while number <= 5:
    print(number)
    number = number + 1

print("循环结束")

我还弄懂了为什么要先 print(number) 再加一:程序从上往下执行,先加一就会从 2 开始输出,并最终输出到 6。

缩进中的代码属于循环,会重复执行;没有缩进的“循环结束”只会在循环完成后执行一次。

倒计时与一次死循环

制作 5 到 1 的倒计时时,我最初写成了 while number <= 5,同时又不断减一。数字会变成 5、4、3、2、1、0、-1……并且永远满足“小于或等于 5”,于是程序不会停止。

我在终端按 Ctrl + C 停止运行,再把条件改成 number >= 1。当数字减到 0 时,条件不成立,循环正常结束。

day4.py
number = 5

while number >= 1:
    print(number)
    number = number - 1

print("倒计时结束")

循环条件必须和变量的变化方向配合。死循环并不会损坏电脑;停止程序后,Python 占用的资源会被系统释放。

猜数字游戏

最后,我把循环和条件判断组合起来:猜错就继续输入,并根据大小给出提示;猜中答案后,guess != secret_number 不再成立,循环结束。

guess.py
secret_number = 7
guess = 0
attempts = 0

while guess != secret_number:
    guess = int(input("请输入你猜的数字:"))
    attempts = attempts + 1

    if guess > secret_number:
        print("你猜的数字大了")
    elif guess < secret_number:
        print("你猜的数字小了")
    else:
        print("猜对了")

print("游戏结束")
print("你一共猜了", attempts, "次")

今天真正弄懂了什么

  • while 会在条件成立时重复执行缩进代码
  • 循环内通常需要改变某个变量,使循环最终能够停止
  • != 表示“不等于”
  • 循环条件要与变量增加或减少的方向配合
  • 遇到死循环可以用 Ctrl + C 停止
  • 计数变量可以记录循环执行了多少次
  • print() 使用逗号可以同时输出文字与数字

今天第一次真正感受到:循环的关键不只是“重复”,而是清楚知道重复的条件、每一轮发生的变化,以及程序最终为什么会停下来。