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

2017-06-25 15:57:56 +08:00
 skpoo

有 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 友可否给一个思路,谢谢

3693 次点击
所在节点    Python
10 条回复
xiahei
2017-06-25 16:06:52 +08:00
mrcn
2017-06-25 16:10:52 +08:00
没用过 Python,提供个思路吧,就是不停的正则。
先匹配符合“ [开始] 多选题* [结束] ”这样的,就可以分离多选与单选了
然后获取答案,每题都匹配“答案=*;”这样的,就能获取每题的答案
剩下的就好做了……
skpoo
2017-06-25 16:12:09 +08:00
@xiahei #1 哈!你哈,请问这个是什么软件啊?看着比自带的 IDLE 高级好多。还有就是有没有办法将答案也加进题目中去呢?
就像这样
在 STP 协议中,下面哪些因素会影响根交换机的选举 [交换机优先级],[交换机的 MAC 地址]
谢谢!
GoBeyond
2017-06-25 16:12:26 +08:00
合理安排你的正则匹配顺序,如果你能写出 nb 的能一步到位的正则就更好了
skpoo
2017-06-25 16:15:03 +08:00
@mrcn #2 单选题的话我是将一个完整的题目和答案提取出来,然后慢慢匹配。到多选题的时候有的题目会有 5 个选项,这样就不会了
skpoo
2017-06-25 16:18:13 +08:00
@GoBeyond #4 正则不太熟,我用 split() 和 count() 慢慢匹配的,看来要去学正则表达式了
flaneurse
2017-06-25 16:19:31 +08:00
@skpoo 那是 ipython
bxb100
2017-06-26 08:27:27 +08:00
@flaneurse 会不会是 spyder ? ipy 颜色好像没这么鲜艳吧
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
2017-06-26 13:22:11 +08:00
@bxb100 spyder 用的不就是 IPython 吗?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/370950

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX