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

2024-04-28 07:36:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望我的程序请求一个n的值。在用户输入该值之后, 程序接受n个值的输入,并将它们存储在一个列表或类似数组(在C中)中。 输入必须采用以下格式:

Enter value of n: 4
2
5
7
1

我想把这个输入存储在一个列表中,以便以后使用。


Tags: of用户程序列表value格式数组enter
2条回答

你提议的接口设计得相当糟糕。为什么不让用户输入数字呢?如果确实需要清点,让计算机来清点:

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

代码将更加复杂,错误检查,但基本方法是让用户更容易。

最简单的方法如下:

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

但是,这有一些问题:

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

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

您可能会发现此函数作为起点可能很有用:

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

注意,输入和原始输入的行为在Python 2.x和Python 3.x之间发生了变化。python3.x的输入函数的行为类似于python2.x的原始输入函数。

相关问题 更多 >