python:编写一个程序,不断读取用户

时间:2018-04-25 01:47:16

标签: python

嗨,我非常喜欢编程,当我开始绘制空白时正在进行第6次任务我觉得你很简单,但我无法弄清楚如何继续并希望得到一些建议 显示正确的代码将是很酷的,但我真的很感激与它一起反馈更多然后该做什么,如果是这样我哪里出错了 下面是我应该做的。

编写一个程序,不断读取用户的正数。  程序只应在用户输入负值时退出。一旦  用户输入负值,程序应打印所有的平均值  输入的数字。

我遇到的问题是记得好用户输入的数字55(商店55)用户输入10(商店10)用户输入5(商店5)好的用户输入-2结束程序并计算。问题是它不记得所有以前的条目它唯一记住最后一个输入(我猜我的代码告诉它做什么)所以我如何编码它以便它记住所有以前的条目

这是我到目前为止的代码

number = 1
while ( number > 0):
   number = int(input("enter a number. put in a negative number to end"))
   if number > 0 :
      print (number)
   else:
      print (number) # these are just place holders 

3 个答案:

答案 0 :(得分:0)

如果您真的想记住以前的所有条目,可以将它们添加到列表中,如下所示:

# before the loop
myList = []

# in the loop
myList = int(input("enter a number. put in a negative number to end"))

然后,你可以通过迭代列表并除以列表的长度来轻松计算数字的平均值(我会让你自己自己尝试分配)。
或者,如果你想保存(一点点)内存,你可以每次将它们添加到一个变量中,并为计数保留另一个变量。

答案 1 :(得分:0)

您可以使用简单列表来跟踪用户插入的数字。然后可以处理该列表以便计算在读取每个数字时的平均值...

# This is a simple list. In this list we store every entry that
# was inserted by the user.
numbers = []

number = 1 
while ( number > 0):
   number = int(input("enter a number. put in a negative number to end "))
   if number > 0 :
      print (number)
      # save the number for later usage.
      numbers.append(number)

# calculate average
if len(numbers) == 0:
    print("You have not inputted anything. I need at least one value in order to calculate the average!")
else:
    print("The average of your numbers is: %s" % (sum(numbers) / len(numbers)))

答案 2 :(得分:0)

您需要的是一个可以存储多个值的列表。它通常用于循环来插入/获取它的值。

例如,

b=[2,2,2,2,2]

你得到的是一个数字列表,如[4,10,17],按升序排列,因为append()会将数字添加到列表的后面。要从列表中获取个别数字:

number = 1
numbers = []
while ( number > 0):
    number = int(input("enter a number. put in a negative number to end"))
    if number > 0 :
        numbers.append(number)
print (numbers)

请注意,括号内的索引从0开始,因此例如,您有一个包含[4,10,17]的列表。您应该使用以下3来获取它们:

numbers[0]

甚至更好,有一个循环。

numbers[0]
numbers[1]
numbers[2]