最近在做一些运动,昨天晚上在抖音上看见了一套燃脂的视频。
视频的内容讲述的内容是每组动作做多少个。
现在网上也是各种的减肥动作
那么问题来了,在运动时可能会因为太累而不会自己去数自己做了多少个动作
那么就需要写一个程序来告诉我门每组动作,做多少个,下一个动作该做什么。
今天就用Python来实现一个简易的运动程序,实现运动自由!
实现简易的运动播报功能以及简易的动作计数播报功能。

需求拆分

  • 首先先确定数据的结构,健身运动的数据结构是每组运动做多少个动作,那么我们可以使用字典来规定这种数据结构。

  • 将运动项作为key,需要做多少个动作作为value来存放在一个字典当中

  • 然后我们只需要写循环来遍历这个字典,在循环中在写一个循环根据运动项的次数来计数即可完成运动计数

导入

import pyttsx3
import time

这里使用pyttsx3这个库来进行语音播报。

pyttsx3

pyttsx3是一个能让Python开口说话的库,pyttsx3通过初始化来获取语音引擎。当我们第一次调用init操作的时候,会返回一个pyttsx3的engine对象,再次调用的时候,如果存在engine对象实例,就会使用现有的,否则再重新创建一个。

pyttsx3属于第三方模块,如果你还未进行安装可以先安装这个库。

pip install pyttsx3

定义模型类

class Sports():def __init__(self, sports, speed):sports = sportsspeed = speed@staticmethoddef say(content):engine = pyttsx3.init()engine.say(content)engine.runAndWait()@staticmethoddef doSport():for key, value in sports.items():index = list(sports).index(key) + 1# 如果是最后一个动作,播报:加油加油,最后一个动作啦~if index == len(sports):Sports.say('加油~加油~,最后一个动作啦!')print('加油~加油~,最后一个动作啦!')result = f'第{index}个动作:{key},一组{value}秒'print(f'\r{result}', end='\n')Sports.say(result)# 每做完一个动作,让用户休息3秒钟for i in [3, 2, 1, '开始~']:print(f'\r{i}', end='')Sports.say(i)time.sleep(speed)for i in range(1, value + 1):print(f'\r{i}', end='')Sports.say(i)time.sleep(speed)# 运动结束end = '运动结束,放松一下吧~'Sports.say(end)

有了运动模型类,我们就可以复用这个类啦,比如有n套健身运动,我们只需要实例化n个类就可以复用这个类了。

语音播报:

 @staticmethoddef say(content):engine = pyttsx3.init()engine.say(content)engine.runAndWait()

运动方法:

 @staticmethoddef doSport():for key, value in sports.items():index = list(sports).index(key) + 1# 如果是最后一个动作,播报:加油加油,最后一个动作啦~if index == len(sports):Sports.say('加油~加油~,最后一个动作啦!')print('加油~加油~,最后一个动作啦!')result = f'第{index}个动作:{key},一组{value}秒'print(f'\r{result}', end='\n')Sports.say(result)# 每做完一个动作,让用户休息3秒钟for i in [3, 2, 1, '开始~']:print(f'\r{i}', end='')Sports.say(i)time.sleep(speed)for i in range(1, value + 1):print(f'\r{i}', end='')Sports.say(i)time.sleep(speed)# 运动结束end = '运动结束,放松一下吧~'Sports.say(end)

有了类模型,下面对类进行实例化,先传入4个动作来热热身吧~

if __name__ == '__main__':sports = {'开合跳1': 30,'原地深蹲': 15,'高抬腿': 30,'胯下击掌': 15,}speed = 0.02  # 速度spor = Sports(sports, speed)spor.doSport()

用Python做一个简易健身运动程序相关推荐

  1. python发音机器人_只需三步,菜鸟也能用Python做一个简易版Siri

    原标题:只需三步,菜鸟也能用Python做一个简易版Siri 当下,各个手机厂商都陆续的推出了属于自己的智能手机机器人,像是苹果的Siri,小米的小爱,还有等等.这些智能机器人不仅仅方便了我们对于手机 ...

  2. python测试抽奖脚本_使用 Python 写一个简易的抽奖程序

    不知道有多少人是被这个头图骗进来的:) 事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下 ...

  3. 【新手向】Python做一个简易登录注册GUI界面(无事件绑定)

    Python做一个简易登录注册GUI界面 一,效果展示 (1)运行结果: (2)点击登录: 注:只有用户名:123 密码123456 会提示登录成功. 登录成功示范: 登录失败示范: (3)点击注册 ...

  4. 使用python编写一个简易的打折程序

    使用python编写一个简易的打折程序

  5. 如何用 Python 写一个简易的抽奖程序

    不知道有多少人是被这个头图骗进来的:) 事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下 ...

  6. 怎么用python制作简单的程序-如何用 Python 写一个简易的抽奖程序

    不知道有多少人是被这个头图骗进来的:) 事情的起因是这样的,上周有同学问小编,看着小编的示例代码敲代码,感觉自己也会写了,如果不看的话,七七八八可能也写的出来,但是一旦自己独立写一段程序,感觉到无从下 ...

  7. 用Python做一个简单的表白程序

    我最近在看了一本Python tkinter从入门到精通,看了四章了,前面四章主要就是讲部件的共同属性,控件的布局,窗口的属性设置,于是利用这些做了个简单的程序,我将这个程序打包成了执行文件,放在了百 ...

  8. 用Python制作一个简易的抽奖程序

    分析需求 我们先整理下思路,目标是什么? 目标是要写一个抽奖程序,那么抽奖程序的核心是什么? 当然是如何判断一个人中奖了.那么如何判断一个人中奖呢? 是不是可以通过随机函数来操作呢? 中奖方法 一步一 ...

  9. Python做一个简单的抽奖程序

    今天刚上班,女朋友给我来了个需求,她需要一个抽奖程序,需求如下: 1.要一个抽奖程序,输入为很多图片,输出为随机选出几张符合要求的图片 2.简单快速,不用界面也行,她早上就要 我只是一个小小的码农,怎 ...

最新文章

  1. email util demo
  2. python学习环境安装_python学习系列----环境的安装
  3. Linux 2.6.32-279.el6.x86_64 ANDROID SDK碰到”LIBC.SO.6: VERSION `GLIBC_2.14′ NOT FOUND”的解决方法(2)
  4. 从人工智能到云,英特尔开源技术推动软件栈创新
  5. iOS - Base64转图片图片转Base64
  6. PHP基础2--基本语法
  7. php底层开发框架, yaf,swoole,hiphop
  8. sqlserver中where条件加判断
  9. html5 postMessage解决跨域、跨窗口消息传递[转载]
  10. “能耗大户”数据中心供配电系统
  11. 90 亿美元的“Java 第一版权案”终落幕:谷歌胜!
  12. Java中的网络编程
  13. [转]新建一个Android工程项目
  14. linux断开网络的命令,Linux常用网络命令总结
  15. java读取txt文件内容
  16. POP3 SMTP 协议分析
  17. html刮刮乐百分比,jQuery+html5实现彩票刮刮乐效果
  18. Word中将数字和字母一次替换
  19. 工作记录 --01 验证证件号合法性!
  20. pytorch实现yolov4_v2(网络模块)

热门文章

  1. Cloneable接口以及深拷贝和浅拷贝
  2. 《恶意代码分析实战》第3章 动态分析基础技术(课后实验Lab 3)
  3. PyTorch实现的Inception-v3
  4. react性能监控根据工具_高性能React:3个新工具可加快您的应用程序
  5. 分账系统对接流程详解
  6. 感谢德福德矩阵研发团队成功研发
  7. 软件的彼得原理是什么?
  8. 西门子 HTML浏览器 上不了网,【高级技巧】PROFINET高级网页编程使用入门
  9. 清明节活动策划方案PPT模板
  10. android手机上gmail的配置