fengma 发表于 2024-8-11 14:32:50

Python的多项选择题的选取问题

本帖最后由 fengma 于 2024-8-11 15:47 编辑

answer_list = ['A'、'B'、'D']
options = ['A'、'B'、'C'、'D']

如何优化的找出它们的相同组并执行click()(有选择的选项A被提前选择就不管,以此类推)?
我个人是用的双重for来查找.好奇python有优化的解法吗?

wp231957 发表于 2024-8-11 19:24:10

没看懂,那个click是什么鬼

sfqxx 发表于 2024-8-12 21:16:49

同上。

qq1151985918 发表于 2024-8-13 21:13:11

本帖最后由 qq1151985918 于 2024-8-13 21:44 编辑

我看不懂这句话啥意思

(有选择的选项A被提前选择就不管,以此类推)

你的意思是不是这样:
有一道多选题,题目有ABCD四个选项,答案是ABD,怎样执行一个函数从选项中匹配正确的答案内容?
如果是这个意思那你可以用字典+循环的方式

我猜测你是不是这样写的:
answer_list = ['A', 'B', 'D']
options = ['A.这是A选项', 'B.这是B选项', 'C.这是C选项', 'D.这是D选项']

question = '这是问题?'

print(question, '正确答案是:\n')
for answer in answer_list:
    for option in options:
      if answer in option:
            print(option)
这样是比较容易出问题的,假设选项变一变只怕就出不来正确结果了
你可以把
options = ['A.这是A选项-ASD', 'B.这是B选项-QWE', 'C.这是C选项-ABD', 'D.这是D选项-XYZ']
换上去试试

而我的建议是

answer_list = ['A', 'B', 'D']
options = ['A.这是A选项-ASD', 'B.这是B选项-QWE', 'C.这是C选项-ABD', 'D.这是D选项-XYZ']

question = '这是问题?'
options = {option: option for option in options} # 将选项转换为字典方式

def test(question, options, answer_list):
    print(question, '正确答案是:\n')
    for answer in answer_list:
      print(options)

if __name__ == '__main__':
    test(question, options, answer_list)

fengma 发表于 2024-8-14 18:18:34

qq1151985918 发表于 2024-8-13 21:13
我看不懂这句话啥意思

(有选择的选项A被提前选择就不管,以此类推)


                  # 存储标准答案
                  answer_list = answer.split('、')# 将字符串按'、 '分割并存入数组
                  # 存储当前的选项,例如A、B、C、D
                  options = ele.eles('xxxxxxxxx ')
                  # 已经被选上的选项先去掉
                  # 后面答题时会被取消
                  chks=ele.eles('xxxxxxxxx')
                  for chk in chks:
                        chk.click()
                  # 再根据标准答案选题
                  # options 循环
                  for opt in options:
                        #answer_list 循环
                        for ans in answer_list:
                            #取出答案
                            qus=opt.text
                            #比较后点击
                            if qus == ans:
                              opt.click()

haha,我的确用的是最古老的for...for....循环.感谢提醒!
页: [1]
查看完整版本: Python的多项选择题的选取问题