Python 明显的';换行符';在我的代码末尾

Python 明显的';换行符';在我的代码末尾,python,Python,我使用的网站告诉我,在结尾处有一个额外的换行符。我真的不知道是什么原因造成的。我想它应该是我把(“Name:”)和空格放在一起的地方,但不,它不是 listo = [] name = input("Name: ") listo.append(name) while name: while name: name = input("Name: ") if name: listo.append(name) listo.sort() listo.reverse() for

我使用的网站告诉我,在结尾处有一个额外的换行符。我真的不知道是什么原因造成的。我想它应该是我把
(“Name:”)
和空格放在一起的地方,但不,它不是

listo = []
name = input("Name: ")
listo.append(name)
while name:
  while name:
    name = input("Name: ")
    if name:
      listo.append(name)
listo.sort()
listo.reverse()
for name in listo:
  print(name)
错误:

看着

while name:
  name = input("Name: ")
  listo.append(name)
当您在输入行中按enter键而不输入任何其他内容时,此while循环终止,因此设置
name=”“
,在while循环的条件下,该值将计算为
false
。但是你还是要把它添加到列表
listo
。因此,当你这样做的时候

for name in listo:
  print(name)
它打印您输入的所有实际名称,加上一个附加的空行,在末尾加一个换行符(通过打印添加)

要解决此问题,如果名称不为空,则可以签入while循环:

while name:
  name = input("Name: ")
  if name:
    listo.append(name)
但是,如果根本没有读取任何名称(从循环前面的第一个
列表到.append(name)
),则仅执行该操作将有一个尾随
\n
。或者,您可以更改while循环中的行顺序,并将每个附加移动到其中:

listo = []
name = input("Name: ")
#listo.append(name) move to while loop
while name: 
  listo.append(name) #order changed, while loop runs while there is still a name to add. The empty name will terminate the while loop, hence never reaching the appen line
  name = input("Name: ") 
listo.sort()
listo.reverse()
for name in listo:
  print(name)

你有任何追踪吗?还有,这是什么网站?这是一个叫做Grok Learning的网站,我在那里学习python。对不起,我指的不是空白,而是新行。它说:您的输出有一个额外的尾随换行符。
print()
添加一个换行符任务的目的是什么?您可以在
print
中更改行尾,前提是所有行尾都在一个上line@HollyM我认为FlyingTeller的答案就是这个问题。我们一直专注于
打印
,但这是在loop@HollyM我认为我们将在这方面努力,因为这是一个网站任务,而不是真正的python问题。我不知道它对你的编辑有什么抱怨,你的代码对我来说很好