我的代码末尾带有明显的“换行符”

时间:2018-08-24 06:22:14

标签: 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 in listo:
  print(name)

错误:

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:3)

看着


production:
  url: <%= ENV.fetch('DATABASE_URL', '').sub(/^postgres/, "postgis") %>

当您在输入行上按回车键而不输入其他内容时,此while循环终止,因此设置了while name: name = input("Name: ") listo.append(name) ,在while循环的情况下,其求值为name=""。但是无论如何,您都将其添加到列表false中。为此,当您这样做

listo

它会打印您输入的所有实际名称,再加上一个空行,并在末尾添加换行符(由打印添加)。

要解决此问题,您可以在while循环中检查名称是否为空:

for name in listo:
  print(name)

但是,如果根本没有读取任何名称(从循环之前的第一个while name: name = input("Name: ") if name: listo.append(name) 开始),那么仅这样做将在末尾添加\n。另外,您可以更改while循环中各行的顺序,然后在其中移动每个追加:

listo.append(name)