今天我由于兴趣与昨天的一个任性想法,今天的任务是完成一个python闹钟的设计。
在设计闹钟的过程中首先需要知道当前的时间,可以使用
import time模块进行加载,里面有时间的所有相关操作。
得到当前时间
t = time.localtime()
因为设置闹钟是按照每天的小时与分钟来设置,从时间中获得这两个数字
now = time.strftime("%H %M", t).split(’ ')
之后将设计设计要响的两个闹钟时间与现在的时分进行匹配,如果一致则时间到,要发生闹钟对应的事件。
闹钟,既然要闹必须要有时间,使用模块winsound可以导入声音播放功能。
winsound既有mav播放功能,也有喇叭设置功能,我选择了使用喇叭,因为他既可以设置声音大小,也可以设置时间,简单方便
winsound.Beep(2500,3000)
闹铃一直响会有一点烦的感觉,加入暂停认为感觉好一点
time.sleep(27)
这样一个闹钟就制作完成。
闹钟程序
# -*- coding: utf-8 -*-
"""
Created on Wed Aug 21 09:07:34 2019
@author: Administrator
"""
import winsound ,math# 导入此模块实现声音播放功能
import time
t = time.localtime()
now = time.strftime("%H %M", t).split(' ')
hour = now[0]
minute = now[1]
h=[]
#h = input('请输入闹钟的时与分,用空格分割:').split(' ')
h=[('9','30'),('20' ,'38')]
##print(h[0])
flag=2
while flag:
t = time.localtime()
now = time.strftime("%H %M", t).split(' ')
now=str(now)
print('h:'+str(h))
print('now:'+str(now))
print(h[0][1])
print(str(now[1]))
if h[0][0] == now[0] and h[0][1] == now[1]:
winsound.Beep(2500,3000)
time.sleep(27)
flag = 2
print("早上时间,吃药时间到了!")
if h[1][0] == now[0] and h[1][1] == now[1]:
winsound.Beep(2500,3000)
time.sleep(17)
flag = flag-1
print("晚上时间,吃药时间到了!")
print('运行终止')
#print(t)
#print(now)
闹钟是我差不多花了一个上午弄完的,效率是有一点慢,下午观看了一下CSDN收藏的东西有一些什么零零碎碎的文章,找到了以前遗漏的有关二维码文章没有看过,下午一直在理解二维码。
在二维码的生成中使用qrcode,使用它来生成二维码,这个现在我只是会使用,但是不懂具体怎么做。
识别二维码使用pyzbar,zbar只能够在python2使用,在python3中使用会出错。
生成文字二维码
import qrcode
# 二维码内容
data = "hello world"
# 生成二维码
img = qrcode.make(data=data)
# 直接显示二维码
img.show()
# 保存二维码为文件
# img.save("hello.jpg")
import pyzbar.pyzbar as pyzbar
from PIL import Image,ImageEnhance
image = "生成二维码.bmp"
img = Image.open(image)
#img = ImageEnhance.Brightness(img).enhance(2.0)#增加亮度
#img = ImageEnhance.Sharpness(img).enhance(17.0)#锐利化
#img = ImageEnhance.Contrast(img).enhance(4.0)#增加对比度
#img = img.convert('L')#灰度化
#img.show()
barcodes = pyzbar.decode(img)
for barcode in barcodes:
barcodeData = barcode.data.decode("utf-8")
print(barcodeData)
在识别二维码的过程中我遇到了两个错误
错误1:
导入不了Image,网上查找了好久发现直接使用import而导致的错误,要使用from PIL import Image,具体原因不知道。
错误2:
一直Image.show()函数,图片无法显示,报错关联程序,报错信息没有头绪,查找资料发现图片处理时会先变成bmp格式,由于电脑很少使用这一种格式,没有关联打开这一种格式的关联程序,只要设置一个图片命名为bmp格式,右击-打开方式-默认打开程序-选择一种软件-》最后Image.show()方法正常使用。