Python 用于计算0和1的数量的程序
如果我在If循环中使用x//10运行上面的程序,那么只有当用户输入包含0和1的数字、任何其他输入,并且我根本没有得到输出时,输出才会实现Python 用于计算0和1的数量的程序,python,Python,如果我在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 ZERO
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 = 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语句中生成的,因此仅当当前要计算的数字为0或1时才执行。这意味着当它不满足这个条件时,x永远不会被修改,所以相同的测试会被反复运行,永远不会结束
在第二个代码段中,相同的调用在if语句的范围之外进行,因此无论当前数字是什么,x被修改为少一个字符,下一个字符的计算结果与第一个代码段中的相同。因为您陷入了无限循环:如果数字既不是0也不是1,则x未被修改,这意味着您得不到x/=10提供的数字中的下一个数字。为什么还要费心算术呢?您的输入已经是一个字符串。整个程序可以是x=输入“输入一个数字”;printx.count'0'+x.count'1'。
x //= 10