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)
这段代码工作得很好。我很迷惑。
在第一个片段中,通话:
x //= 10
在if语句中生成,因此仅在被评估的当前数字是0
或1
时执行。这意味着当它不满足这个条件时,x
永远不会被修改,所以相同的测试会一遍又一遍地运行 - 永远不会结束。
在第二个片段中,同样的调用是在if语句的范围之外进行的,因此无论当前数字是什么,x
被修改为少一个字符,并且评估下一个字符而不是正在发生的字符。在第一个片段中。