Python 怎么从格式固定的题库中提取多选题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
skpoo
V2EX    Python

Python 怎么从格式固定的题库中提取多选题

  •  
  •   skpoo 2017-06-25 15:57:56 +08:00 4210 次点击
    这是一个创建于 3030 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有 500 多条这样的题目,现在想从里面把多选题提取出来,奈何等级不够,完不成这个想法。

     [开始] 多选题(分值=2 分;答案=ABC ;难度=难度题) 以下关于生成树协议原理的描述正确的是( ) A、从网络中所有的交换机中,选出一个作为根交换机( Root ) B、计算本交换机到根交换机的最短路径 C、对每个 LAN,选出离根交换机最近的那个交换机作为指定交换机,负责此 LAN 上的数据 转发 D、非根交换机会选择若干个根端口,这些根端口给出的路径是此交换机到根交换机的最佳 [结束] [开始] 多选题(分值=2 分;答案=AE ;难度=基础题) 在 STP 协议中,下面哪些因素会影响根交换机的选举( ) A、交换机优先级 B、交换机端口 ID C、交换机接口带宽 D、交换机的 IP 地址 E、交换机的 MAC 地址 [结束] [开始] 单选题(分值=2 分;答案=A ;难度=水平题) IP 头中的 TTL 字段设置了数据包可以经过的路由器数目。 一旦经过一个路由器,TTL 值 就会减 1, 当该字段值为( )时,数据包将被丢弃。 A、0 B、1 C、-1 D、2 [结束] 

    因为单选题的格式固定,只有四个选项,现在只能把单选题提取了出来

    IP 头中的 TTL 字段设置了数据包可以经过的路由器数目。 一旦经过一个路由器,TTL 值 就会减 1, 当该字段值为 [ 0 ] 时,数据包将被丢弃。 

    多选题试了好久一直不成功,请教熟悉 Python 的 V 友可否给一个思路,谢谢

    10 条回复    2017-06-26 13:22:11 +08:00
    xiahei
        1
    xiahei  
       2017-06-25 16:06:52 +08:00   1
    mrcn
        2
    mrcn  
       2017-06-25 16:10:52 +08:00 via Android   1
    没用过 Python,提供个思路吧,就是不停的正则。
    先匹配符合“ [开始] 多选题* [结束] ”这样的,就可以分离多选与单选了
    然后获取答案,每题都匹配“答案=*;”这样的,就能获取每题的答案
    剩下的就好做了……
    skpoo
        3
    skpoo  
    OP
       2017-06-25 16:12:09 +08:00
    @xiahei #1 哈!你哈,请问这个是什么软件啊?看着比自带的 IDLE 高级好多。还有就是有没有办法将答案也加进题目中去呢?
    就像这样
    在 STP 协议中,下面哪些因素会影响根交换机的选举 [交换机优先级],[交换机的 MAC 地址]
    谢谢!
    GoBeyond
        4
    GoBeyond  
       2017-06-25 16:12:26 +08:00 via Android   1
    合理安排你的正则匹配顺序,如果你能写出 nb 的能一步到位的正则就更好了
    skpoo
        5
    skpoo  
    OP
       2017-06-25 16:15:03 +08:00
    @mrcn #2 单选题的话我是将一个完整的题目和答案提取出来,然后慢慢匹配。到多选题的时候有的题目会有 5 个选项,这样就不会了
    skpoo
        6
    skpoo  
    OP
       2017-06-25 16:18:13 +08:00
    @GoBeyond #4 正则不太熟,我用 split() 和 count() 慢慢匹配的,看来要去学正则表达式了
    flaneurse
        7
    flaneurse  
       2017-06-25 16:19:31 +08:00 via Android   1
    @skpoo 那是 ipython
    bxb100
        8
    bxb100  
       2017-06-26 08:27:27 +08:00 via Android
    @flaneurse 会不会是 spyder ? ipy 颜色好像没这么鲜艳吧
    xiahei
        9
    xiahei  
       2017-06-26 10:00:37 +08:00
    @bxb100
    @skpoo
    是 IPython,只不过终端配色用的 Ura。https://github.com/Mayccoll/Gogh/blob/master/content/themes.md#ura
    jeffersonpig
        10
    jeffersonpig  
       2017-06-26 13:22:11 +08:00
    @bxb100 spyder 用的不就是 IPython 吗?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2737 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 11:36 PVG 19:36 LAX 04:36 JFK 07:36
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86