


Mini-Programmentwicklungstest-Fragenbank-Antwortfunktion
期末考试考完无聊在刷试题库。然后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()
网上搜的函数,实现得到剪贴板的内容和设置剪贴板的内容.
读取放在桌面的excel文件,又度娘了一下通过注册表得到桌面的位置
= _winreg.QueryValueEx(key, )[0]
之后通过xlrd库的函数打开.xls文件并选中sheet
xlsfile = xlrd.open_workbook(get_desktop()+'\\exercise.xls') mysheet = xlsfile.sheet_by_name('1')
然后需要实现监视剪贴板的功能。监听器这种东西太麻烦我是不会干的,所以每隔1s检查剪贴板的内容是否变化。
if(q != getText()): q=getText() else: time.sleep(1) continue
得到剪贴板里的内容后,用正则表达式匹配题目,如果匹配成功就输出答案。这里涉及编码问题,我也不知道为什么这样写,反正是实现了。。。
row (re.search(+q.decode()+, mysheet.cell(row,0).value)!== 1 +mysheet.cell(row,77= mysheet.cell(row,7
这里为什么要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
几点说明:
1、使用的电脑上必须有excel,不能是WPS,因为连接的库是对excel操作的
使用的电脑上必须有excel,不能是WPS,因为连接的库是对excel操作的
使用的电脑上必须有excel,不能是WPS,因为连接的库是对excel操作的
因为很重要所以说三遍
2、遇到这种情况,没出现题目,别慌,Answer还是可信的,这是python编码的问题= =并不知道怎么解决。。
3、测试了600题,解决了好多BUG,应该不会出现用到一半出错的情况。附上测试结果(测试时再吃饭,不免手抖。。)
【相关推荐】
1. 微信小程序源码下载
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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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

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 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 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 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

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

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

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.
