我知道我做错了什么,但我无法弄清楚是什么。 这是一个简单的程序,应该计算正整数或负整数的数量,并返回程序结束时的值。第一个输入行没有计入总数。
negvar=0
posvar=0
number = input('Enter first number ("q" to exit): ')
while number != 'q':
number = input('Enter number ("q" to exit): ')
if str(number) == 'q':
print()
elif int(number) < 0:
negvar = int(negvar) + 1
elif int(number) > 0:
posvar = int(posvar) + 1
print('Number of positive values entered:', posvar)
print('Number of negative values entered:', negvar)
我非常感谢任何帮助,因为我还在学习如何正确使用while循环。
答案 0 :(得分:1)
您没有检查第一行是否有内容,您是否会立即在while循环中请求第二个输入。
特别是这些行:
number = input('Enter first number ("q" to exit): ')
while number != 'q':
number = input('Enter number ("q" to exit): ')
你可以这样做:
negvar=0
posvar=0
number = None
while number != 'q':
number = input('Enter number ("q" to exit): ')
if str(number) == 'q':
print()
elif int(number) < 0:
negvar = int(negvar) + 1
elif int(number) > 0:
posvar = int(posvar) + 1
print('Number of positive values entered:', posvar)
print('Number of negative values entered:', negvar)
答案 1 :(得分:0)
那是因为你在while
循环中做的第一件事是读取另一个数字。改变第一个
number = input('Enter first number ("q" to exit): ')
到
number = None
答案 2 :(得分:0)
negvar=0
posvar=0
number = input('Enter first number ("q" to exit): ')
while number != 'q':
if str(number) == 'q':
print()
elif int(number) < 0:
negvar = int(negvar) + 1
elif int(number) > 0:
posvar = int(posvar) + 1
number = input('Enter number ("q" to exit): ') # Move this here
print('Number of positive values entered:', posvar)
print('Number of negative values entered:', negvar)