广告合作
  • 今日头条

    今日头条

  • 百度一下

    百度一下,你就知道

  • 新浪网

    新浪网 - 提供新闻线索,重大新闻爆料

  • 搜狐

    搜狐

  • 豆瓣

    豆瓣

  • 百度贴吧

    百度贴吧——全球领先的中文社区

  • 首页 尚未审核订阅工具 订阅

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

    来源:网络收集  点击:  时间:2024-07-15
    【导读】:
    对于经常使用电脑的人来说,打字是必不可少的了,提高打字速度可以提升工作效率。下面就来教大家如何用Python制作一个打字速度练习器。工具/原料more电脑一台Python3+环境,fuzzywuzzy模块,python-Levenshtein模块准备思路1/2分步阅读

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

    2/2

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

    代码编写1/5

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

    2/5

    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)

    3/5

    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列表表示列表第一项,所以必须要 减1 letters += letters_low #进行随机出题(只包含小写字母) print(请输入题目中的字母:,letters) #letters是题目 start = time.time() #记录时间戳(开始计时) user_in = str(input()) #获取用户输入 end = time.time() #再次记录时间戳(结束计时) accuracy = fuzz.ratio(user_in,letters) #用fuzzywuzzy模块比较字符串的相似程度(计算准确率) print(答题准确率:,accuracy,%;,作答用时:,end - start,秒) #打印准确率和作答用时(时间戳相减)

    4/5

    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 #进行随机出题(包含大小写字母) print(请输入题目中的字母:,letters) #letters是题目 start = time.time() #开始计时 user_in = str(input()) #获取用户输入的题目 end = time.time() #结束计时 accuracy = fuzz.ratio(user_in, letters) #用fuzzywuzzy模块计算答题准确率(区分大小写) print(答题准确率:,accuracy,%;,作答用时:,end - start,秒) #打印准确率和作答用时

    5/5

    #完整代码

    import string,random,time #导入string,random,time模块from fuzzywuzzy import fuzz #从fuzzywuzzy中导入fuzzletters_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列表表示列表第一项,所以必须要 减1 letters += letters_low #进行随机出题(只包含小写字母) 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 #进行随机出题(包含大小写字母) 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-Levenshtein模块,否则fuzzywuzzy模块会出警告

    PYTHON编程程序设计打字速度练习
    本文关键词:

    版权声明:

    1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。

    2、本站仅提供信息发布平台,不承担相关法律责任。

    3、若侵犯您的版权或隐私,请联系本站管理员删除。

    4、文章链接:http://www.1haoku.cn/art_958559.html

    相关资讯

    ©2019-2020 http://www.1haoku.cn/ 国ICP备20009186号05-06 10:08:44  耗时:0.026
    0.0263s