python for-in语句输出问题

1.为什么这样只能输出print(ge,shi,bai)的结果,if中的print(item)输出不了
2.怎么同时输出print(ge,shi,bai)和print(item)

img

因为你这样输出会在循环中间输出数,那么多循环你一下可以查看到么可以放入一个数组中

narcissu=[]
for i in range(100,1000):
    ge=i%10
    shi=i//10%10
    bai=i//100
    print(ge,shi,bai)
    sums=ge**3+shi**3+bai**3
    
    if sums==i:
        narcissu.append(i)

print(narcissu)

如有用,望采纳

print(ge,shi,bai)的结果和print(item)结果混合在一起输出了。不方便你观察结果。
print(ge,shi,bai)注释或者去掉,只打印最后的结果。

print(ge,shi,bai)的结果有900个
print(item)结果只有4个
混合在一起输出你没有观察到。

img

就发上来的代码来看,是没有问题的,不应该出现题主说的问题,尝试把第一个print注释掉,然后看看输出结果

for item in range(100,1000):
    ge = item % 10
    shi = item // 10 %10
    bai = item //100
    if ge **3 + shi **3 + bai **3 ==item:
        print(ge,shi,bai,item)

'''--result
3 5 1 153
0 7 3 370
1 7 3 371
7 0 4 407
'''

其实是会打印if里的print的,但是水仙花数少的可怜。我在检查输出时发现,水仙花数是凑在一起的。

你把第一个print删掉就行了