Python:一个简单的“单项选择”的检测题特别是

本文档介绍了一个使用Python的Tkinter库和文本文件创建的单项选择题检测程序。程序从文本文件读取问题、答案,用户可以交互选择答案,并提供了前后题目切换功能。程序的结构包括读取文件、响应事件处理、答案选择事件和结束考试事件。通过这个基本框架,可以扩展到其他类型的试题,如多项选择和判断题。
摘要由CSDN通过智能技术生成

用python里的tkinter组件和文本文件写了一个能够检测只有单项选择题的小程序,这据这个思路,稍加修改就可以作成:多项选择题、判断题等的程序。
好了,先看一看文本件的题结成:

1.在TCP/IP的进程之间进行通信经常使用客户/服务器方式,下面关于客户和服务器的描述错误的是( )。
A.客户和服务器是指通信中所涉及的两个应用进程。
B.客户/服务器方式描述的是进程之间服务与被服务的关系。
C.服务器是服务请求方,客户是服务提供方。
D.一个客户程序可与多个服务器进行通信。
A
题目描述、答案和正确答案各占一行。
存储题目的类Stest保存在Stest.py文件中,类结构为:

class Stest():
    def __init__(self,sTitle,answerA,answerB,answerC,answerD,result):
        """定义单项选择题"""
        self.sTitle=sTitle#题目内容
        self.answerA=answerA#答案A
        self.answerB=answerB#答案A
        self.answerC=answerC#答案A
        self.answerD=answerD#答案A
        self.result=result#正确答案

检测程序的主代码

读取文件

在这一个函数中,每次循环读出6行作为一个testB的数据把它加在列表test中。
注意:在循环前一定要先读出一行:line = file_object.readline(),否则会出现题目错误。

def loadFile(filename,test):
    """载入考试题目文件"""
    with open(filename) as file_object:
        line = file_object.readline()
        while line:
            title = line
            line = file_object.readline()
            answerA = line
            line = file_object.readline()
            answerB = line
            line = file_object.readline()
            answerC = line
            line = file_object.readline()
            answerD = line
            result = line = file_object.readline()
            testB = Stest(title, answerA, answerB, answerC, answerD, result)
            test.append(testB)
            line = file_object.readline()
        file_object.close()       

“前一题”、“后一题”和单击左侧题号的响应事件

根据参数Tf的值来判断,题目记录的显示:0为单击“前一题”按钮;1为“后一题”按钮;2为左侧题号按钮。Vint用来记录当前题目编号,Flrd是单击左侧按钮题号的value值。

def fnTitle(Tf):
#用来决定按钮是“向前一条记录还是后一条记录
        i=Vint.get()
        if Tf==0:
                if i>0:
                        i=i-1
        if Tf==1:
                if i<stM
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值