程序计算0和1的数量

问题描述 投票:0回答:1
x = int(input('ENTER A NUMBER '))
count = 0
while x > 0:
    digit = x % 10
    if digit == 0 or digit == 1:
        count += 1
        x //= 10
print('THE NUMBER OF ONES OR ZEROES TOGETHER ARE: ', count)

如果我在if循环中使用x//10运行上述程序,只有当用户输入包含0和1的数字,任何其他输入并且根本没有得到输出时,输出才会生效。

x = int(input('ENTER A NUMBER '))
count = 0
while x > 0:
    digit = x % 10
    if digit == 0 or digit == 1:
        count += 1
    x //= 10
print('THE NUMBER OF ONES OR ZEROES TOGETHER ARE: ', count)

这段代码工作得很好。我很迷惑。

python
1个回答
1
投票

在第一个片段中,通话:

x //= 10

在if语句中生成,因此仅在被评估的当前数字是01时执行。这意味着当它不满足这个条件时,x永远不会被修改,所以相同的测试会一遍又一遍地运行 - 永远不会结束。

在第二个片段中,同样的调用是在if语句的范围之外进行的,因此无论当前数字是什么,x被修改为少一个字符,并且评估下一个字符而不是正在发生的字符。在第一个片段中。

© www.soinside.com 2019 - 2024. All rights reserved.