程序计算0和1的数量

时间:2018-09-02 13:45:58

标签: python

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)

此代码可以正常工作。我很困惑。

1 个答案:

答案 0 :(得分:1)

在第一个代码段中,呼叫:

x //= 10

是在if语句中制成的 ,因此仅当要评估的当前数字是01时才执行。这意味着如果不满足此条件,x将永远不会被修改,因此相同的测试会一遍又一遍地运行-永无止境。

在第二个片段中,在if语句范围之外进行了相同的调用,因此无论当前数字是什么,x都被修改为少一个字符,而 next < / em>字符会被评估,而不是第一个代码片段中的相同