复习古文默写用
from random import choice
import random
def check(txt):#校验
a=0
b=0
for i in txt:
if i =="[":
a+=1
if i =="]":
b+=1
if a == b:
return True
else:
return False
def ans(txt):#找出答案
an=""
flag = False
for i in range(len(txt)):
t = txt[i]
if t =="[":
flag = True
elif t == "]":
flag = False
elif flag == True:
an = an + t
return an
def que(txt):#找出题目
q = ""
flag = True
for i in range(len(txt)):
t = txt[i]
if t == "[":
flag = False
elif t == "]":
flag = True
else:
if flag == True:
q = q + t
else:
q = q + " __"
return q
def fuxi(txt):
qu = que(txt)
anss = ans(txt)
answer = input(qu+"\n")
if answer == anss:
print("Bingo!")
print("--------------------------")
else:
list_wrong.append(txt)
print("Oops!答错了,正确答案是:",end="")
print(anss)
print("--------------------------")
if __name__ == "__main__":
list_wrong=[]
result = []
list_fuxi = []
#读取
with open('sample.txt', 'r') as f:
for line in f:
if check(line):
result.append(list(line.strip('\n').split(',')))
else:
print("error!")
print(line)
n = int(input("你要复习几个?\n"))
if n > len(result):
print("数目过多,转化为最大个数:"+str(len(result))+"个")
n = len(result)
print("--------------------------")
#随机生成复习列表
list_fuxi = random.sample(result, n)
for i in list_fuxi:
fuxi(i[0])
print("恭喜,完成练习!")
print("本次错题:")
for i in list_wrong:
print(i,end=" , ")
txt格式如:
所以传道[受]业解惑也
一行一句 , 中括号内为要检测的内容
默认txt名称为“sample.txt”
效果如下(结合触控板使用手写输入体验更佳)

495

被折叠的 条评论
为什么被折叠?



