2015-09-12 97 views
0

我知道我做错了什么,但我无法弄清楚什么。 这是一个简单的程序,应该计算正数或负数的整数,并在程序结束时返回值。第一个输入行不计入总数。python:while循环不返回第一行(before while循环)

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

那是因为你在while循环做的第一件事就是读另一个号码。更改第一个

number = input('Enter first number ("q" to exit): ') 

number = None 
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) 
+0

好吧,我新的第一行没有被选中,当我曾试图把它列入while循环“号” WASN变量没有确定,我不知道你可以使用命令'None'。感谢您花时间解释! –

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)