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

在while循环中使用嵌套if语句:输入000退出循环遇IndentationError错误

解决Python中IndentationError: expected an indented block的问题

嘿,我看到你在Python代码里碰到了烦人的IndentationError错误,咱们来拆解问题并快速修复它!这个报错的核心原因很简单:Python是靠缩进区分代码块的,你在需要缩进的地方(比如while循环内部、if语句块里)没有正确缩进,导致Python无法识别代码的层级关系。

先还原一下你可能写的错误代码(应该是类似这样的):

while True:
    num = input("请输入数字,输入000退出:")
if num == "000":
    break
else:
    print(f"你输入的是{num}")

这段代码的问题一眼就能看出来:if语句没有缩进,它本来应该属于while循环的内部代码块,但你把它写在了循环外面,Python自然就懵了——它期待在while后面看到缩进的代码块,结果没找到,就抛出了报错。

正确的代码写法

咱们把缩进调整好,同时注意输入的000是字符串类型(因为input()返回的都是字符串),直接用字符串判断才符合你的需求:

while True:
    # 所有属于while循环的代码都要缩进4个空格(统一用空格,别混制表符)
    num = input("请输入数字,输入000退出:")
    
    # if语句嵌套在while里,也要和上面的代码对齐缩进
    if num == "000":
        # if的代码块同样需要缩进,和if语句本身错开4个空格
        print("正在退出程序...")
        break
    else:
        # else的代码块也要保持一致的缩进
        print(f"你输入的内容是:{num}")

几个关键提醒

  • 缩进必须统一:要么全程用4个空格,要么用1个制表符,千万别混着用,不然容易触发其他缩进错误。
  • 代码块层级要明确:循环、条件判断、函数定义这些结构后面的冒号:,后面必须跟着缩进的代码块,这是Python的语法规则。
  • 关于输入的000:如果把输入转成整数int(num),那000会被转成0,就达不到你想要的“输入000才退出”的效果了,所以直接用字符串判断是更准确的做法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:28:52