python带你制作可以随机的自答题程序

本文介绍了如何使用Python和相关模块制作一个可以随机答题的程序。首先,通过分析网站结构和利用requests、re等模块抓取题库。然后,利用selenium模块模拟浏览器行为进行自动答题。详细步骤包括获取题库的URL ID,解析网页源代码,保存数据,并实现自动答题功能。最后,提供了代码示例和资源获取途径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

环境使用:

  • 解释器版本 >>> python 3.8

  • 代码编辑器 >>> pycharm 2021.2

模块使用:

  • import requests

    —> 数据请求 / 第三方模块 / 需要安装

  • import re

    —> 正则表达式来匹配处理字符串 / 内置模块 / 无需安装

  • from selenium import webdriver

    —> 自动测试模块 pip install selenium==3.141.0 <指定版本安装>

第三方模块安装:

win + R 输入cmd 输入安装命令 pip install 模块名

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)

可找我获取的:

  1. 驱动安装教程

  2. 素材: 答案ID文本获取

程序实现思路: <模板> 获取题库

一. 获取题库 --> 问题+答案

一. 数据来源分析 --> 通过浏览器 开发者工具 抓包分析

  1. 明确需求:

    • 明确采集的网站是什么

      题目答案页面: https:///Post/2c15b.htm

    • 明确采集的数据是什么

      1. 问题

      2. 答案

  2. 分析这两个数据怎么获取

    已知: 问题/答案 数据来自于 --> 答案页面 第一题: https:///Post/2c15b.htm

    问题: 获取1701道题目 --> 分析每个题目答案页面URL构成

    第一题: https:///Post/2c15b.htm

    第二题: https:///Post/8ac1a.htm

    第三题: https:///Post/e97d7.htm

    2c15b / 8ac1a / e97d7

    所以 只需要获取所有答案页面ID, 即可获取所有题库

二. 代码实现步骤

  1. 发送请求, 模拟浏览器对 答案页面url地址 发送请求

  2. 获取数据, 获取网页源代码

  3. 解析数据, 提取我们想要的数据内容

  4. 保存数据, 保存数据 <保存表格里面即可>

二. 进行自动答题操作

模拟人的行为, 进行答题操作

  1. 打开浏览器

  2. 访问网址 <答题网址>

循环操作:

  1. 浏览题目, 选择正确答案, 点击下一题

    和题库的内容进行对比, 获取答案, 选择选项

  2. 继续答题, 继续点下一题

代码展示

python资料、源码、教程: 点击此处跳转文末名片获取

题库采集

导入模块

import requests
import re
import csv
import concurrent.futures
import parsel
def AnswerID():
    f = open('答案ID.txt', encoding='utf-8')
    answer_id_list = [answer_id for answer_id in f.read().split(',')]
    return answer_id_list


def GetResponse(html_url):
    headers = {
   
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0
Python制作一个简单的答题程序,其中包含随机打乱选项的功能,你可以使用`random`模块来实现。这里是一个基本的框架: ```python import random # 定义题目和选项列表 questions = { "问题1": ["选项A", "选项B", "选项C", "选项D"], "问题2": [...], # 添加更多问题及选项 } def shuffle_options(question): options = questions[question] random.shuffle(options) return options def display_question(): question = list(questions.keys())[0] # 取第一个问题作为示例 shuffled_options = shuffle_options(question) print(f"题目:{question}") for i, option in enumerate(shuffled_options, start=1): print(f"{i}. {option}") def main(): while True: display_question() user_answer = input("请输入您的选择(输入数字序号):") if user_answer.isdigit() and int(user_answer) > 0 and int(user_answer) <= len(shuffled_options): # 检查用户输入是否有效 break else: print("无效的选择,请重新输入。") if __name__ == "__main__": main() ``` 在这个例子中,我们首先定义了一个字典来存储题目和选项。`shuffle_options`函数会将选项列表随机排序。`display_question`用于显示问题并显示随机打乱后的选项,然后让用户输入他们的选择。 请注意,这只是一个基础版本,实际应用中你可能需要添加更多的功能,比如计分、错误处理以及循环遍历所有问题等。如果你想要让每次运行都生成新的随机顺序,可以考虑在每次`display_question`时都重新打乱选项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值