Python中追加后的空字符串

Python中追加后的空字符串,python,append,Python,Append,这是我的密码 import re filenames = [] while True: filename_input = input("Filename? ") pattern = r'\[.*?\]' re_filename = re.sub(pattern,"",filename_input) filenames.append(re_filename) if (filename_input == "

这是我的密码

import re

filenames = []

while True:
    filename_input = input("Filename? ")
    pattern = r'\[.*?\]'
    re_filename = re.sub(pattern,"",filename_input)
    filenames.append(re_filename)
    if (filename_input == ""):
        break
print(filenames)
此程序的功能是当用户输入带有附加括号的文件名时,删除括号和内容,将其附加到列表并显示输入的所有文件名。删除括号和内容后,输入空文件名后,程序将停止

但出于某种原因,我一直在得到这个输出,后面还有一个空的“”

我怎样才能摆脱它

以下是输出:


发生这种情况的原因是,在将空输入附加到数组后,您中断了循环,在从用户获得输入后,直接将退出条件移动到行。

这是因为在最后一次输入时,您没有输入任何内容。因此,将一个空值追加到列表中。为了摆脱这个。将整个东西放在一个if块中,如:

import re

filenames = []

while True:
    filename_input = input("Filename? ")
    if not filename_input == "":
        pattern = r'\[.*?\]'
        re_filename = re.sub(pattern,"",filename_input)
        filenames.append(re_filename)
    else:
        break

print(filenames)

请尽量避免。何时何地检查环路终止?何时何地检查与追加调用相关的循环终止?你做事的顺序真的很重要。你必须把if filename_input==:break放在append之前。对于以后的问题,请花一些时间阅读,同时阅读SO和。不要发布文本图像,复制粘贴文本作为文本到问题中。欢迎。如果这解决了你的问题,那么请点击大复选标记接受它作为这个问题的答案。你不需要一个完整的If-else块,这就是方法