美文网首页
python中if跳转不到elif?

python中if跳转不到elif?

作者: 全村希望gone | 来源:发表于2019-06-28 22:06 被阅读0次

    原数据集

    高 B-NAME
    勇 I-NAME
    : O
    男 O
    , O
    中 B-CONT
    国 I-CONT
    国 I-CONT
    籍 I-CONT
    , O
    无 O
    境 O
    外 O
    居 O
    留 O
    权 O
    , O
    
    1 O
    9 O
    6 O
    6 O
    年 O
    出 O
    生 O
    , O
    汉 B-RACE
    族 I-RACE
    , O
    中 B-TITLE
    共 I-TITLE
    党 I-TITLE
    员 I-TITLE
    , O
    本 B-EDU
    科 I-EDU
    学 I-EDU
    历 I-EDU
    , O
    工 B-TITLE
    程 I-TITLE
    师 I-TITLE
    、 O
    美 B-ORG
    国 I-ORG
    项 I-ORG
    目 I-ORG
    管 I-ORG
    理 I-ORG
    协 I-ORG
    会 I-ORG
    注 B-TITLE
    册 I-TITLE
    会 I-TITLE
    员 I-TITLE
    ( O
    P B-TITLE
    M I-TITLE
    I I-TITLE
    M I-TITLE
    e I-TITLE
    m I-TITLE
    b I-TITLE
    e I-TITLE
    r I-TITLE
    ) O
    、 O
    注 B-TITLE
    册 I-TITLE
    项 I-TITLE
    目 I-TITLE
    管 I-TITLE
    理 I-TITLE
    专 I-TITLE
    家 I-TITLE
    ( O
    P B-TITLE
    M I-TITLE
    P I-TITLE
    ) O
    、 O
    项 B-TITLE
    目 I-TITLE
    经 I-TITLE
    理 I-TITLE
    。 O
    

    想要的数据集

    高 B-NAME NAME
    勇 I-NAME NAME
    : O O
    男 O O
    , O O
    中 B-CONT CONT
    国 I-CONT CONT
    国 I-CONT CONT
    籍 I-CONT CONT
    , O O
    无 O O
    境 O O
    外 O O
    居 O O
    留 O O
    权 O O
    , O O
    
    1 O O
    9 O O
    6 O O
    6 O O
    年 O O
    出 O O
    生 O O
    , O O
    汉 B-RACE RACE
    族 I-RACE RACE
    , O O
    中 B-TITLE TITLE
    共 I-TITLE TITLE
    党 I-TITLE TITLE
    员 I-TITLE TITLE
    , O O
    本 B-EDU
    科 I-EDU
    学 I-EDU
    历 I-EDU
    , O O
    工 B-TITLE TITLE
    程 I-TITLE TITLE
    师 I-TITLE TITLE
    、 O O
    美 B-ORG ORG
    国 I-ORG ORG
    项 I-ORG ORG
    目 I-ORG ORG
    管 I-ORG ORG
    理 I-ORG ORG
    协 I-ORG ORG
    会 I-ORG ORG
    注 B-TITLE TITLE
    册 I-TITLE TITLE
    会 I-TITLE TITLE
    员 I-TITLE TITLE
    ( O O
    P B-TITLE TITLE
    M I-TITLE TITLE
    I I-TITLE TITLE
    M I-TITLE TITLE
    e I-TITLE TITLE
    m I-TITLE TITLE
    b I-TITLE TITLE
    e I-TITLE TITLE
    r I-TITLE TITLE
    ) O O
    、 O O
    注 B-TITLE TITLE
    册 I-TITLE TITLE
    项 I-TITLE TITLE
    目 I-TITLE TITLE
    管 I-TITLE TITLE
    理 I-TITLE TITLE
    专 I-TITLE TITLE
    家 I-TITLE TITLE
    ( O O
    P B-TITLE TITLE
    M I-TITLE TITLE
    P I-TITLE TITLE
    ) O O
    、 O O
    项 B-TITLE TITLE
    目 I-TITLE TITLE
    经 I-TITLE TITLE
    理 I-TITLE TITLE
    。 O O
    
    

    先上代码

    file = open('2.txt', 'w+', encoding='utf-8')
    with open('3.txt', encoding='utf-8') as f:
        for line in f:
            line_list = line.strip()
            if line_list.find('NAME') :
                file.write(line_list + ' ' + "NAME" + '\n')
            elif line_list.find('TITLE') :
                file.write(line_list + ' ' + "TITLE" + '\n')
            elif line_list.find('CONT'):
                file.write(line_list + ' ' + "CONT" + '\n')
            elif line_list.find('RACE'):
                file.write(line_list + ' ' + "RACE" + '\n')
            elif line_list.find('ORG'):
                file.write(line_list + ' ' + "ORG" + '\n')
            elif line_list.find('O'):
                file.write(line_list + ' ' + 'O' + '\n')
            else:
                file.write(line_list + '\n')
    

    我本来以为上面的代码肯定可以得到想要的数据集,结果效果是这样的

    高 B-NAME NAME
    勇 I-NAME NAME
    : O NAME
    男 O NAME
    , O NAME
    中 B-CONT NAME
    国 I-CONT NAME
    国 I-CONT NAME
    籍 I-CONT NAME
    , O NAME
    无 O NAME
    境 O NAME
    外 O NAME
    居 O NAME
    留 O NAME
    权 O NAME
    , O NAME
     NAME
    1 O NAME
    9 O NAME
    6 O NAME
    6 O NAME
    年 O NAME
    出 O NAME
    生 O NAME
    , O NAME
    汉 B-RACE NAME
    族 I-RACE NAME
    , O NAME
    中 B-TITLE NAME
    共 I-TITLE NAME
    党 I-TITLE NAME
    员 I-TITLE NAME
    , O NAME
    本 B-EDU NAME
    科 I-EDU NAME
    学 I-EDU NAME
    历 I-EDU NAME
    , O NAME
    工 B-TITLE NAME
    程 I-TITLE NAME
    师 I-TITLE NAME
    、 O NAME
    美 B-ORG NAME
    国 I-ORG NAME
    项 I-ORG NAME
    目 I-ORG NAME
    管 I-ORG NAME
    理 I-ORG NAME
    协 I-ORG NAME
    会 I-ORG NAME
    注 B-TITLE NAME
    册 I-TITLE NAME
    会 I-TITLE NAME
    员 I-TITLE NAME
    ( O NAME
    P B-TITLE NAME
    M I-TITLE NAME
    I I-TITLE NAME
    M I-TITLE NAME
    e I-TITLE NAME
    m I-TITLE NAME
    b I-TITLE NAME
    e I-TITLE NAME
    r I-TITLE NAME
    ) O NAME
    、 O NAME
    注 B-TITLE NAME
    册 I-TITLE NAME
    项 I-TITLE NAME
    目 I-TITLE NAME
    管 I-TITLE NAME
    理 I-TITLE NAME
    专 I-TITLE NAME
    家 I-TITLE NAME
    ( O NAME
    P B-TITLE NAME
    M I-TITLE NAME
    P I-TITLE NAME
    ) O NAME
    、 O NAME
    项 B-TITLE NAME
    目 I-TITLE NAME
    经 I-TITLE NAME
    理 I-TITLE NAME
    

    发现判断语句一直在第一个if那里,跳不出来,于是查询了一下if的用法“if语句中的条件表达式求值为0或FALSE值时,则执行else语句中的代码块。”
    而find(str)的用法是“若找到str,则返回str初始的位置,若未找到,则返回-1。”,注意:是-1,所以跳不出来,只要把代码改成下面这样就可以了。

    file = open('3.txt', 'w+', encoding='utf-8')
    with open('2.txt', encoding='utf-8') as f:
        for line in f:
            line_list = line.strip()
            if line_list.find('NAME') != -1:
                file.write(line_list + ' ' + "NAME" + '\n')
            elif line_list.find('TITLE') != -1:
                file.write(line_list + ' ' + "TITLE" + '\n')
            elif line_list.find('CONT') != -1:
                file.write(line_list + ' ' + "CONT" + '\n')
            elif line_list.find('RACE') != -1:
                file.write(line_list + ' ' + "RACE" + '\n')
            elif line_list.find('ORG') != -1:
                file.write(line_list + ' ' + "ORG" + '\n')
            elif line_list.find('O') != -1:
                file.write(line_list + ' ' + 'O' + '\n')
            else:
                file.write(line_list + '\n')
    

    相关文章

      网友评论

          本文标题:python中if跳转不到elif?

          本文链接:https://www.haomeiwen.com/subject/iwjycctx.html