鱼C论坛

 找回密码
 立即注册
查看: 2538|回复: 2

[作品展示] 【Python】打字训练 2.0!

[复制链接]
发表于 2022-2-7 15:36:45 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 ckblt 于 2022-2-9 12:44 编辑

前几天,我做了一个打字训练的软件,
它能帮助你打字更快更准确
(金山打字难道不比它强?

更新内容:
  • 改进了代码
  • 新增抄词语模式


点我跳转到 【打字训练 1.0】

废话少说,上代码

  1. """
  2. 这是一款打字机软件,
  3. 它能帮助你打字更快、更准确。

  4. 注: 如果你使用此软件报错, 请把解释器换成 Python 3.10
  5. """

  6. import random
  7. from random import choice
  8. import time


  9. def mode_1():  # 抄句子
  10.     def gen_sentence():
  11.         name = [
  12.             "我",
  13.             "太空人",
  14.             "太空狼",
  15.             "爷爷",
  16.             "奶奶",
  17.             "爷爷奶奶",
  18.             "喜之郎果冻",
  19.             "喜之郎",
  20.             "洗只狼",
  21.             "爸爸",
  22.             "妈妈",
  23.             "世界冠军",
  24.             "世界吃人冠军",
  25.             "世界吃狼冠军",
  26.             "航天飞机",
  27.             "太空",
  28.             "世界足球先生",
  29.             "世界",
  30.             "足球",
  31.             "世界杯",
  32.             "发明家",
  33.             "药",
  34.             "狼",
  35.             "狼人",
  36.         ]
  37.         action = ["吃", "喝", "当", "画", "鼓励", "旅游", "踩"]
  38.         adj = ["高兴", "伤心", "当人", "生气", "美丽"]

  39.         return f"{choice(name)}{choice(['','长大了'])}要{choice(action)}{choice(name)},{choice(name)}可{choice(adj)}了,给{choice(name)}爱{choice(action)}的{choice(name)}。"

  40.     right = 0
  41.     wrong = 0
  42.     times = []

  43.     print("喜之郎果冻笑话 (请使用中文符号)")
  44.     print()

  45.     while True:
  46.         time.sleep(2)
  47.         print("请输入以下句子 ( 输入 0 退出 )")
  48.         sentence = gen_sentence()
  49.         print(sentence)
  50.         start = round(time.time(), 2)
  51.         answer = input()
  52.         end = round(time.time(), 2)
  53.         t = round(end - start, 2)
  54.         if answer == "0":
  55.             break
  56.         elif answer == sentence:
  57.             print(f"你对了, 用时 {t} 秒")
  58.             print()

  59.             times.append(t)
  60.             right += 1
  61.         else:
  62.             print(f"你错了, 用时 {t} 秒")
  63.             print()

  64.             times.append(t)
  65.             wrong += 1

  66.     if len(times) != 0:
  67.         print(
  68.             f"你对了 {right} 个, 错了 {wrong} 个, 平均速度是 {round(sum(times) / len(times), 2)} 秒"
  69.         )

  70.     print()


  71. def mode_2():  # 抄验证码
  72.     right = 0
  73.     wrong = 0
  74.     times = []
  75.     while True:
  76.         time.sleep(2)
  77.         print("请输入以下验证码 ( 输入 0 退出 )")
  78.         code = str(random.randint(100000, 999999))
  79.         print(code)
  80.         start = round(time.time(), 2)
  81.         answer = input()
  82.         end = round(time.time(), 2)
  83.         t = round(end - start, 2)
  84.         if answer == "0":
  85.             break
  86.         elif answer == code:
  87.             print(f"你对了, 用时 {t} 秒")
  88.             print()

  89.             times.append(t)
  90.             right += 1
  91.         else:
  92.             print(f"你错了, 用时 {t} 秒")
  93.             print()

  94.             times.append(t)
  95.             wrong += 1

  96.     if len(times) != 0:
  97.         print(
  98.             f"你对了 {right} 个, 错了 {wrong} 个, 平均速度是 {round(sum(times) / len(times), 2)} 秒"
  99.         )

  100.     print()


  101. def mode_3():  # 抄词语
  102.     right = 0
  103.     wrong = 0
  104.     times = []
  105.     words = "你好,红色,橙色,黄色,绿色,青色,蓝色,紫色,呼唤,呼喊,救命,尤其,已知,一直,求解,春天,夏天,秋天,冬天,昨天,今天,明天,白天,黑天,每天,黑夜,警察,保安,奔驰,奔跑,走路,吉他,小提琴,中提琴,大提琴,低音提琴,音乐,钢琴,竖琴,离职,理智,励志,荔枝,立志,例子,打字,沙子,泥土".split(
  106.         ","
  107.     )
  108.     time.sleep(2)
  109.     while True:
  110.         time.sleep(0.5)
  111.         print("请输入以下词语 ( 输入 0 退出 )")
  112.         word = choice(words)
  113.         print(word)
  114.         start = round(time.time(), 2)
  115.         answer = input()
  116.         end = round(time.time(), 2)
  117.         t = round(end - start, 2)
  118.         if answer == "0":
  119.             break
  120.         elif answer == word:
  121.             print(f"你对了, 用时 {t} 秒")
  122.             print()

  123.             times.append(t)
  124.             right += 1
  125.         else:
  126.             print(f"你错了, 用时 {t} 秒")
  127.             print()

  128.             times.append(t)
  129.             wrong += 1

  130.     if len(times) != 0:
  131.         print(
  132.             f"你对了 {right} 个, 错了 {wrong} 个, 平均速度是 {round(sum(times) / len(times), 2)} 秒"
  133.         )

  134.     print()


  135. if __name__ == "__main__":
  136.     choose_correct = True
  137.     modes = {"抄句子": mode_1, "抄验证码": mode_2, "抄词语": mode_3}
  138.     print("欢迎来到 TypeWriter 打字训练 2.0")
  139.     print()
  140.     while True:
  141.         if choose_correct:
  142.             print("请选择模式 ( 输入 0 退出 )")

  143.             for i in range(len(modes)):
  144.                 print(i + 1, ". ", [*modes.keys()][i], sep="")
  145.             print()
  146.         try:
  147.             mode = int(input("选择: "))
  148.             print()
  149.             choose_correct = True

  150.             if mode == 0:
  151.                 raise KeyboardInterrupt
  152.             elif mode <= len(modes):
  153.                 modes[[*modes.keys()][mode - 1]]()
  154.             else:
  155.                 raise ValueError("Invalid mode")
  156.         except ValueError:  # 选择有误
  157.             choose_correct = False
  158.             print("你的选择有误, 请重新", end="")
  159.             # 之后他会 mode = int(input("选择: ")) , 也就是输出 "你的选择有误, 请重新选择: "
  160.         except KeyboardInterrupt:  # 用户退出 或者 用户 Ctrl+C
  161.             print("感谢使用!")
  162.             exit()
复制代码


如果您喜欢这个软件,可以给我评分哦~

这些代码我以后会继续完善,有BUG可以提出哦~

评分

参与人数 1荣誉 +1 鱼币 +5 收起 理由
python爱好者. + 1 + 5 感谢楼主无私奉献!

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2022-2-9 11:12:24 | 显示全部楼层
发现一个bug,在选择模式的时候输入0会进入抄词语模式。

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
ckblt + 1 + 1 感谢提出BUG

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-10-8 20:27:30 | 显示全部楼层
要是是tkinter的更好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 07:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表