2401_85650772 2024-06-20 13:06 采纳率: 63.2%
浏览 3
已结题

增加Python打字练习程序内容

img


在现有基础上,增加Original的内容,要求包含我所保存的文档中的随机字符

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-20 13:06
    关注

    引自免费微信小程序:皆我百晓生

    首先,为了增加原始文本内容并包含您保存的文档中的随机字符,我们需要对现有的代码进行一些修改和扩展。以下是对您提供的代码进行修改的建议:

    1. 读取您保存的文档内容并将其添加到原始文本中。
    2. 确保原始文本中包含更多样化的字符,包括大小写字母、数字和标点符号。

    以下是修改后的代码示例:

    # coding:utf8
    import random
    import string
    import time
    
    def load_document_content(filename):
        with open(filename, 'r', encoding='utf-8') as file:
            content = file.read()
        return content
    
    def typing_text():
        # 加载字符集,包括大小写字母、数字和标点符号
        chars = string.ascii_letters + string.digits + string.punctuation + load_document_content('your_document.txt').replace(' ', '')  # 使用您的文档路径替换 'your_document.txt'
        original = ''.join(random.sample(chars, random.randint(1, len(chars)))).replace(' ', '')  # 生成原始文本,不包含空格
        print("输出:" + original)  # 输出原始文本给用户查看
        starttime = time.time()  # 记录开始时间
        user_input = input("输入:")  # 获取用户输入的文字
        if len(user_input) > len(original):  # 如果用户输入的文字超过原始文本长度,则提示错误并重新练习
            print("错误!输入字符超过了原文字符数,请重新练习。")
            return typing_text()  # 重新执行练习函数直到正确为止(此处是递归调用)
        combination = list(zip(original, user_input))  # 将原始文本和用户输入进行配对比较
        trueword = sum(1 for o, u in combination if o == u)  # 计算用户输入与原始文本匹配的字符数量
        score = round(trueword / len(original) * 100, 2)  # 计算正确率百分比并保留两位小数
        end_time = time.time()  # 记录结束时间并计算用时
        elapsed_time = end_time - starttime  # 计算完成打字所用的时间(秒)并保留两位小数显示精度调整代码块结束位置。这里我们使用了一个自定义的 `load_document_content` 函数来读取您的文档内容并将其添加到原始文本中。请确保替换 `'your_document.txt'` 为您实际的文档路径。如果用户输入的字符超过原始文本长度时,代码将提示错误并重新开始练习(通过递归调用 `typing_text()` 函数)。计算用户输入与原始文本的匹配程度后,显示正确的匹配率和使用的时间。然后询问用户是否继续练习并决定下一次的练习或退出程序。以下是完整的代码示例:图上的代码有缩进问题,所以直接贴出来可能会格式混乱,我尽量以清晰的方式展示。```python # coding:utf8 import random import string import time def load_document_content(filename): with open(filename, 'r', encoding='utf-8') as file: content = file.read().replace(' ', '') # 删除文档中的空格 return content def typing_text(): # 生成包含随机字符的原始文本 chars = string.ascii_letters + string.digits + string.punctuation + load_document_content('your_document.txt') original = ''.join(random.sample(chars, random.randint(1, len(chars)))) print("输出:" + original) starttime = time.time() user_input = input("输入:") if len(user_input) > len(original): print("错误!输入字符超过了原文字符数,请重新练习。") return typing_text() combination = list(zip(original, user_input)) trueword = sum(1 for o, u in combination if o == u) score = round(trueword / len(original) * 100, 2) end_time = time.time() elapsed_time = end_time - starttime print("正确率:{:.2f}%".format(score)) print("完成所用时间:{:.2f}秒".format(elapsed_time)) order = input("\n是否继续练习(输入y或n):") if order.lower() == 'y': typing_text() else: print("结束练习") # 主程序入口调用 typing_text() ```请根据您的实际文件路径和喜好进行适当的修改和优化后使用此代码。如果仍有其他问题或需要进一步帮助,请随时提问。
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月28日
  • 已采纳回答 6月20日
  • 创建了问题 6月20日

悬赏问题

  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。