我对任务有疑问。健康)状况:
给定一个数字,例如,如下所示:
num = 12345检查该数字的所有数字是否都大于零。
我尝试编写代码
n = int(input("Введите число: "))
flag = True
while n and flag:
flag = n > 0
n //= 10
print(flag)
如果输入12345,就会显示True。
如果你输入120345它,它也会输出True,尽管它应该输出False。
告诉我错误在哪里。
如果保证 in
input恰好是一个数字,那么您可以简单地:每次迭代时,您只删除数字的最后一位数字。但你检查的是
flag整个剩余的数字,而不是最后截止的数字。也就是说,您有以下比较
flag = n > 0:有必要使用
n % 10- 除以 10 的余数给出最后一位数字来比较每次迭代。然后它会像这样进行比较:正确选项:
您可以发出一个简单的命令:
https://docs.python.org/3/library/functions.html#all
https://docs.python.org/3/library/functions.html#map
作为一个有趣的选择,我建议这样做:
对于这个问题,已经有很多优雅的答案了。但无论如何,这是一个简单的 33 行解决方案: