只需random和pandas模块,就可以自制一个简单的答题程序;可以选择读取mysql数据库或者excel,只要转换成DataFrame就行,读取csv用pd.read_csv;读取xlsx用pd.read_excel;读取数据库用pd.read_sql。表头如下: 表头只要一样,运行起来就没问题
import pymysql,random
import pandas as pd
from pandas.core.frame import DataFrame
#可以读取数据库或者excel
# conn = pymysql.connect(
# host='127.0.0.1',
# user='root',
# passwd='123456',
# db='stock',
# port=3306,
# charset='utf8')
# df = pd.read_sql('select * from test2', conn) # from 后面是表名;读取的是数据库
df = pd.read_excel(r'D:\python脚本\题目重新处理-C.xlsx',sheet_name="Sheet1", encoding='gbk' ) #读取excel
Questions = df.values.tolist() # 将DataFrame转换成列表
class Learning():
def __init__(self):
self.all_test = 0 #做的全部题目数量
self.all_list = [] #储存此次做的题目,用来避免重复
self.corrects = 0 #正确数量
self.errors = 0 #错误数量
self.Questions = Questions
self.choose_input = int(input('欢迎进入答题程序,请选择每次要答题的数量:'))
def choose_num(self):
num = range(0, 512) # 范围在0到512之间
nums = random.sample(num, self.choose_input) # 选取n个元素
n = 0
for a in nums:
print("题目:{}".format(self.Questions[a][1]))
for i in self.Questions[a][3:7]:
print(i)
stu_Amount = input('请输入你的答案:')
if stu_Amount == self.Questions[a][2]:
print('恭喜你答对了!')
self.corrects += 1
else:
print('哦豁,你答错了,正确答案是:{}'.format(Questions[a][2]))
self.errors += 1
self.all_test += 1
self.all_list.append(a)
n +=1
if n |