日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python刷题软件代码_Python使用docx模块实现刷题功能代码

發布時間:2025/4/16 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python刷题软件代码_Python使用docx模块实现刷题功能代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

起由:

前一陣子想要刷一刷國二Python的題庫,千方百計找到題庫之后,打開一個個word文檔,發現一題一題閱讀很麻煩,而且答案就在題目的下面,閱讀題目的時候想自己做出題目卻又總能不經意看到答案,甚煩!遂開始敲代碼,我要一題一題做,還不能看見答案。

著手:

word文檔是這樣的:

觀察word內容,每道題目的題目內容和題目答案都是一樣的格式,包括縮進、字體等等,那么就可以使用Python對文件的讀操作,瀏覽文檔的內容,在適當的內容區域設置輸入,將輸入與答案進行判斷是否相等,即可實現簡單的刷題功能。

Python默認不支持直接打開doc文件并讀寫,但是可以打開docx文件,但是docx文件必須是經過Word程序制作或轉換而來的。如果文件太多,一個一個手動轉化太麻煩,就要使用程序對文件批量轉化,使用win32com模塊可以使用此功能。

話不多說,放碼!(部分思路在代碼中注釋):

首先批量將doc轉化為Python能夠打開并讀寫的docx文檔:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# File : 批量將doc轉換為docx.py

# Author: roohom

# Date : 2018/9/17 0017

'''

使用Word批量將doc轉化為docx

- 調用win32com,打開Word應用程序

- 打開doc

- 保存成docx

- 關閉word

- 轉入下一個doc并重復上述操作

'''

from win32com import client as wc

def doSaveAas():

word = wc.Dispatch('Word.Application')

#延時5秒鐘,防止由于系統配置原因還沒打開Word就進行下一步程序

#time.sleep(5)

doc = word.Documents.Open(r'{0}'.format(word_name)) # 目標路徑下的文件

doc.SaveAs(r'{0}'.format(word_docx_name), 16) # 轉化后路徑下的文件,16表示docx格式

doc.Close()

word.Quit()

if __name__ == '__main__':

k = 1

i = 3

j = 3

while True:

word_name = "D:\學習區\Python\python二級考試試題\選擇題\python二級考試試題{0}.doc".format(i)

word_docx_name = "D:\學習區\Python\python二級考試試題\選擇題\python二級考試試題{0}".format(j)

doSaveAas()

i += 1

j += 1

print("已完成{0}個word從doc到docx的轉換".format(k))

k += 1

結果是這個樣子的:

再進行我們的正題,開始刷題:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# File : MyDemo.py

# Author: roohom

# Date : 2018/9/17 0017

'''

刷題腳本

- python對文件讀寫等操作的強大功能

- 使用docx模塊對docx文檔進行讀寫

- python不支持直接打開并讀取word文檔,因此需要使用方法將doc轉化為docx,方法詳見doc_to_docx.py

- 原理

- 打開經轉化后的docx文檔,并逐行讀文件內容

- 判斷是否讀到“正確內容”語句

- 是,設置用戶輸入,提示輸入用戶的答案

- 否,繼續讀操作

- 比較用戶的答案與正確答案是否一樣

- 是,輸出正確提示

- 否,輸出錯誤提示

- 繼續下一題,重復上述操作

- 拓展延伸

- 可以在程序主入口處設置用戶輸入,輸入用戶想要打開的路徑、文件,程序根據文件名、路徑等進行上述操作

- 可以根據用戶輸入情況設置加分減分,并根據全部答案情況,分析錯誤題目,后續將錯題重修整理收集,反饋給用戶

'''

import docx

'''

字符串比較的一種麻煩方法:

def comparison(a, b):

ib=0

for ia in range(len(a)):

if ord(a[ia:ia+1])-ord(b[ib:ib+1])==0:

ib=ib+1

if ib==len(b):

print('你的答案正確!')

else:

print('你的答案錯誤!')

break

'''

def comparison(a, b):

if a == b :

print("你的答案正確!")

else:

print("你的答案錯誤!")

if __name__ == '__main__':

file = docx.Document(r"D:\學習區\Python\python二級考試試題\選擇題\python二級考試試題01.docx")

print("==================全國計算機二級考試之Python刷題==================")

for p in file.paragraphs:

m = p.text

if "正確答案: " in m:

ans = input("請輸入你的答案:")

a = "正確答案: {0} ".format(ans)

print(a)

b = m

print(b)

comparison(a, b)

print()

print("==================全國計算機二級考試之Python刷題==================")

else:

print(m)

結果是這個樣子的:

以上這篇Python使用docx模塊實現刷題功能代碼就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持我們。

時間: 2020-02-13

總結

以上是生活随笔為你收集整理的python刷题软件代码_Python使用docx模块实现刷题功能代码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。