Python 官网:https://www.python.org/
-
Free:大咖免费“圣经”教程《 python 完全自学教程》,不仅仅是基础那么简单……
自学并不是什么神秘的东西,一个人一辈子自学的时间总是比在学校学习的时间长,没有老师的时候总是比有老师的时候多。
—— 华罗庚
目录
1、自定义类 LocaltimeShow(当前时间显示)
2、实现时钟显示有两种方式
3、本练习完整源码
看到大佬的自定义类 Clock(电子时钟)——点击链接打开大佬博文,近文末有电子时钟完整源码——,才看到自己以前的练习代码《当前时间显示器(代码屏显)》、《python中文日期时间显示》有多丑😄😄。
赶紧滴,跟着大佬学一个。🤩🤩
自定义类 LocaltimeShow(当前时间显示):
class LocaltimeShow:
''' 显示当前时间 '''
def __init__(self):
'''
初始化变量:
self.hour 小时数
self.minute 分钟数
self.sec 秒数
'''
from time import localtime # 加载当前时间获取方法。
t = localtime() # 获取当前时间数组。
self.sec = t[5] # 取秒。
self.minute, self.hour = t[4], t[3]%12 # 取分、时(小时数,24小时显示直接取,12小时显示模12)。
def run(self):
''' 时钟走字 '''
self.sec += 1
if not self.sec%60: # 分钟数进位。
self.sec = 0
self.minute += 1
if not self.minute%60: # 小时数进位。
self.minute = 0
self.hour += 1
if not self.hour%12: # 12小时显示模12。
self.hour = 0
def show(self):
'''
返回时钟显示格式化字符串。
(用自定义工具模块 color(),
返回绿色字符控制的格式化时间字符串。)
'''
return f" {self.hour:0>2}:{self.minute:0>2}:{self.sec:0>2} "
此自定义 LacaltimeShow 类,有三个属性,self.hour(时)、self.minute(分)、self.sec(秒),两个方法 run(时钟走字)、show(当前时钟字符格式化字符串返回)。类属性时、分、秒从 time 模块的 localtime() 方法获取的当前时间数组中获取。
实现时钟显示有两种方式:
一、while 循环一秒一次获取当前时间数组并从中读取时、分、秒,实现当前时钟显示。
if __name__ == '__main__':
from time import sleep # 加载时间模块 sleep() 方法。
while True: # 一直循环。
t = LocaltimeShow() # 自定义类实例。
print(color(t.show(),'f_green').center(59, '-'), end='\r') # end='\r',回车不换行,时钟字符始终在同一位置刷新。
sleep(1) # 一秒刷新显示一次。
二、获取当前时间数组并从中读取时、分、秒,while 循环一秒一次调用自定义类 run(时钟走字) 方法走字,实现当前时钟显示。
if __name__ == '__main__':
from time import sleep # 加载时间模块 sleep() 方法。
t = LocaltimeShow() # 自定义类实例。
while True: # 一直循环。
print(color(t.show(),'f_green').center(59, '-'), end='\r') # end='\r',回车不换行,时钟字符始终在同一位置刷新。
sleep(1) # 暂停1秒。
t.run() # 调用时钟走字方法走字。
值得注意的是:经过试炼,发现用自定义类的run方法实现时钟显示代码运行所消耗的时间累积会造成时间误差,运行代码时间越长误差越大。“每次打印都从当前时间数组取值”的实现方式相对较好,每秒都在修正时钟显示误差(每次打印)。
冒个泡:我看过大佬的“电子时钟”代码,就热炒热卖“背”下来了,在“时钟走字”方法中的是sleep(1)后再走一秒。比对大佬代码,他是在调用run()方法是才 sleep(1)的,为了和大佬保持“高度一致”,我调整的我的代码。(无所谓谁优谁劣,只是喜好和习惯而已,实现效果“完全一致”。我喜好和习惯的逻辑与大佬稍有差迟而已,不必介怀。)
#!/sur/bin/nve python
# -*- coding:utf8 -*-
#qpy:console
from mypythontools import TimeSpan, \
wait, color, cut_line
print (f"\n\n{color(' 试炼数据正在制造…… ','f_green').center(49, '-')}")
class LocaltimeShow:
''' 显示当前时间 '''
def __init__(self):
'''
初始化变量:
self.hour 小时数
self.minute 分钟数
self.sec 秒数
'''
from time import localtime # 加载当前时间获取方法。
t = localtime() # 获取当前时间数组。
self.sec = t[5] # 取秒。
self.minute, self.hour = t[4], t[3]%12 # 取分、时(小时数,24小时显示直接取,12小时显示模12)。
def run(self):
''' 时钟走字 '''
self.sec += 1
if not self.sec%60: # 分钟数进位。
self.sec = 0
self.minute += 1
if not self.minute%60: # 小时数进位。
self.minute = 0
self.hour += 1
if not self.hour%12: # 12小时显示模12。
self.hour = 0
def show(self):
'''
返回时钟显示格式化字符串。
(用自定义工具模块 color(),
返回绿色字符控制的格式化时间字符串。)
'''
return f" {self.hour:0>2}:{self.minute:0>2}:{self.sec:0>2} "
if __name__ == '__main__':
from time import sleep
# 实现方式一
while True:
t = LocaltimeShow() # 自定义类实例。
print(color(t.show(),'f_green').center(59, '-'), end='\r') # end='\r',回车不换行,时钟字符始终在同一位置刷新。
sleep(1) # 一秒刷新显示一次。
# 实现方式二
t = LocaltimeShow() # 自定义类实例。
while True:
print(color(t.show(),'f_green').center(59, '-'), end='\r') # end='\r',回车不换行,时钟字符始终在同一位置刷新。
sleep(1) # 暂停1秒。
t.run() # 调用时钟走字方法走字。
大佬博文(点击下面链接打开大佬博文,近文末有电子时钟完整源码):
我以前的丑代码博文笔记:
My Up and Down:
__上一篇:__ 练习:小炼二维数组__下一篇:__ 单词记忆系统一:菜单循环和菜单确认(Python 自定义类、自定义模块的相对路径import)
我的HOT博:
- 练习:银行复利计算(用 for 循环解一道初中小题)(1040阅读)
- pandas 数据类型之 DataFrame(1223阅读)
- 班里有人和我同生日难吗?(概率probability、蒙特卡洛随机模拟法)(2057阅读)
- Python字符串居中显示(1394阅读)
- 练习:求偶数和、阈值分割和求差( list 对象的两个基础小题)(1632阅读)
- 用 pandas 解一道小题(1954阅读)
- 可迭代对象和四个函数(1061阅读)
- “快乐数”判断(1224阅读)
- 罗马数字转换器(构造元素取模)(1923阅读)
- Hot:罗马数字(转换器|罗生成器)(3371阅读)
- Hot:让QQ群昵称色变的代码(24954阅读)
- Hot:斐波那契数列(递归| for )(3923阅读)
- 柱状图中最大矩形(1639阅读)
- 排序数组元素的重复起止(1230阅读)
- 电话拨号键盘字母组合(1335阅读)
- 密码强度检测器(1779阅读)
- 求列表平衡点(1804阅读)
- Hot: 字符串统计(4169阅读)
- Hot:尼姆游戏(聪明版首发)(3405阅读)尼姆游戏(优化版)(974阅读)
推荐条件
点阅破千
精品文章:
- 好文力荐:《python 完全自学教程》齐伟书稿免费连载
- OPP三大特性:封装中的property
- 通过内置对象理解python'
- 正则表达式
- python中“*”的作用
- Python 完全自学手册
- 海象运算符
- Python中的 `!=`与`is not`不同
- 学习编程的正确方法
来源:老齐教室
Python 入门指南【Python 3.6.3】
好文力荐:
-
全栈领域优质创作者——寒佬(还是国内某高校学生)好文:《非技术文—关于英语和如何正确的提问》,“英语”和“会提问”是学习的两大利器。