Python获取数字首尾位执行公式时出现IndentationError缩进错误如何解决
报错原因
IndentationError: unindent does not match any outer indentation level为Python的缩进匹配错误,核心触发规则是同一逻辑层级的代码缩进量必须完全一致,你提供的代码存在两处直接触发报错的问题:
- 计算
z值的代码行、后续的if判断行缩进量和for循环体内的其他代码不匹配,这两行被解析为不属于for循环体的内容,缩进层级无法匹配外部逻辑块。 - 代码存在混用不同缩进单位的问题:同一层级的代码部分使用2个空格缩进、部分使用1个空格缩进,也有可能混用了制表符(Tab)和空格,视觉上看似对齐,实际Python解析时无法识别为同一层级。
额外优化点
将firstDigit、lastDigit两个工具函数定义在for循环内部属于冗余写法,每次循环都会重复执行函数定义逻辑,会额外占用运行资源,建议移到循环外部。
修正后可运行代码
def firstDigit(n): while n >= 10: n = n / 10 return int(n) def lastDigit(n): return n % 10 for n in range(10, 99): z = firstDigit(n)**2 + lastDigit(n)**2 + firstDigit(n) + lastDigit(n) if z == n: print(z)
运行后输出符合要求的结果为13、31。
内容的提问来源于stack exchange,提问作者Paku
相关产品推荐
相关产品推荐

