【发布时间】:2010-08-22 18:29:07
【问题描述】:
我希望我的程序询问 n 的值。用户输入数值后, 程序接受 n 个值的输入并将它们存储在列表或类似数组的东西中(在 C 中)。 输入必须采用以下格式:
Enter value of n: 4
2
5
7
1
我想将此输入存储在列表中以供以后使用。
【问题讨论】:
我希望我的程序询问 n 的值。用户输入数值后, 程序接受 n 个值的输入并将它们存储在列表或类似数组的东西中(在 C 中)。 输入必须采用以下格式:
Enter value of n: 4
2
5
7
1
我想将此输入存储在列表中以供以后使用。
【问题讨论】:
最简单的方法是这样的:
n = int(input())
l = [int(input()) for _ in range(n)]
但是这有很多问题:
相反,您可以使用 raw_input 并将结果解析为整数。您还需要在适当的位置进行错误处理。如何处理错误取决于程序。
您可能会发现此功能作为起点可能很有用:
def getNumber(prompt = ''):
while True:
try:
return int(raw_input(prompt))
except:
print "Invalid input, try again."
请注意,input 和 raw_input 的行为在 Python 2.x 和 Python 3.x 之间发生了变化。 Python 3.x 的输入函数的行为类似于 Python 2.x 的 raw_input 函数。
【讨论】:
您提出的界面设计得相当糟糕。为什么不简单地让用户输入数字呢?如果确实需要计数,请让计算机进行计数:
line = raw_input("Numbers: ")
numbers = [int(s) for s i line.split()]
带有错误检查的代码会更复杂,但基本方法是让用户更轻松。
【讨论】: