本文实例为大家分享了python语音整点报时的具体代码,供大家参考,具体内容如下

主要的技术特殊点在于PyS60的定时器最多只能定2147秒。在手机上直接写的。

import e32

import audio

import time

import appuifw

import sys

import os.path

import marshal

def say(oclock):

"""say the time in English"""

c = oclock

if c > 12:

c -= 12

cs = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve'][c]

audio.say("it's " + cs + " o'clock.")

def say_current():

global Sayflags

t = time.localtime()

# say according to configuration

if Sayflags[int(t[3])] == 1:

say(t[3])

def on_oclock():

"""when an o'clock arrived"""

say_current()

start_timer()

def start_timer():

"""start a timer that will be reached at next o'clock"""

global Timer

lt = time.localtime()

d = 60 * (59 - lt[4]) + 61 - lt[5]

if d>2147:

Timer.after(2147, lambda : Timer.after(d-2147, on_oclock))

else:

Timer.after(d, on_oclock)

def clock_names():

return [u'0:00', u'1:00', u'2:00', u'3:00', u'4:00', u'5:00', u'6:00', u'7:00', u'8:00', u'9:00', u'10:00', u'11:00', u'12:00', u'13:00', u'14:00', u'15:00', u'16:00', u'17:00', u'18:00', u'19:00', u'20:00', u'21:00', u'22:00', u'23:00']

def list_handler():

"""set flag and refresh the listbox"""

global Lb

global Sayflags

c = Lb.current()

Sayflags[c] = 1 - Sayflags[c]

Lb.set_list(list_content(), c)

def list_content():

global Sayflags

icons = [appuifw.Icon(u"z:\\resource\\apps\\avkon2.mif", 16506, 16507), appuifw.Icon(u"z:\\resource\\apps\\avkon2.mif", 16504, 16505)] # unchecked, unchecked

return map(lambda s, f: tuple([s, icons[f]]), clock_names(), Sayflags)

def exit_handler():

global Lock

global Timer

global Standalone

Timer.cancel()

save_cfg()

if not Standalone:

Lock.signal()

else:

appuifw.app.set_exit()

def save_cfg():

global Sayflags

try:

f = open(Configfile, 'wb')

marshal.dump(Sayflags, f)

f.close()

except:

pass

def load_cfg():

global Sayflags

try:

f = open(Configfile, 'rb')

Sayflags = marshal.load(f)

f.close()

except:

pass

# Testing code

def test():

say_current()

#on_oclock()

#for n in range(1,13):

# say(n)

#test()

def main():

global Standalone

appuifw.app.title = u'Audio Clock'

appuifw.app.exit_key_handler = exit_handler

appuifw.app.body = Lb

if time.localtime()[4] == 0:

say_current()

start_timer()

if not Standalone:

Lock.wait()

Standalone = True

Timer = e32.Ao_timer()

Lock = e32.Ao_lock()

Configfile = os.path.abspath(os.path.dirname(sys.argv[0])) + '\\audioclock.cfg'

Sayflags = [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 1] #24 clocks' flags

load_cfg()

Lb = appuifw.Listbox(list_content(), list_handler)

main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

本文标题: Python(PyS60)实现简单语音整点报时

本文地址: http://www.cppcns.com/jiaoben/python/286947.html

python报时功能_Python(PyS60)实现简单语音整点报时相关推荐

  1. python报时功能_python3多线程实现一个语音报时,定时关机功能的应用

    我是您的朋友义县游学电子科技,今天我跟大家分享一个小应用.利用python实现一个网络应用,具有定时关机功能和语音报时功能. 下面我先来介绍一下python.python这门语言想必大家都听说过,就算 ...

  2. python主要功能_Python主要功能

    python主要功能 Python main function is executed only when it's being executed as a python program. As yo ...

  3. python自动寻路模板_Python实现的简单模板引擎功能示例

    本文实例讲述了Python实现的简单模板引擎功能.分享给大家供大家参考,具体如下: #coding:utf- 8 __author__="sdm" __author_email=' ...

  4. python实现日历功能_Python实现的简单万年历例子分享

    代码如下: #!/usr/bin/env python2 #-*- coding:utf-8 -*- __author__ = 'jalright' """ 使用pyth ...

  5. python最新功能_Python在2020的新增功能:第1部分

    自从很久以前改用了python3,语言层面的特征变化就相对较小了,然而对于每一个版本,Python都会添加一些新函数. 随着Python3.8于2019年10月发布,我发现自己使用的是这种语言的一些特 ...

  6. python 线性回归函数_Python实现的简单线性回归算法实例分析

    本文实例讲述了Python实现的简单线性回归算法.分享给大家供大家参考,具体如下: 用python实现R的线性模型(lm)中一元线性回归的简单方法,使用R的women示例数据,R的运行结果: > ...

  7. python高级功能_python高级篇

    1.切片功能:类似于java中的split方法.对list或者triple中几个值进行取出的过程. L = ['a','b','c','d']   L[0:3] = ['a','b','c']   # ...

  8. python ansible模块_python学习-ansible简单使用1

    一.介绍 Ansible 一种集成 IT 系统的配置管理.应用部署.执行特定任务的开源平台,是 AnsibleWorks 公司名下的项目,该公司由 Cobbler 及 Func 的作者于 2012 年 ...

  9. python runner功能_Python 如何使用 HttpRunner 做接口自动化测试

    点击上方"软测小生",选择"加为星标" 第一时间关注软件测试原创干货! 1. 前言 原始测试金子塔包含 3 层,分别是:UI 自动化测试.接口服务测试.单元测试 ...

最新文章

  1. 十五天精通WCF——第十四天 一起聊聊FaultException
  2. leetcode 413. Arithmetic Slices | 413. 等差数列划分(Java)
  3. 【Servlet】Listener监听器
  4. python str模块
  5. UI设计素材|底部导航设计的黄金法则
  6. centos7+jexus5.8.3部署ASP.NET的MVC项目
  7. Mac电脑:Android Studio 连接 MUMU 网易模拟器
  8. 数值分析(科学与工程计算、计算方法)
  9. STM32—驱动GY85-IMU模块
  10. 如何批量将JPG图片转换成BMP格式?
  11. python爬取微博内容_python如何抓取新浪微博的微博内容!
  12. 06-jQuery属性操作
  13. 学习如何使用电脑客户端和ESP8266客户端来连接MQTT服务端以及订阅主题发送主题操作
  14. ping命令的多种玩法,以前竟然只用它来测试网速!
  15. php表格制作4行两列的表格,excel表格怎么插行和列?
  16. Java学习第七项--类和对象
  17. 数据的计算(大数据)
  18. 人脸识别门禁方案汇总和应用分析,解析指标背后的含义
  19. 从苹果开发者网站上申请邓氏编码遇到的坑
  20. 程序员不要太过于看重编码技巧,相比而言思想更重要

热门文章

  1. 强制在线带修区间LCM(线段树+质因子状压)
  2. 计算机组装遇到问题,组装电脑硬件遇到问题怎么办 组装电脑硬件问题解决方法【详解】...
  3. 【财富空间】格局大不大,看这一点就知道了
  4. tvs管参数数解读_关于TVS管选型的几个参数 2019-01-19
  5. 保护眼睛,小心寄生虫。
  6. Android9.0 Launcher启动Activity详解(一)
  7. Java产生的历史与现状
  8. 尉氏短期计算机培训,在尉氏烘焙短期培训时尚魅影烘焙培训
  9. XRP突破在即?瑞波公司投资5亿美元只为增加XRP用例
  10. 【拼车小程序源码推荐】方便省力快速搭建首选人人拼车CMS系统