You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何满足条件时代码最后一行仍无法执行?来自《Automate The Boring Stuff》

问题原因

当猜对数字时,代码执行了else: break分支,直接跳出for循环。循环体中break之后的所有代码(包括你写的判断猜对的if语句)都不会被执行,所以祝贺语句永远无法显示。

修复方案

方案一:将祝贺语句移到猜对的分支内

直接在猜对时先打印祝贺信息,再跳出循环,确保信息能被输出:

import random
secret_number = random.randint(1, 20)
print("I'm thinking of a number between 1 and 20")

for guesses_taken in range(1, 7):
    guess = int(input("Take a guess: "))

    if guess < secret_number:
        print("This number is too low")
    elif guess > secret_number:
        print("This number is too high")
    else:
        print(f"Good job! You guessed my number in {guesses_taken} guesses!")
        break

if guesses_taken == 6:
    print(f"Nope, the number I was thinking about was {secret_number}")

方案二:用标记变量统一处理结果

通过变量记录是否猜对,循环结束后再输出对应信息,结构更清晰:

import random
secret_number = random.randint(1, 20)
print("I'm thinking of a number between 1 and 20")

guessed_correctly = False
for guesses_taken in range(1, 7):
    guess = int(input("Take a guess: "))

    if guess < secret_number:
        print("This number is too low")
    elif guess > secret_number:
        print("This number is too high")
    else:
        guessed_correctly = True
        break

if guessed_correctly:
    print(f"Good job! You guessed my number in {guesses_taken} guesses!")
else:
    print(f"Nope, the number I was thinking about was {secret_number}")

内容的提问来源于stack exchange,提问作者Nuela

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 04:40:53