今天,我们尝试用python来编写一个简单的PC端番茄钟,需要实现的功能如下:启动时“滴”一声并询问:“休息时间结束!是否开始一个新的番茄钟?”

如果用户点击"OK",则开始计时,点击“取消”则退出程序。

25分钟后“滴”一声并询问:“工作时间结束!是否开始休息?”

如果用户点击"OK",则开始计时,点击“取消”则退出程序。

5分钟后回到第1步,开始下一轮循环。

为了实现以上功能,我们需要用到三个python内建库:winsound、tkinter和time。

1. winsound

顾名思义,winsound能让windows系统发出声音。这里我们要用到其中的一个Beep()方法,具体用法如下:

from winsound import Beep

Beep(600, 1000)

Beep的第一个参数代表音量大小,第二个参数代表蜂鸣持续时间长短,(600, 1000)的组合是我尝试过的比较理想的组合,当然我们也可以选择其他的数值。

2. tkinter

tkinter是python内建的一个图形界面(GUI)工具包,里面提供了各种组件,熟悉web交互式设计的同学应该对它很有亲近感。不熟悉也不要紧,可以使用tkinter提供的一些高级模块,比如messagebox。

messagebox就是“消息框”的意思,它有askokcancel askquestion showinfo等不同的类型,我们可以选择自己需要的类型。这里我选择的是askokcancel,用法是:

from tkinter.messagebox import askokcancel

askokcancel(title="我的标题", message="我的提示")

它的模样如图所示:

如果点击“确定”,对话框返回True值,点击“取消”返回False值。

3. time

time是一个跟时间有关的库。在这个例子中,我们要用time库中的sleep()方法来计时,比如让程序休眠25分钟:

from time import sleep

sleep(60*25) # 25分钟等于25*60秒

4. 全部代码

有了这些基本方法之后,我们可以用一个while循环和一个if...else...条件结构来编写我们的番茄钟。

from tkinter.messagebox import askokcancel

from time import sleep

from winsound import Beep

while True:

Beep(600, 1000)

if askokcancel(title="休息时间结束!", message="开始一个新的番茄钟吗?"):

sleep(25*60)

Beep(600, 1000)

if askokcancel(title="工作时间结束", message="开始休息吗?"):

sleep(5*60)

else:

break

else:

break

说明:break语句的作用是从while循环中跳出。

为了使后面打包的exe程序尽量小,我们从库中导入单个的函数,而不是整个库。

下一篇我们将介绍如何把python文件打包成可独立运行的exe程序。

利用python写时钟程序_如何用python编写一个番茄钟程序相关推荐

  1. 如何用python写串口通信软件_如何用python写个串口通信的程序?

    展开全部 打开串口后启动一个线程来监听串口数据的进入,有数据时,就做数据的处理. 用python写串口通信e68a84e8a2ad32313133353236313431303231363533313 ...

  2. 用python写注册登录_如何用python 写注册,登录功能的测试

    2015-07-09 回答 有些网页需要你登录之后才可以访问,你需要提供账户和密码. 只要在发送http请求时,带上含有正常登陆的cookie就可以了. 1.首先我们要先了解cookie的工作原理. ...

  3. java简单的记事本程序_如何用JAVA编写简单的记事本程序?

    展开全部 import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; i ...

  4. python 文本翻译 项目_如何用python批量翻译文本?

    首先,看一下百度翻译的官方api文档. http://api.fanyi.baidu.com/api/trans/product/apidoc # coding=utf-8 #authority:bi ...

  5. python编程代码画画_如何用python编写一个绘制马赛克图像的自写程序

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这篇教程将会展示如何用python的图形化包"Pygame"和基础的文件I/O来创建一 ...

  6. 如何制作python检查小软件_如何用Python制作整蛊小程序

    原标题:如何用Python制作整蛊小程序 下面的整蛊程序,千万不要发代码,否则就实现不了你整蛊的目的了.完成后一定要打包成一个exe程序,再发给朋友使用 . 1. 使用 pip install pyi ...

  7. python write 写多行_如何用 Python 执行单行命令

    一般来说,面对日常处理的一些小任务,直接用 sed,grep 之类的就可以搞定,更复杂一点的就会考虑 awk 或者用一些现成的轮子,要是 awk 搞不定我就只好用 Python 了.但有些时候,我仅仅 ...

  8. python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...

    python 如果抓取验证码图片 类似12306的登录验证码图片 这个以前做次.最大的麻烦是码的识别算法的识别率太低.12306那种网站登陆错3次就限制你20分钟.所以除非你有33%以上的识别率否则不 ...

  9. python如何运行py程序_如何用Python汇款:Web3.py教程

    Python开发人员对于以太坊和区块链库的技术练习. 警告:下面的教程包含这些元素:显式加密.点对点金融服务以及可能的违规行为.这些例子仅仅是为了说明Python区块链的强大功能和便捷性. 嗨,Pyt ...

最新文章

  1. svm rbf人脸识别 yale_实操课——机器学习之人脸识别
  2. R 语言中的高级图像处理包
  3. 进程注入后门工具Cymothoa
  4. 服务器文件嗅探,嗅探TFTP配置文件传输
  5. linux deepin 20.4升级至20.5教程:升级系统和升级内核两个步骤(手动升级deepin内核命令)
  6. linux中怎么添加附属组,Linux中如何使用附属属组创建文件
  7. SAP UI5 应用开发教程之四十八 - 如何在 SAP UI5 应用里开发条形码扫描功能试读版
  8. CRM Mock framework debug
  9. java. 端序_c代码测试本机处理器的端序
  10. 包机制、阿里巴巴开发手册
  11. 计算机主机一闪一闪的无法启动,电脑启动不了灯一闪一闪的
  12. appium+python自动化51-adb文件导入和导出(pull push)
  13. MyBatis的环境搭建(图文)
  14. alexa/alexa-avs-sample-app Windows 安装教程
  15. Java轻量级缓存Ehcache与SpringBoot整合
  16. 使用Safari只要打开echarts图表的网址会使Safari未响应
  17. java 按照拼音排序_java List中元素按照拼音排序
  18. 人工神经网络——径向基函数(RBF)神经网络
  19. 关于bili处理视频文件遇到问题记录
  20. C++基础教学(二)基本数据类型计算

热门文章

  1. VM下装Ubuntu12.04 启动时出现黑屏
  2. 学了两个多月软件测试,顺利过了试用期,拿到12K的我很满足了
  3. 妙健康:数字化精准健康管理平台,提供个性化健康解决方案
  4. Python 卡方检验
  5. oracle细粒度(fga)审核
  6. 问卷调查工具专业排行榜
  7. 异常行为检测论文学习综述
  8. Leetcode 1110.删点成林(Delete Nodes And Return Forest)
  9. 1014 福尔摩斯的约会 (20 分)|一道我认为烂透了的题
  10. centos7 默认中文字体_如何更换CentOS(Linux)系统默认字体?