在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
相关产品推荐
相关产品推荐

