如何用Python做一个打字速度训练器?

 时间:2026-02-15 00:30:46

1、首先要搭建好Python3+的环境,并安装fuzzywuzzy模块和python-Levenshtein模块(pip install)这里不详细解说。

如何用Python做一个打字速度训练器?

2、制作思路:①我们需要生成26个小写字母,并将其储存到列表中;再把大小写所有字母储存到列表中。②询问用户是否在题目中加入大写字母(默认只有小写字母),并询问出题的字符长度。③根据用户的选项进行随机出题,并计算题目完成时间和答题准确率。

1、import string,random,time   #导入string,random,time模块


from fuzzywuzzy import fuzz   #从fuzzywuzzy中导入fuzz
letters_low = list(string.ascii_lowercase)  #把所有小写英文字母储存在列表中
# print(letters_low)
letters_all = list(string.ascii_letters)  #把所有大小写英文字母储存在列表中
# print(letters_all)

2、while True:   #循环


    yn = str(input('是否要在题目中加入大写字母(Y/N):'))   #询问用户并获取输入
    if yn.lower() == 'y' or yn.lower() == 'n':   #如果输入了“Y”或“N”,就退出循环,注意用lower()把字母转为小写再进行比较,可以适应大小写
        break
    elif yn.lower() != 'y' and yn.lower() != 'n':   #如果输入其他内容,就打印一条提示
        print('请输入“Y”或“N”!\n')

while True:   #循环


    try:   #用 try except 语句捕获异常
        n = int(input('请输入题目字符的长度:'))   #获取输入
        break   #如果没有任何异常就跳出循环
    except ValueError:   #这里如果产生类型错误的异常,则会打印提示
        print('请输入整数!\n')

如何用Python做一个打字速度训练器?

3、if yn.lower() == 'n':   #如果用户输入“N”(或者“n”),就不会在题目中加入大写字母,只有小写字母


    while True:
        letters = ''    #空白题目
        for i in range(n):   #用循环来生成指定长度的题目
            letter_n = random.randint(0,len(letters_low) - 1)   #len(letters_low)是指letters_low的长度,因为Python列表[0]表示列表第一项,所以必须要 减1
            letters += letters_low[letter_n]    #进行随机出题(只包含小写字母)
        print('请输入题目中的字母:',letters)   #letters是题目
        start = time.time()   #记录时间戳(开始计时)
        user_in = str(input(''))   #获取用户输入
        end = time.time()   #再次记录时间戳(结束计时)
        accuracy = fuzz.ratio(user_in,letters)   #用fuzzywuzzy模块比较字符串的相似程度(计算准确率)
        print('答题准确率:',accuracy,'%;','作答用时:',end - start,'秒')   #打印准确率和作答用时(时间戳相减)

如何用Python做一个打字速度训练器?

4、elif yn.lower() == 'y':   #如果用户输入“Y”或“y”),就在题目中加入大写字母,区分大小写


    while True:
        letters = ''   #空白题目
        for i in range(n):   #用循环来生成指定长度的题目
            letter_n = random.randint(0,len(letters_all) - 1)
            letters += letters_all[letter_n]    #进行随机出题(包含大小写字母)
        print('请输入题目中的字母:',letters)   #letters是题目
        start = time.time()   #开始计时
        user_in = str(input(''))   #获取用户输入的题目
        end = time.time()   #结束计时
        accuracy = fuzz.ratio(user_in, letters)   #用fuzzywuzzy模块计算答题准确率(区分大小写)
        print('答题准确率:',accuracy,'%;','作答用时:',end - start,'秒')   #打印准确率和作答用时

如何用Python做一个打字速度训练器?

5、#完整代码

import string,random,time   #导入string,random,time模块


from fuzzywuzzy import fuzz   #从fuzzywuzzy中导入fuzz
letters_low = list(string.ascii_lowercase)  #把所有小写英文字母储存在列表中
# print(letters_low)
letters_all = list(string.ascii_letters)  #把所有大小写英文字母储存在列表中
# print(letters_all)

while True:   #循环


    yn = str(input('是否要在题目中加入大写字母(Y/N):'))   #询问用户并获取输入
    if yn.lower() == 'y' or yn.lower() == 'n':   #如果输入了“Y”或“N”,就退出循环,注意用lower()把字母转为小写再进行比较,可以适应大小写
        break
    elif yn.lower() != 'y' and yn.lower() != 'n':   #如果输入其他内容,就打印一条提示
        print('请输入“Y”或“N”!\n')

while True:   #循环


    try:   #用 try except 语句捕获异常
        n = int(input('请输入题目字符的长度:'))   #获取输入
        break   #如果没有任何异常就跳出循环
    except ValueError:   #这里如果产生类型错误的异常,则会打印提示
        print('请输入整数!\n')

if yn.lower() == 'n':   #如果用户输入“N”(或者“n”),就不会在题目中加入大写字母,只有小写字母


    while True:
        letters = ''    #空白题目
        for i in range(n):   #用循环来生成指定长度的题目
            letter_n = random.randint(0,len(letters_low) - 1)   #len(letters_low)是指letters_low的长度,因为Python列表[0]表示列表第一项,所以必须要 减1
            letters += letters_low[letter_n]    #进行随机出题(只包含小写字母)
        print('请输入题目中的字母:',letters)   #letters是题目
        start = time.time()   #记录时间戳(开始计时)
        user_in = str(input(''))   #获取用户输入
        end = time.time()   #再次记录时间戳(结束计时)
        accuracy = fuzz.ratio(user_in,letters)   #用fuzzywuzzy模块比较字符串的相似程度(计算准确率)
        print('答题准确率:',accuracy,'%;','作答用时:',end - start,'秒')   #打印准确率和作答用时(时间戳相减)

elif yn.lower() == 'y':   #如果用户输入“Y”或“y”),就在题目中加入大写字母,区分大小写


    while True:
        letters = ''   #空白题目
        for i in range(n):   #用循环来生成指定长度的题目
            letter_n = random.randint(0,len(letters_all) - 1)
            letters += letters_all[letter_n]    #进行随机出题(包含大小写字母)
        print('请输入题目中的字母:',letters)   #letters是题目
        start = time.time()   #开始计时
        user_in = str(input(''))   #获取用户输入的题目
        end = time.time()   #结束计时
        accuracy = fuzz.ratio(user_in, letters)   #用fuzzywuzzy模块计算答题准确率(区分大小写)
        print('答题准确率:',accuracy,'%;','作答用时:',end - start,'秒')   #打印准确率和作答用时

如何用Python做一个打字速度训练器?

  • 生涯规划的知彼的意思是
  • 如何来优化自己的性格呢?
  • 如何利用心理学知识提高线上学习效率
  • 创业成功的六个步骤
  • 你知道新疆的美食有哪些
  • 热门搜索
    的方法 甘蓝怎么做好吃 心情不好的时候怎么办 皮肤美白最快的方法 皮肤瘙痒的治疗方法 莴笋怎么做好吃 鸭蛋的腌制方法 炒方便面的家常做法 赚钱方法 银项链怎么清洗