python 水仙花数

写了一个python求水仙花数的程序,为什么循环里面的if后面的代码,条件即使正确也不会去运行

num= int(input())
nums=[]
for i in range(num+1):
    x = str(i)
    lst=[]
    for y in range(len(x)):
        lst.append(int(x[y]))
    lst1=[x**3 for x in lst]
    a= sum(lst1)
    if a==num:
        print(i)
        nums.append(i)
if nums == []:
    print("none")

第10行应该是if a==i:啊
另外既然你用3次方,说明是求3位数的水仙花数,因此range应该是range(100,num+1)

num = int(input())
nums = []
for i in range(100,num + 1):
    x = str(i)
    lst = []
    for y in range(len(x)):
        lst.append(int(x[y]))
    lst1 = [x ** 3 for x in lst]
    a = sum(lst1)
    if a == i:
        print(i)
        nums.append(i)
if nums == []:
    print("none")

你应该写if a==i:
否则你输入的num必须正好是个水仙花数才行

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632