1.为什么这样只能输出print(ge,shi,bai)的结果,if中的print(item)输出不了
2.怎么同时输出print(ge,shi,bai)和print(item)
因为你这样输出会在循环中间输出数,那么多循环你一下可以查看到么可以放入一个数组中
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个
混合在一起输出你没有观察到。
就发上来的代码来看,是没有问题的,不应该出现题主说的问题,尝试把第一个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删掉就行了