Python:从多行提示中读取

时间:2017-05-23 12:49:39

标签: python-2.7 list python-3.x

我一直在尝试从提示中读取一组输入。 提示输入的第一行表示将提供多少行。 例如

3 #This represents three values will be supplied in following lines
8
7 
100

no_of_lines = int(raw_input().strip())
lines_content = []
for i in range(0,no_of_lines):
    temp_content = raw_input().strip().split('\n')
    lines_content.append(int(temp_content))

for j in range(0,len(lines_content)):
    print(int(lines_content[j]))

上面是我在python中的代码来读取输入。我期待最后一个print语句将打印int类型的内容。但我无法这样做。 为什么不进行类型转换?是否有任何Pythonic方法可以实现上述场景?

PS 添加回溯

Traceback (most recent call last):
  File "C:/test_project/test.py", line 5, in <module>
    lines_content.append(int(temp_content))
TypeError: int() argument must be a string or a number, not 'list'

1 个答案:

答案 0 :(得分:0)

你应该循环直到匹配一个空字符串

no_of_lines = int(raw_input().strip())
nums = [int(raw_input().strip()) for _ in range(no_of_lines)]
for num in nums: 
    print(num)

BTW - 您的代码会出错,因为拆分会返回一个列表

 temp_content = raw_input().strip().split('\n') # returns a list

 temp_content = raw_input().strip() # should be enough for your case ...