Python水仙花数代码if语句中一直循环打印,为何加了一个缩进就正常了?

问题遇到的现象和发生背景:Python数水仙花数的代码一直多次打印
问题相关代码,请勿粘贴截图:

for a in range(10):
for b in range(10):
for c in range(10):
if a3 + b3 + c*3 == a100 + b 10 +c:
hua = a
100+b*10+c
if hua >= 100:
print('水仙花数:{}'.format(hua))

运行结果及报错内容:153、407多次打印,371没打印那么多,370只打印了一次(在这里提问预览代码很奇怪,第三行for前有对上一行的缩进,第四行,第五行也是,第六行显示无问题,第七行有,第四行原本是:"if a3 + b3 + c*3 == a100 + b *10 +c:")
我的解答思路和尝试过的方法:试符合每一位的立方加起来等于那个三位数本身的数字。出了这个错后为倒数第二行多加了一个缩进,立马正常了。为何?
我想要达到的结果:

只打印:
水仙花数:153
水仙花数:370
水仙花数:371
水仙花数:407
而不是打印:
省略无数个"水仙花数:153"
水仙花数:370
省略有无数"水仙花数:153"一半的"水仙花数:371"
省略无数个"水仙花数:407"

缩进就代码了代码结构关系的变化,当然有区别

for a in range(10):
    for b in range(10):
        for c in range(10):
            if a**3 + b**3 + c**3 == a*100 + b*10 +c:
                hua = a*100+b*10+c
                if hua >= 100:
                    print('水仙花数:{}'.format(hua))

注意缩进

你的意思是你以前是这样?

img