如何在列表中逐个输入n个数字?

时间:2010-08-22 18:29:07

标签: python

我希望我的python代码在用户输入值后询问n的值。 程序获取n个值的输入,并将其存储在列表或类似数组中(在c中)。 输入必须采用以下格式: 输入n:4的值

2

5

7

1

我想将此输入存储在列表中,供以后使用。 希望现在更清楚了。 因为我是python的新手,我正在解释我最好的。

2 个答案:

答案 0 :(得分:1)

最简单的方法是这样的:

n = int(input())
l = [int(input()) for _ in range(n)]

然而,这有很多问题:

  • 无效输入会崩溃。
  • 它评估危险的输入 - 用户可以修改您的程序状态。 (Python 2.x)
  • 用户可以输入浮点数,程序不会抱怨,它只会默默地截断。 (Python 2.x)

相反,您可以使用raw_input并将结果解析为整数。您还需要在适当的位置进行错误处理。如何处理错误取决于程序。

您可能会发现此功能可能有用作为起点:

def getNumber(prompt = ''):
    while True:
        try:
            return int(raw_input(prompt))
        except:
            print "Invalid input, try again."

请注意,在Python 2.x和Python 3.x之间,input和raw_input的行为已经发生了变化。 Python 3.x的输入函数的行为类似于Python 2.x的raw_input函数。

答案 1 :(得分:1)

您建议的界面设计得非常糟糕。为什么不简单地让用户输入数字?如果确实需要计数,让计算机进行计数:

line = raw_input("Numbers: ")
numbers = [int(s) for s i line.split()]

错误检查会使代码更复杂,但基本方法是让用户更轻松。