为什么我的循环在输入输入后结束?

Why does my loop end after the input is entered?

作业题为:“写一个程序,读取不定数量的整数,判断读取了多少个正负值,并计算总和 和输入值的平均值(不包括零)。你的程序以 输入 0。将平均值显示为浮点数。"

positive = 0
negative = 0
total = 0
count = 0

number = eval(input("Enter an integer, the input ends if it is 0:"))
while number != 0:
    total += number
    count += 1
    if number > 0:
        positive += 1
    elif number < 0:
        negative += 1
    else:
        break

average = total/count
print("The number of positives is", positive)
print("The number of negatives is", negative)
print("The total is", total)
print("The average is", average)

输入数字后,程序不输出任何其他内容。

您需要继续提示输入数字,直到输入零。一个简单的方法是将你的数字放入一个列表中,然后你可以从最后计算不同的统计数据:

numbers = []
while not numbers or numbers[-1] != 0:
    numbers.append(int(input("Enter an integer, the input ends if it is 0: ")))
numbers.pop()  # discard the 0

print("The number of positives is", sum(n > 0 for n in numbers))
print("The number of negatives is", sum(n < 0 for n in numbers))
print("The total is", sum(numbers))
print("The average is", sum(numbers) / len(numbers))

Write a program that reads an unspecified number of integers

这意味着您必须反复从用户那里获取数字输入,但是使用 input() 一次实际上只会输入一个数字。

所以你应该在 while 循环中输入你的号码,例如:

while True:
    number = int(input("Enter an integer, the input ends if it is 0:"))
    total += number
    count += 1
    if number > 0:
        positive += 1
    elif number < 0:
        negative += 1
    elif number == 0:
        break