Python 3.x 为什么.append只附加偶数字符串?

Python 3.x 为什么.append只附加偶数字符串?,python-3.x,append,Python 3.x,Append,为什么这段代码只附加偶数的来宾? 例如,如果我输入名字:Katja-Adam-Eva-Nicholas- 印刷品将是: ['Adam','Nicholas']\n 2 另外,如何解决此问题?您的检查,而input()会吃掉您一半的姓名: 修正: 更好的是: guest_list = [] while not guest_list or guest_list[-1] != '.': guest = input() guest_list.append(guest) guest_li

为什么这段代码只附加偶数的来宾? 例如,如果我输入名字:Katja-Adam-Eva-Nicholas-

印刷品将是:

['Adam','Nicholas']\n 2


另外,如何解决此问题?

您的检查
,而input()
会吃掉您一半的姓名:

修正:

更好的是:

guest_list = []
while not guest_list or guest_list[-1] != '.':
    guest = input()
    guest_list.append(guest)

guest_list[:] = guest_list [:-1]
print(f'{guest_list}\n{len(guest_list)}')

你的检查
while input()
会吃掉你一半的名字:

修正:

更好的是:

guest_list = []
while not guest_list or guest_list[-1] != '.':
    guest = input()
    guest_list.append(guest)

guest_list[:] = guest_list [:-1]
print(f'{guest_list}\n{len(guest_list)}')

我不认为这是正确的,因为我一启动这个程序,它就会打印出
[]\n 0
和closes@Sebas-使用第二个版本。修正了第一个问题。谢谢你的解决方案!有一件事我还不清楚,那就是为什么
while input()
会“吃掉”我一半的输入。有人能解释一下吗@sebas每个
input()
消耗一个输入,这就是为什么:您输入while-条件测试消耗一个输入的名称。但您不会将其添加到列表中。然后您输入另一个名称,它被添加,然后返回while循环条件测试。再次未添加等。我认为这不正确,因为一旦启动此程序,它将打印
[]\n 0
和closes@Sebas-使用第二个版本。修正了第一个问题。谢谢你的解决方案!有一件事我还不清楚,那就是为什么
while input()
会“吃掉”我一半的输入。有人能解释一下吗@sebas每个
input()
消耗一个输入,这就是为什么:您输入while-条件测试消耗一个输入的名称。但您不会将其添加到列表中。然后您输入另一个名称,它被添加,然后返回while循环条件测试。再次未添加等。
guest_list = []
while not guest_list or guest_list[-1] != '.':
    guest = input()
    guest_list.append(guest)

guest_list[:] = guest_list [:-1]
print(f'{guest_list}\n{len(guest_list)}')
guest_list = []
while True:
    guest = input()
    if guest == '.':
        break
    guest_list.append(guest)

print(f'{guest_list}\n{len(guest_list)}')