python:while循环不返回第一行(while循环之前)

时间:2015-09-12 18:35:27

标签: python loops while-loop

我知道我做错了什么,但我无法弄清楚是什么。 这是一个简单的程序,应该计算正整数或负整数的数量,并返回程序结束时的值。第一个输入行没有计入总数。

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循环。

3 个答案:

答案 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)