遇到麻烦
stu = []
inp = input('Students: ')
stu.append(inp)
print('Class Roll')
for i in stu:
print(i)
我想要做的就是在' stu'中打印所有输入。在每个新线上。我没有运气就试过了拆分命令。目前,它们都在同一行上打印。例如。如果我输入詹姆斯约翰约什,'我希望它输出 詹姆士 约翰 约什
答案 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