python - 为什么没有打印,即使返回值不是 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)
对于非阿姆斯壮数字,输出带有无,有人可以解释其背后的原因。我已将输出附加为相同的图像链接。
解决方案
您有一个print
inside 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
,因为你正在隐藏一个内置函数
推荐阅读
- c - 动态分配是否在堆中存储任何内容?- C语言
- node.js - 节点 bignum 安装失败
- c# - 如果我没有在循环中声明它,为什么 Android MediaPlayer 只播放一次?
- java - Drools 没有按预期工作。未应用规则
- c# - 对用户进行身份验证并从事件中返回数据
- asp.net-core - 什么可能导致关联 cookie 无法在特定设备上返回
- yii2 - 如何调试 Yii2 迁移?
- listview - Xamarin 表单列表视图 - 数据模板到列
- java - ThreadMXBean.getThreadAllocatedBytes(long id)中包含哪些JVM运行时数据区
- java - 无法使用 Java 读取包含阿拉伯语内容的 Excel 文件