在新线上打印 - python

时间:2014-07-30 09:12:26

标签: python-3.x

遇到麻烦

stu = []
inp = input('Students: ')
stu.append(inp)
print('Class Roll')
for i in stu:
  print(i)

我想要做的就是在' stu'中打印所有输入。在每个新线上。我没有运气就试过了拆分命令。目前,它们都在同一行上打印。例如。如果我输入詹姆斯约翰约什,'我希望它输出 詹姆士 约翰 约什

1 个答案:

答案 0 :(得分:1)

当你尝试这个简单的例子时:

>>> stu = []
>>> inp = input('Students: ')
Students: a b c
>>> inp
'a b c'
>>> type(inp)
<class 'str'>

您可以看到inp是一个字符串,因此stu中只有一条记录。

我不确定您是否期望只有John, Joe, Josh左右的空格分隔(或其他分隔符)名称,在这种情况下您应该使用split()

>>> stu += inp.split(' ')
>>> stu
['a', 'b', 'c']

或者在循环中进行:

stu = []
while True:
    inp = input('Add a student: ')
    if not inp:
        break
    stu.append(inp)

同时阅读list.append() and list.expand()之间的区别。 append在列表中创建一个新项目,而expand(或+=运算符)通过可迭代对象x进行迭代,并在每次迭代。

但是你的打印循环是正确的:

>>> stu = []
>>> inp = input('Students: ')
Students: Joe Josh John
>>> inp.split(' ')
['Joe', 'Josh', 'John']
>>> stu += inp.split(' ')
>>> print('Class Roll')
Class Roll
>>> for i in stu:
...   print(i)
...
Joe
Josh
John