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

Python的while True循环无限执行,如何执行一次后运行后续代码

问题修复说明

你的代码出现无限循环有以下几个明确原因:

  • while True 是无限循环语法,你没有设置break语句触发跳出,所以会永远重复执行循环内的代码
  • input() 函数返回的结果是字符串类型,和你生成的整数类型随机数直接做相等判断,永远不会成立,所以你写的猜中分支永远不会运行
  • 代码缩进错误:和猜中判断if对应的else错误和while对齐,导致逻辑完全错位
  • 你自定义的func()函数写在了if分支内部,分支外无法调用,同时也没有对应跳出循环的逻辑
  • 你生成随机数用了randint(0,10),和提示用户的「1到10」范围不符

修正后可正常运行的代码

如果需要保留用户可选择是否重试的功能,用下面的代码即可:

import random
import time

while True:
    guess = input("请输入1-10之间的幸运数字:\n")
    # 将输入转为整数类型才能和随机数正常比较
    guess = int(guess)
    number = random.randint(1, 10)
    print(f"生成的随机数是:{number}")
    if guess == number:
        print("太棒了,你猜对了!")
    else:
        print("没关系,要不要再试一次?")
    answer = input("你还要继续玩吗?(y/n):\n")
    if answer == 'n':
        print("祝你今天愉快!")
        time.sleep(2)
        # 跳出循环,执行后面的代码
        break

# 循环结束后会执行这里及之后的所有代码
print("猜数字游戏已结束")

如果你的需求是固定只执行一次猜数字逻辑,不需要给用户重试选项,直接去掉while True结构即可,不需要写循环:

import random
import time

guess = input("请输入1-10之间的幸运数字:\n")
guess = int(guess)
number = random.randint(1, 10)
print(f"生成的随机数是:{number}")
if guess == number:
    print("太棒了,你猜对了!")
else:
    print("没关系,下次好运!")
print("祝你今天愉快!")
time.sleep(2)

# 后续代码正常执行
print("猜数字逻辑已执行完成,运行后续内容")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:45:03