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)
此代码可以正常工作。我很困惑。
答案 0 :(得分:1)
在第一个代码段中,呼叫:
x //= 10
是在if语句中制成的 ,因此仅当要评估的当前数字是0
或1
时才执行。这意味着如果不满足此条件,x
将永远不会被修改,因此相同的测试会一遍又一遍地运行-永无止境。
在第二个片段中,在if语句范围之外进行了相同的调用,因此无论当前数字是什么,x
都被修改为少一个字符,而 next < / em>字符会被评估,而不是第一个代码片段中的相同。