Rumah applet WeChat Pembangunan program mini 小程序开发试题库找答案功能

小程序开发试题库找答案功能

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()
Salin selepas log masuk

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

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

= _winreg.QueryValueEx(key, )[0]
Salin selepas log masuk

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

    xlsfile = xlrd.open_workbook(get_desktop()+'\\exercise.xls')
    mysheet = xlsfile.sheet_by_name('1')
Salin selepas log masuk

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

if(q != getText()):
            q=getText()        else:
            time.sleep(1)            continue
Salin selepas log masuk

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

 row (re.search(+q.decode()+, mysheet.cell(row,0).value)!== 1                 +mysheet.cell(row,77= mysheet.cell(row,7
Salin selepas log masuk

这里为什么要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
Salin selepas log masuk

    几点说明:

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

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

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

         因为很重要所以说三遍

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

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

【相关推荐】

1. 微信小程序源码下载

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

Atas ialah kandungan terperinci 小程序开发试题库找答案功能. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pengurusan kebenaran PHP dan tetapan peranan pengguna dalam pembangunan program mini Pengurusan kebenaran PHP dan tetapan peranan pengguna dalam pembangunan program mini Jul 04, 2023 pm 04:48 PM

Pengurusan kebenaran PHP dan penetapan peranan pengguna dalam pembangunan program mini Dengan populariti program mini dan pengembangan skop aplikasi mereka, pengguna telah mengemukakan keperluan yang lebih tinggi untuk fungsi dan keselamatan program mini Antaranya, pengurusan kebenaran dan penetapan peranan pengguna adalah Bahagian penting dalam memastikan keselamatan program mini. Menggunakan PHP untuk pengurusan kebenaran dan tetapan peranan pengguna dalam program mini boleh melindungi data dan privasi pengguna dengan berkesan Perkara berikut akan memperkenalkan cara melaksanakan fungsi ini. 1. Pelaksanaan Pengurusan Kebenaran Pengurusan kebenaran merujuk kepada pemberian kebenaran operasi yang berbeza berdasarkan identiti dan peranan pengguna. dalam kecil

PHP lompat halaman dan pengurusan penghalaan dalam pembangunan program mini PHP lompat halaman dan pengurusan penghalaan dalam pembangunan program mini Jul 04, 2023 pm 01:15 PM

Lonjakan halaman PHP dan pengurusan penghalaan dalam pembangunan program mini Dengan perkembangan pesat program mini, semakin ramai pembangun mula menggabungkan PHP dengan pembangunan program mini. Dalam pembangunan program kecil, lompat halaman dan pengurusan penghalaan adalah bahagian yang sangat penting, yang boleh membantu pembangun mencapai operasi penukaran dan navigasi antara halaman. Sebagai bahasa pengaturcaraan sebelah pelayan yang biasa digunakan, PHP boleh berinteraksi dengan baik dengan program mini dan memindahkan data Mari kita lihat secara terperinci lompatan halaman PHP dan pengurusan penghalaan dalam program mini. 1. Pangkalan lompat halaman

Bagaimana untuk melaksanakan pembangunan dan penerbitan program kecil dalam uniapp Bagaimana untuk melaksanakan pembangunan dan penerbitan program kecil dalam uniapp Oct 20, 2023 am 11:33 AM

Bagaimana untuk membangunkan dan menerbitkan program mini dalam aplikasi uni Dengan pembangunan Internet mudah alih, program mini telah menjadi hala tuju penting dalam pembangunan aplikasi mudah alih. Sebagai rangka kerja pembangunan merentas platform, aplikasi uni boleh menyokong pembangunan berbilang platform program kecil pada masa yang sama, seperti WeChat, Alipay, Baidu, dll. Yang berikut akan memperkenalkan secara terperinci cara menggunakan apl uni untuk membangun dan menerbitkan program kecil, dan menyediakan beberapa contoh kod khusus. 1. Persediaan sebelum membangunkan program kecil Sebelum anda mula menggunakan uni-app untuk membangunkan program kecil, anda perlu melakukan beberapa persediaan.

Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini Jul 07, 2023 am 08:55 AM

Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini Dengan perkembangan pesat Internet mudah alih, program mini telah menjadi bahagian penting dalam kehidupan orang ramai. Sebagai bahasa pembangunan back-end yang berkuasa dan fleksibel, PHP juga digunakan secara meluas dalam pembangunan program kecil. Walau bagaimanapun, isu keselamatan sentiasa menjadi aspek yang memerlukan perhatian dalam pembangunan program. Artikel ini akan menumpukan pada perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program kecil, dan menyediakan beberapa contoh kod. XSS (serangan skrip merentas tapak) menghalang serangan XSS apabila penggodam menyuntik skrip berniat jahat ke dalam halaman web

Caching data PHP dan strategi caching dalam pembangunan program kecil Caching data PHP dan strategi caching dalam pembangunan program kecil Jul 05, 2023 pm 02:57 PM

Strategi caching dan caching data PHP dalam pembangunan program mini Dengan perkembangan pesat program mini, lebih ramai pembangun mula memberi perhatian kepada cara meningkatkan prestasi dan kelajuan tindak balas program mini. Salah satu kaedah pengoptimuman penting ialah menggunakan caching data untuk mengurangkan akses kerap kepada pangkalan data dan antara muka luaran. Dalam PHP, kita boleh menggunakan pelbagai strategi caching untuk melaksanakan caching data. Artikel ini akan memperkenalkan prinsip caching data dalam PHP dan menyediakan kod sampel untuk beberapa strategi caching biasa. 1. Prinsip caching data Caching data merujuk kepada menyimpan data dalam ingatan kepada

Kaedah pelaksanaan menu lungsur yang dibangunkan dalam PHP dalam applet WeChat Kaedah pelaksanaan menu lungsur yang dibangunkan dalam PHP dalam applet WeChat Jun 04, 2023 am 10:31 AM

Hari ini kita akan belajar bagaimana untuk melaksanakan menu lungsur yang dibangunkan dalam PHP dalam applet WeChat. Program mini WeChat ialah aplikasi ringan yang boleh digunakan pengguna terus dalam WeChat tanpa memuat turun dan memasang, yang sangat mudah. PHP ialah bahasa pengaturcaraan bahagian belakang yang sangat popular, dan ia juga merupakan bahasa yang berfungsi dengan baik dengan program mini WeChat. Mari kita lihat cara menggunakan PHP untuk membangunkan menu lungsur dalam program mini WeChat. Pertama, kita perlu menyediakan persekitaran pembangunan, termasuk PHP, alat pembangunan applet WeChat dan pelayan. kemudian kita

Kesan animasi halaman PHP dan reka bentuk interaksi dalam pembangunan program mini Kesan animasi halaman PHP dan reka bentuk interaksi dalam pembangunan program mini Jul 04, 2023 pm 11:01 PM

Pengenalan kepada kesan animasi halaman PHP dan reka bentuk interaksi dalam pembangunan program mini: Program mini ialah aplikasi yang berjalan pada peranti mudah alih dan boleh memberikan pengalaman yang serupa dengan aplikasi asli. Dalam pembangunan program mini, PHP, sebagai bahasa back-end yang biasa digunakan, boleh menambah kesan animasi dan reka bentuk interaktif ke halaman program mini. Artikel ini akan memperkenalkan beberapa kesan animasi halaman PHP yang biasa digunakan dan reka bentuk interaksi, dan melampirkan contoh kod. 1. Animasi CSS3 CSS3 menyediakan banyak sifat dan kaedah untuk mencapai pelbagai kesan animasi. Dan dalam kecil

UniApp melaksanakan analisis proses pembangunan dan pelancaran program mini ByteDance UniApp melaksanakan analisis proses pembangunan dan pelancaran program mini ByteDance Jul 06, 2023 pm 05:01 PM

Analisis proses pembangunan dan pelancaran applet ByteDance yang dilaksanakan oleh UniApp Sebagai kaedah pembangunan aplikasi mudah alih yang baru muncul, applet ByteDance secara beransur-ansur menjadi popular dalam industri. Sebelum membangunkan program mini Bytedance, kita perlu memahami cara menggunakan UniApp untuk melaksanakan proses pembangunan dan pelancaran. 1. Pengenalan kepada UniApp UniApp ialah rangka kerja yang dibangunkan berdasarkan Vue.js yang menggunakan HTML5, App dan program kecil sebagai rangka kerja pembangunan bersatu untuk berbilang terminal Dengan menulis satu set kod, ia boleh dijalankan pada berbilang platform pada masa yang sama , termasuk fon.

See all articles