首页 > 解决方案 > 为什么没有打印,即使返回值不是 None (它只发生在 else 条件)

问题描述

def armstrong(x):
    number = str(x)
    length = len(number)
    sum=0
    for i in number:
        sum = sum + pow(int(i),length)

    print("Yes {0} is an Armstrong Number" .format(x) if(sum==x) else print("No {0} is not an Armstrong Number" .format(x)))   

    return 0


num=int(input("Enter a Number: "))
armstrong(num) 

对于非阿姆斯壮数字,输出带有无,有人可以解释其背后的原因。我已将输出附加为相同的图像链接。

日志

标签: python

解决方案


您有一个printinside another print,并且由于print总是返回None,这就是您要打印的内容。我猜这就是你需要的:

print("Yes {0} is an Armstrong Number".format(x) if(sum==x) else "No {0} is not an Armstrong Number".format(x))

PS尽量不要使用这个词sum,因为你正在隐藏一个内置函数


推荐阅读