import random
D = {
'uw': 'opportunity chance。senior citizens old-people。influence, impact effect', # 示例1:英语词汇升级
'zc': '度 一夜飞()镜湖月,猿猱欲()愁攀援。洲、渡 楼船夜雪瓜()()。箫 乘醉听()鼓,凤()声动', # 示例2:名篇名句默写易混字词辨析
}
t1 = ['uw'] # 示例:属于type1的背诵条目
nameL = input('name(sep with ","): ').split(',')
sep = input('type if not separate: ')
sentL1 = []
sentL = []
type1 = False
type2 = False
for name in nameL:
sentL1 += D[name].split('。')
if name in t1:
type1 = True
else:
type2 = True
if type1 == True and type2 == False:
for sent1 in sentL1:
sent1L = sent1.split()
sent1Leng = ' '.join(sent1L[:-1])
sent1Lchi = sent1L[-1]
sentL.append([sent1Lchi, sent1Leng])
elif type1 == False and type2 == True:
for sent1 in sentL1:
sent1L = sent1.split()
sent1Leng = sent1L[0]
if sep == '':
sent1LchiL = ' '.join(sent1L[1:]).split(',')
for sent1Lchi in sent1LchiL:
sentL.append([sent1Lchi, sent1Leng])
else:
sent1Lchi = ' '.join(sent1L[1:])
sentL.append([sent1Lchi, sent1Leng])
else:
raise TypeError('You cannot use both types at a time.')
num = len(sentL)
print('total number: ' + str(num))
random.shuffle(sentL)
for sent in sentL:
input(str(num) + '>>> ' + sent[0])
print(sent[1])
num -= 1
如果你希望能在手机上随时运行这段代码,可以下载QPython程序,点击“Editor”,把上述代码复制进去并保存,即可运行。下面具体说明如何把一段问答式记忆材料植入该程序中。
首先,一段背诵材料的格式是这样的:
'名称': '答案1 问题1。答案2 问题2。答案3 问题3……',
其中,第一个引号内是这一段材料的名称,第二个引号内是问题和答案。每个问题和答案为一组,用中文句号分隔,并且最后一组末尾无需再加句号。每一组内,先答案后问题,两者之间用一个空格分隔。最后,勿忘在最后(引号外)加一个英文逗号。需要注意的是,无论是名称还是问题和答案中都不能出现引号'
,而要替换为’
,防止造成冲突。例如,I'm
就应该更改为’
。任意两段材料的名称都不能相同。
假如你有这样一段名为“uw”(英语词汇升级)的材料需要背诵:
chance -> oppportunity
old people -> senior citizens
effect -> influence, impact
你希望达到的目的是程序随机给出左侧的低级词汇,你看着低级词汇背出高级词汇,再让程序一次性呈现出该词对应的所有高级词汇,来检测你的记忆是否准确。注意到左侧的“问题”和右侧的“答案”是一一对应的,并且答案部分的空格较多,在这样的情况下,这段材料可以归为Type1。在Type1中,答案允许出现空格,但问题中不允许出现空格,因为程序是把每个答案-问题组中最后一个空格识别为分隔符的。因此,必须把“old people”中的空格改成其他替代字符,如:“old-people”。
最终呈现出的样式是这样的:
'uw': 'opportunity chance。senior citizens old-people。influence, impact effect',
之后,把这段文字插入到程序的D
字典中,再把名称“uw”加入到t1
列表中。
假如你有这样一段名为“zc”(名篇名句默写易混字词辨析)的材料需要背诵:
一夜飞()镜湖月 -> 度
猿猱欲()愁攀援 -> 度
楼船夜雪瓜()() -> 洲、渡
乘醉听()鼓 -> 箫
凤()声动 -> 箫
你希望达到的目的仍然是看着左侧的提示背出右侧的易混字。注意到右侧的易混字(即答案)中不含空格,并且问题与答案并非一一对应的,而是有多个问题共同指向同一个答案(如前两句的答案都是“度”),在这样的情况下,可以使用Type2。这段文字可以改成:
'zc': '度 一夜飞()镜湖月,猿猱欲()愁攀援。洲、渡 楼船夜雪瓜()()。箫 乘醉听()鼓,凤()声动',
其中,答案相同的问题被合并了,多个问题之间用一个中文逗号分隔。在运行时,程序会以中文逗号作为问题的分隔符,形成多个答案-问题组,因此,在这样的问题中,不允许出现中文逗号,
,可以替换为顿号等其他字符。
假如你不需要多个问题对应一个答案,那么中文逗号并不需要被替换,后续会有说明。
之后,你只需把这段文字插入到程序的D
字典中,并不需要把名称加入到t1
列表中。
当你把要背诵的材料按照如上方式插入程序后,点击运行,即可看到如下内容:
name(sep with ","):
这时,需输入你需要背诵的材料的名称。你也可以一起背诵多则材料,只需用英文逗号(没有空格)将不同名称分隔开。注意,一起背诵的材料必须属于同一个类别,即全是Type1或全是Type2。
例如,在此输入了“zc”。输入完毕后,点击回车键,你会看到如下问题:
type if not separate:
假如你要背诵的材料是Type1的,那么请直接按回车;假如是Type2的,那么如果你采取的是多个问题对应一个答案的模式,也请直接按回车;如果是一对一,且不需要把中文逗号识别为分隔符的话,请在此键入任何内容而非直接按回车。
接下来,你看到的第一行是:
total number: 5
这表示该材料中共包含5个答案-问题组。之后,你将看到第一个问题,问题前的数字“5”表示还剩5个问题。随着答题的推进,问题前的数字逐渐减小,这会给你带来巨大的成就感,大大提高你的记忆效率!由于问题是随机出现的,因此每次运行时顺序都不同。看到一个问题时,你需要先思考问题的答案,然后再按回车键,显示出该问题的答案和下一个问题,直至最后一个问题。下面呈现某一种排序方式的运行全过程:
name(sep with ","): zc
type if not separate:
total number: 5
5>>> 楼船夜雪瓜()()
洲、渡
4>>> 猿猱欲()愁攀援
度
3>>> 一夜飞()镜湖月
度
2>>> 乘醉听()鼓
箫
1>>> 凤()声动
箫
#[QPython] Press enter to exit ...
这样,你就实现了借助Python来背诵知识点,十分高效,希望能助你的学习一臂之力!