一、编程题目
编程题目:使用python实现背单词功能,单词本存放在txt文件中,最后统计出回答的正确题数和错误题数。
单词本的内容如下:
danciben.txt内容如下(按照格式,可自行定义单词本的内容):
wind n.胸口,心窝 convey vt.传达;传播;转让 correctly ad.正确地,恰当地 clap n.拍手喝采声;霹雳声 coin vt.铸造(硬币) popularity n.通俗性;普及,流行 abbreviation n.节略,缩写,缩短 abide vt.遵守;vt.忍受 abolish vt.废除,取消 absent a.不在意的 absorption n.吸收;专注
二、代码实现
1、导入random模块,用于将单词本的内容打乱:
import random
2 、读取danciben.txt文件中的单词,然后使用random打乱单词的顺序:
with open("danciben.txt", 'r', encoding='utf8') as worldFile:
world_list = worldFile.readlines()
# 使用random.shuffle函数将单词列表打乱
random.shuffle(world_list)
3、定义两个变量count_success 和count_erroe用于统计回答的正确和错误的数量,循环单词本,使用split切分出英文单词和中文释义
count_success = 0
count_error = 0
for index in world_list:
w = index.split(" ")[0]
c = index.split(" ")[1]
c = c.replace('\n','')
c = c[c.index('.')+1:]
if ',' in c:
c = c.split(',')
elif ';' in c:
c = c.split(';')
else:
c = [c]
注意解析出来的中文意思并不能完全符合要求,因为一个单词可能有多个中文意思,需要进一步解析出来,通过replace把换行符删掉,然后切分出多个中文释义。
4、设置count,统计回答的次数,每个单词有3次回答机会,如果回答正确,正确数+1,如果回答不正确且回答次数小于3则可以再次回答,如果回答了3次还是错误,则错误数+1
count = 1
flag = True
while flag:
en = input(str(w) + "的汉语意思:")
if en in c:
print("恭喜答对")
count_success += 1
flag = False
else:
print("答错了,还有" + str(3 - count) + "次机会:")
count = count + 1
if count>3:
flag = False
因为一个单词可能有多个中文释义,所以上面判断回答是否正确,使用In进行判断。其次,while else结构,表示如果
5、最后当单词本中所有的单词都背完后,输出回答正确和错误的数量分别是多少:
print("您已经完成了单词本里的全部单词")
print("您共答题" + str(len(world_list)) + "道,答对" + str(count_success) + '题,答错' + str(count_error) + '题,继续加油哦!')
6、最后全部代码如下:
import random
with open("danciben.txt", 'r', encoding='utf8') as worldFile:
world_list = worldFile.readlines()
# 使用random.shuffle函数将单词列表打乱
random.shuffle(world_list)
count_success = 0
count_error = 0
for index in world_list:
w = index.split(" ")[0]
c = index.split(" ")[1]
c = c.replace('\n','')
c = c[c.index('.')+1:]
if ',' in c:
c = c.split(',')
elif ';' in c:
c = c.split(';')
else:
c = [c]
count = 1
flag = True
while flag:
en = input(str(w) + "的汉语意思:")
if en in c:
print("恭喜答对")
count_success += 1
flag = False
else:
print("答错了,还有" + str(3 - count) + "次机会:")
count = count + 1
if count>3:
flag = False
count_error = len(world_list)-count_success
print("您已经完成了单词本里的全部单词")
print("您共答题" + str(len(world_list)) + "道,答对" + str(count_success) + '题,答错' + str(count_error) + '题,继续加油哦!')
三、测试