我正在尝试编写一个程序,将用户输入的每一行附加到列表中。一旦用户输入“”,循环就会中断。当输入超过 1 行时,代码将按预期方式执行。
但是,当用户第一次输入“”时,有一个 elif 语句,要求用户输入“”以外的内容。
测试此部分后,程序会打印“输入列表”行,您可以在下面看到,但随后它会忽略程序的其余部分。如果再次输入 '',程序将退出并在应该执行循环时输出 [],直到出现非 '' 的用户输入。
此外,如果您确实在列表中输入了几行,程序不会删除位于 list1[-1] 的 ''。
所需的最终输出列表中不应有“”。
list1 = list()
def listt():
counter = 0
print("Please enter your shopping list:")
while counter < 1:
ask = input()
list1.append(ask)
if len(list1) > 1 and list1[-1] == '':
list1.remove(list1[-1])
counter += 1
break
elif len(list1) == 1 and list1[0] == '':
print('Enter a shopping list:')
print(list1)
listt()
请勿将空字符串添加到列表中,然后尝试将其删除。只是根本不附加它。
您可以利用空字符串是“假”的事实来方便地控制循环,如下所示:
def listt():
shopping_list = []
while item := input("Please enter your shopping list: "):
shopping_list.append(item)
return shopping_list
print(listt())