用户输入的第一项未使用附加功能包含

问题描述 投票:0回答:5

我正在尝试根据用户输入创建一个数字列表。

我尝试使用“追加”来创建列表,这样我就可以计算平均值,但“追加”不包括用户输入的第一个数字。

任何帮助表示赞赏。

提前致谢!

list_number = []  
number = float(input("Please enter any number (enter (-1) when done): "))



while number != -1:         
    number = float(input("Please enter any number (enter (-1) when done): "))
    list_number.append(number)
    if number == -1 : 
        print("You have exited the loop")
        break


print(list_number)
total_num = sum(list_number)
num_entries = len(list_number)
average = total_num / num_entries
print("Average: ", average)
python list append average user-input
5个回答
0
投票

发生这种情况的原因是您在第 2 行进行了输入,但没有将其附加到列表中。

您可以将第 2 行更改为:

number = 0  #(anything but -1)

或者,您在 while 循环之前将数字附加到列表中。


0
投票

欢迎来到 StackOverflow!看起来您只是在第一个

list_number.append(number)
之后忘记了
number = ...
。但是,此处使用的 while 循环应替换为“do while”以避免重复。要在 Python 中执行此操作,只需
while True
并添加 break 语句 if
number == -1
正如您已经拥有的那样。

例如:

list_number = []  

while True:
    number = float(input("Please enter any number (enter (-1) when done): "))
    if number == -1: 
        print("You have exited the loop")
        break
    else:
        list_number.append(number)

print(list_number)
total_num = sum(list_number)
num_entries = len(list_number)
average = total_num / num_entries
print("Average: ", average)

0
投票
  • 你可以达到这样的效果
list_number = []

while 1:
    number = float(input("Please enter any number (enter (-1) when done): "))
    if number == -1:
        print("You have exited the loop")
        break
    list_number.append(number)

print(list_number)
total_num = sum(list_number)
num_entries = len(list_number)
average = total_num / num_entries
print("Average: ", average)

  • Output
python3 st.py
Please enter any number (enter (-1) when done): 12
Please enter any number (enter (-1) when done): 341
Please enter any number (enter (-1) when done): 2345
Please enter any number (enter (-1) when done): -1
You have exited the loop
[12.0, 341.0, 2345.0]
Average:  899.3333333333334

0
投票

list_number = []
数 = 0

您使用了 2 个条目,而您的列表缺少其中一个,因此您应该将 number 的值设置为 0,就像这样


0
投票

这是一种使用赋值表达式的可能方法(仅由 python >= 3.8 支持):

list_number = []
while (n := float(input("Enter a number (enter (-1) when done): "))) != -1:
    list_number.append(n)

print("You have exited the loop")
print("Average: ", sum(list_number) / len(list_number))
© www.soinside.com 2019 - 2024. All rights reserved.