if和elif 是不是用错了,请看下是哪里错了

下面这段代码,为什么只能得到financial_report_z。

    files = ['202210温州‘,’202210子公司‘,’202210分公司‘,......]   # ....代表其他元素
    datetime_now = datetime.datetime.now()
    month = datetime_now.month-1
    year = datetime_now.year
    turn = str(year)+str(month)
    financial_report, financial_report_fen, financial_report_zi = None, None, None
    for file in files:
        if turn in file and '温州' in file:
            financial_report = file
            print(file, financial_report)
        elif turn in file and '分公司' in file:
            financial_report_fen = file
            print(file, financial_report_fen)
        elif turn in file and '子公司' in file:
            financial_report_zi = file
            print(file, financial_report_zi)
        else:
            if financial_report is None or financial_report_fen is None or financial_report_zi is None:
                print(financial_report, financial_report_fen, financial_report_zi)
                continue
            else:
                print(financial_report, financial_report_fen, financial_report_zi)
                break


你把输出结果贴一下,代码看不出问题。如果说有问题的话,就是如果列表元素匹配不到的话,可能会提前break。但以你给的例子来看,前三项都是可以匹配到的,也会打印出来。

本地执行好像没啥问题。

img

谢谢谢谢,是我人工输入的时候输错了,浪费大家宝贵时间了,惭愧