gpt4 book ai didi

python - 我的代码末尾明显有 'newline character'

转载 作者:行者123 更新时间:2023-11-30 22:09:10 24 4
gpt4 key购买 nike

我使用的网站告诉我,末尾打印了一个额外的换行符。我真的不知道它在哪里,也不知道是什么原因造成的。我以为这是我将 ("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

最佳答案

看着

while name:
name = input("Name: ")
listo.append(name)

当您在输入行上按 Enter 键而不输入任何其他内容时,此 while 循环将终止,因此设置 name="" ,在以下条件下其计算结果为 false while 循环。但无论如何,您都将其添加到列表 listo 中。因此,当您这样做时

for name in listo:
print(name)

它会打印您输入的所有实际名称,加上一个额外的空行,末尾有一个换行符(通过 print 添加)。

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

while name:
name = input("Name: ")
if name:
listo.append(name)

但是,当根本没有读取名称时(从循环之前的第一个 listo.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)

关于python - 我的代码末尾明显有 'newline character',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51998606/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com