Heim WeChat-Applet Mini-Programmentwicklung Mini-Programmentwicklungstest-Fragenbank-Antwortfunktion

Mini-Programmentwicklungstest-Fragenbank-Antwortfunktion

May 06, 2017 am 11:20 AM

    期末考试考完无聊在刷试题库。然后CY来我寝室,提醒我可以搞个自动在excel里找答案的程序,他给了思路之后就马上开始动工。

    所谓带有我们学校特色的试题库就是下载excel表格,作业和考试题都在网页上,我们要在excel里找答案。把这个过程理了一下,程序主要实现以下功能:

    1、监视剪贴板的变化;

    2、如果检测到剪贴板内容变化,则根据剪贴板里的内容,利用正则表达式在试题库的题目里找到第一个最匹配的题目;

    3、在控制台输出答案。

    考虑到python有丰富的库,要连接到excel或者监视剪贴板不是什么麻烦事。于是选用python开发。

    xlrd用来实现读取excel文件,pythonwin用来监视剪贴板。

def getText(): 
    w.OpenClipboard() 
    d = w.GetClipboardData(win32con.CF_TEXT) 
    w.CloseClipboard() 
    return d  

def setText(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_TEXT, aString)
    w.CloseClipboard()
Nach dem Login kopieren

网上搜的函数,实现得到剪贴板的内容和设置剪贴板的内容.

读取放在桌面的excel文件,又度娘了一下通过注册表得到桌面的位置

= _winreg.QueryValueEx(key, )[0]
Nach dem Login kopieren

之后通过xlrd库的函数打开.xls文件并选中sheet

    xlsfile = xlrd.open_workbook(get_desktop()+'\\exercise.xls')
    mysheet = xlsfile.sheet_by_name('1')
Nach dem Login kopieren

然后需要实现监视剪贴板的功能。监听器这种东西太麻烦我是不会干的,所以每隔1s检查剪贴板的内容是否变化。

if(q != getText()):
            q=getText()        else:
            time.sleep(1)            continue
Nach dem Login kopieren

