Python 循环 if 语句退出

Python loop if statement exit

我想在 pdf 文件的第一页中找到 2 个元素。 以 P 开头的元素和以 N 开头的元素。 即使找到了1个元素,还需要继续寻找另一个元素。

如果找到P,继续寻找N 如果找到N,继续寻找P 当找到P和N时,停止搜索

我的循环有问题,只有在没有 P 的情况下才能找到 N。 我知道 if 语句有问题,但我似乎无法更正它。

    if text is not None:
        p_new = "NoPFound"
        n_new = "NoNFound"
        for line in text.split('\n'):
            #get p
            if line.startswith('P '):
                pieces = line.split()
                p_old = pieces[1]
                p_new = (p_old[7:11]) + (p_old[0:6])
                break
            #get n
            if line.startswith('N '):
                pieces = line.split()
                n_old = pieces[1]                        
                n_new = (n_old[0:15]) + "/" + (n_old[18:20])
                break
    list_parsed_items.append([p_new, n_new])

使用旗帜。你有一个小型状态机。

    if text is not None:
        p_new = None
        n_new = None
        for line in text.splitlines():
            #get p
            if not p_new and line.startswith('P '):
                pieces = line.split()
                p_old = pieces[1]
                p_new = (p_old[7:11]) + (p_old[0:6])
            #get n
            if not n_new and line.startswith('N '):
                pieces = line.split()
                n_old = pieces[1]                        
                n_new = (n_old[0:15]) + "/" + (n_old[18:20])
            if p_new and n_new:
                break
    list_parsed_items.append([p_new, n_new])