从IDLE上输入数据,这个函数老是出错,说是 i = int(g)这个地方有问题,求解惑

ef a(*m):
    '设置一个函数,判断输入的数字是否 是水仙花数'
    for g in m:
        i = int(g)
        j = i // 100 #百位
        k = (i // 10) - (j * 10) #十位
        l = i % 10 #个位
        n = (j ** 3) + (k ** 3) + (l ** 3)
        if i == n:
            print(g,'是水仙花数')
        else:
            print(g,'不是水仙花数')

c = input('请输入想要测试的数字')
d = b(c)
print(d)

def a(*m):
    '设置一个函数,判断输入的数字是否 是水仙花数'
    for g in m:
        i = int(g)
        j = i // 100 #百位
        k = (i // 10) - (j * 10) #十位
        l = i % 10 #个位
        n = (j ** 3) + (k ** 3) + (l ** 3)
        if i == n:
            print(g,'是水仙花数')
        else:
            print(g,'不是水仙花数')

c = input('请输入想要测试的数字')
d = a(c)
print(d)

你这个方法调用d=b(c) ; b方法哪来的?把我的粘贴上试试

'设置一个函数,判断输入的数字是否 是水仙花数'
def a(*m):
    '设置一个函数,判断输入的数字是否 是水仙花数'
    for g in m:
        i = int(g)
        j = i // 100 #百位
        k = (i // 10) - (j * 10) #十位
        l = i % 10 #个位
        n = (j ** 3) + (k ** 3) + (l ** 3)
        if i == n:
            print(g,'是水仙花数')
        else:
            print(g,'不是水仙花数')
def b(*m):
    '设置一个函数,判断输入的数字是否 是水仙花数'
    a = 0
    for g in m:
        i = int(m)
        b = i
        while b:
            a = a + ((b % 10) ** 3)
            b = b //10
            if i == a:
                print(g,'是水仙花数')
            else:
                print(g,'不是水仙花数')
c = input('请输入想要测试的数字')
d = b(c)
print(d)

谢谢,这是我全部的代码,您刚刚的那个我用过了,输入单个字符串的时候没问题,那个我写这个代码主要是想输入多个字符串的时候用for循环输出,现在一输入多个代码就出错,您帮我再看看

 

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632