得到剪贴板里的内容后,用正则表达式匹配题目,如果匹配成功就输出答案。这里涉及编码问题,我也不知道为什么这样写,反正是实现了。。。

 row (re.search(+q.decode()+, mysheet.cell(row,0).value)!== 1                 +mysheet.cell(row,77= mysheet.cell(row,7
Nach dem Login kopieren

这里为什么要setText(mysheet.cell(row,7).value)呐,因为考试时候鼠标是不能离开浏览器的,把cmd明目张胆的放在一遍也不好,所以把搜索的答案放到剪贴板里,这样把cmd最小化就行了,把答案赋值给q防止q != getText()对答案再进行匹配,嘿嘿嘿。。。

试题库的题型可能有三种:单选题,多选题和判断题,是分在三个sheet里的,如果题目在某个sheet中没找到就换另外的sheet匹配题目。附上完整代码:

#coding=utf-8try:    import xlrd    import win32clipboard as w    import win32con    import re    import time    import os    import _winregexcept Exception,e:    print edef getText(): 
    w.OpenClipboard() 
    d = w.GetClipboardData(win32con.CF_TEXT) 
    w.CloseClipboard() 
    return d  

def setText(aString):
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_TEXT, aString)
    w.CloseClipboard()try:    def get_desktop():        try:
            key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,
                                  r'Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders')            return _winreg.QueryValueEx(key, "Desktop")[0]        except Exception,e:            print eexcept Exception,e1:    print e1try:
    xlsfile = xlrd.open_workbook(get_desktop()+'\\exercise.xls')except Exception,e:    print e    
try:
    mysheet = xlsfile.sheet_by_name('1')except Exception,e:    print e'''try:
    print('%d rows, %d cols'%(mysheet.nrows, mysheet.ncols))
except Exception,e:
    print e'''q = ''try:    while(1):        if(q != getText()):
            q=getText()        else:
            time.sleep(1)            continue
        flag = 0        for row in range(mysheet.nrows):            if(re.search('.*'+q.decode('gb2312')+'.*', mysheet.cell(row,0).value)!=None):
                os.system('cls')
                flag = 1                try:                    print mysheet.cell(row,0).value                except Exception,e:                    print e                print 'Answer: '+mysheet.cell(row,7).value
                setText(mysheet.cell(row,7).value)
                q = mysheet.cell(row,7).value                break
        if(flag == 0):
            tsheet = xlsfile.sheet_by_name('2')            for row in range(tsheet.nrows):                if(re.search('.*'+q.decode('gb2312')+'.*', tsheet.cell(row,0).value)!=None):
                    os.system('cls')
                    flag = 1                    try:                        print tsheet.cell(row,0).value                    except Exception,e:                        print e                    print 'Answer: '+tsheet.cell(row,2).value
                    setText(tsheet.cell(row,2).value.encode('gb2312'))
                    q = tsheet.cell(row,2).value.encode('gb2312')                    break
        if(flag == 0):
            tsheet = xlsfile.sheet_by_name('3')            for row in range(tsheet.nrows):                if(re.search('.*'+q.decode('gb2312')+'.*', tsheet.cell(row,0).value)!=None):
                    os.system('cls')
                    flag = 1                    try:                        print tsheet.cell(row,0).value                    except Exception,e:                        print e                    print 'Answer: '+tsheet.cell(row,7).value
                    setText(tsheet.cell(row,7).value.encode('gb2312'))
                    q = tsheet.cell(row,7).value.encode('gb2312')except Exception, e:    print EmptyClipboard
Nach dem Login kopieren

    几点说明:

    1、使用的电脑上必须有excel,不能是WPS,因为连接的库是对excel操作的

         使用的电脑上必须有excel,不能是WPS,因为连接的库是对excel操作的

         使用的电脑上必须有excel,不能是WPS,因为连接的库是对excel操作的

         因为很重要所以说三遍

    2、遇到这种情况,没出现题目,别慌,Answer还是可信的,这是python编码的问题= =并不知道怎么解决。。

    3、测试了600题,解决了好多BUG,应该不会出现用到一半出错的情况。附上测试结果(测试时再吃饭,不免手抖。。)

【相关推荐】

1. 微信小程序源码下载

2. 微信小程序demo:仿商城

Das obige ist der detaillierte Inhalt vonMini-Programmentwicklungstest-Fragenbank-Antwortfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP-Berechtigungsverwaltung und Benutzerrolleneinstellung bei der Entwicklung von Miniprogrammen PHP-Berechtigungsverwaltung und Benutzerrolleneinstellung bei der Entwicklung von Miniprogrammen Jul 04, 2023 pm 04:48 PM

PHP-Berechtigungsverwaltung und Benutzerrolleneinstellung bei der Entwicklung von Miniprogrammen. Mit der Beliebtheit von Miniprogrammen und der Erweiterung ihres Anwendungsbereichs stellen Benutzer höhere Anforderungen an die Funktionen und Sicherheit von Miniprogrammen sind ein wichtiger Teil der Gewährleistung der Sicherheit von Miniprogrammen. Durch die Verwendung von PHP zur Berechtigungsverwaltung und Benutzerrolleneinstellung in Miniprogrammen können Benutzerdaten und Privatsphäre wirksam geschützt werden. Im Folgenden wird erläutert, wie diese Funktion implementiert wird. 1. Implementierung des Berechtigungsmanagements Unter Berechtigungsmanagement versteht man die Gewährung unterschiedlicher Betriebsberechtigungen basierend auf der Identität und Rolle des Benutzers. in klein

PHP-Seitensprung- und Routing-Management in der Miniprogrammentwicklung PHP-Seitensprung- und Routing-Management in der Miniprogrammentwicklung Jul 04, 2023 pm 01:15 PM

PHPs Seitensprung- und Routing-Management bei der Entwicklung von Miniprogrammen Mit der rasanten Entwicklung von Miniprogrammen beginnen immer mehr Entwickler, PHP mit der Entwicklung von Miniprogrammen zu kombinieren. Bei der Entwicklung kleiner Programme sind Seitensprung und Routing-Management sehr wichtige Teile, die Entwicklern dabei helfen können, Umschalt- und Navigationsvorgänge zwischen Seiten zu erreichen. Als häufig verwendete serverseitige Programmiersprache kann PHP gut mit Miniprogrammen interagieren und Daten übertragen. Werfen wir einen detaillierten Blick auf die Seitensprung- und Routing-Verwaltung von PHP in Miniprogrammen. 1. Seitensprungbasis

So implementieren Sie die Entwicklung und Veröffentlichung kleiner Programme in Uniapp So implementieren Sie die Entwicklung und Veröffentlichung kleiner Programme in Uniapp Oct 20, 2023 am 11:33 AM

So entwickeln und veröffentlichen Sie Miniprogramme in Uni-App Mit der Entwicklung des mobilen Internets sind Miniprogramme zu einer wichtigen Richtung in der Entwicklung mobiler Anwendungen geworden. Als plattformübergreifendes Entwicklungsframework kann Uni-App die gleichzeitige Entwicklung mehrerer kleiner Programmplattformen wie WeChat, Alipay, Baidu usw. unterstützen. Im Folgenden wird detailliert beschrieben, wie Sie mit Uni-App kleine Programme entwickeln und veröffentlichen, und es werden einige spezifische Codebeispiele bereitgestellt. 1. Vorbereitung vor der Entwicklung kleiner Programme Bevor Sie mit der Entwicklung kleiner Programme mit uni-app beginnen, müssen Sie einige Vorbereitungen treffen.

PHP-Sicherheitsschutz und Angriffsprävention bei der Entwicklung von Miniprogrammen PHP-Sicherheitsschutz und Angriffsprävention bei der Entwicklung von Miniprogrammen Jul 07, 2023 am 08:55 AM

PHP-Sicherheitsschutz und Angriffsprävention bei der Entwicklung von Miniprogrammen Mit der rasanten Entwicklung des mobilen Internets sind Miniprogramme zu einem wichtigen Bestandteil des Lebens der Menschen geworden. Als leistungsstarke und flexible Backend-Entwicklungssprache wird PHP auch häufig bei der Entwicklung kleiner Programme eingesetzt. Allerdings waren Sicherheitsfragen schon immer ein Aspekt, der bei der Programmentwicklung berücksichtigt werden muss. Dieser Artikel konzentriert sich auf den PHP-Sicherheitsschutz und die Angriffsprävention bei der Entwicklung von Miniprogrammen und stellt einige Codebeispiele bereit. XSS (Cross-Site-Scripting-Angriff) verhindert XSS-Angriffe, wenn Hacker bösartige Skripte in Webseiten einschleusen

PHP-Daten-Caching und Caching-Strategien in der Entwicklung kleiner Programme PHP-Daten-Caching und Caching-Strategien in der Entwicklung kleiner Programme Jul 05, 2023 pm 02:57 PM

PHP-Daten-Caching und Caching-Strategien bei der Entwicklung von Miniprogrammen Mit der rasanten Entwicklung von Miniprogrammen achten immer mehr Entwickler darauf, wie sie die Leistung und Reaktionsgeschwindigkeit von Miniprogrammen verbessern können. Eine der wichtigen Optimierungsmethoden besteht darin, durch Daten-Caching häufige Zugriffe auf die Datenbank und externe Schnittstellen zu reduzieren. In PHP können wir verschiedene Caching-Strategien verwenden, um das Daten-Caching zu implementieren. In diesem Artikel werden die Prinzipien des Daten-Caching in PHP vorgestellt und Beispielcodes für mehrere gängige Caching-Strategien bereitgestellt. 1. Daten-Caching-Prinzip Daten-Caching bezieht sich auf das Speichern von Daten im Speicher

Implementierungsmethode des in PHP entwickelten Dropdown-Menüs im WeChat-Applet Implementierungsmethode des in PHP entwickelten Dropdown-Menüs im WeChat-Applet Jun 04, 2023 am 10:31 AM

Heute lernen wir, wie man das in PHP entwickelte Dropdown-Menü im WeChat-Applet implementiert. Das WeChat-Applet ist eine leichte Anwendung, die Benutzer direkt in WeChat verwenden können, ohne sie herunterladen und installieren zu müssen, was sehr praktisch ist. PHP ist eine sehr beliebte Back-End-Programmiersprache und eine Sprache, die gut mit WeChat-Miniprogrammen funktioniert. Werfen wir einen Blick darauf, wie man mit PHP Dropdown-Menüs in WeChat-Miniprogrammen entwickelt. Zuerst müssen wir die Entwicklungsumgebung vorbereiten, einschließlich PHP, WeChat-Applet-Entwicklungstools und Server. dann wir

PHP-Seitenanimationseffekte und Interaktionsdesign in der Miniprogrammentwicklung PHP-Seitenanimationseffekte und Interaktionsdesign in der Miniprogrammentwicklung Jul 04, 2023 pm 11:01 PM

Einführung in PHP-Seitenanimationseffekte und Interaktionsdesign bei der Entwicklung von Miniprogrammen: Ein Miniprogramm ist eine Anwendung, die auf einem mobilen Gerät ausgeführt wird und ein ähnliches Erlebnis wie native Anwendungen bieten kann. Bei der Entwicklung von Miniprogrammen kann PHP als häufig verwendete Back-End-Sprache Miniprogrammseiten Animationseffekte und interaktives Design hinzufügen. In diesem Artikel werden einige häufig verwendete PHP-Seitenanimationseffekte und Interaktionsdesigns vorgestellt und Codebeispiele angehängt. 1. CSS3-Animation CSS3 bietet eine Fülle von Eigenschaften und Methoden zur Erzielung verschiedener Animationseffekte. Und zwar im Kleinen

UniApp implementiert eine Analyse des Entwicklungs- und Startprozesses von ByteDance-Miniprogrammen UniApp implementiert eine Analyse des Entwicklungs- und Startprozesses von ByteDance-Miniprogrammen Jul 06, 2023 pm 05:01 PM

Analyse des Entwicklungs- und Einführungsprozesses von ByteDance-Applets, die von UniApp implementiert werden. Als aufstrebende Methode zur Entwicklung mobiler Anwendungen erfreuen sich ByteDance-Applets in der Branche zunehmender Beliebtheit. Bevor wir das Bytedance-Miniprogramm entwickeln, müssen wir verstehen, wie UniApp zur Implementierung des Entwicklungs- und Startprozesses verwendet wird. 1. Einführung in UniApp UniApp ist ein auf Vue.js basierendes Framework, das HTML5, App und kleine Programme als einheitliches Entwicklungsframework für mehrere Terminals verwendet. Durch das Schreiben eines Codesatzes kann es auf mehreren Plattformen gleichzeitig ausgeführt werden , einschließlich Schriftarten.

See all articles