2401_85650772 2024-06-12 19:51 采纳率: 63.2%
浏览 1
已结题

Python打字练习程序设计出现错误

img


在开始运行该段程序时,最开始出现未打印出标题及原始字符的现象,请求对该段编程进行改正错误

  • 写回答

3条回答 默认 最新

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

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

    面对你描述的问题,让我们一起对这段代码进行修正,使其能够正常显示标题以及原始字符串,并确保逻辑上更加合理。首先,注意到代码中存在一些语法错误和逻辑上的不清晰之处。下面是对代码的修正版本:

    # coding:utf-8
    import random
    import string
    import time
    
    def typing_text():
        print("-" * 40)
        print("——模拟打字练习程序——")
        original = " ".join(random.sample(string.ascii_lowercase + string.digits, 20))
        print("输出:" + original)
    
        starttime = time.time()
        user_input = input("输入:")
    
        # 检查用户输入长度是否超过原字符串
        if len(user_input) > len(original):
            print("错误!输入的字符超过了原文的字符,请重新练习。")
            return typing_text()
    
        # 计算正确字符数
        combination = list(zip(original.split(), user_input))
        true_word = sum(1 for o, u in combination if o == u)
        score = round(true_word / len(original.split()) * 100, 2)
    
        end_time = time.time()
        elapsed_time = end_time - starttime
    
        print(f"正确率:{score:.2f}%")
        print(f"完成所用时间:{elapsed_time:.2f}秒")
    
        order = input("\n是否继续练习(输入y或n): ")
        if order.lower() == 'y':
            typing_text()
        else:
            print("结束练习")
    
    # 调用函数开始打字练习
    typing_text()
    

    关键更改点如下:

    1. random.sample中的字符集修改为string.ascii_lowercase + string.digits,这将包含所有小写字母和数字。
    2. 修正了print语句的语法,去掉了中文双引号并添加了缺失的换行符。
    3. 修改了original变量的打印位置,确保在要求用户输入前显示。
    4. 在计算正确率和时间之前,先打印了原始字符串。
    5. 使用了f-string格式化字符串,使输出更简洁易读。
    6. 纠正了return语句后的函数调用语法。
    7. 修正了input后对order变量的处理,确保其被转换为小写后进行比较。

    以上修正应该解决了你提到的问题,并使程序逻辑更加清晰和健壮。如果你在运行修正后的代码时遇到任何新的问题,欢迎随时提问。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月27日
  • 已采纳回答 6月19日
  • 创建了问题 6月12日

悬赏问题

  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 angular项目错误
  • ¥20 需要帮我远程操控一下,运行一下我的那个代码,我觉得我无能为力了
  • ¥20 有偿:在ubuntu上安装arduino以及其常用库文件。
  • ¥15 请问用arcgis处理一些数据和图形,通常里面有一个根据点划泰森多边形的命令,直接划的弊端是只能执行一个完整的边界,但是我们有时候会用到需要在有很多边界内利用点来执行划泰森多边形的命令
  • ¥30 在wave2foam中执行setWaveField时遇到了如下的浮点异常问题,请问该如何解决呢?