Python学习笔记(四)——time库的使用

本文介绍了Python的time库,包括时间获取、格式化和程序计时等功能。通过示例展示了如何使用time.time(), time.ctime(), time.strftime()等函数进行时间操作,以及如何利用time.sleep()和time.perf_counter()进行程序性能分析。还探讨了创建文本进度条的方法,提供了不同实现版本的代码示例,是Python初学者理解时间处理和计时的实用教程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python学习笔记(四)——time库的使用

time库的使用

time库是Python中处理时间的标准库

  • 计算机时间的表达

  • 提供获取系统时间并格式化输出功能

  • 提供系统级精确计时功能,用于程序性能分析

import time

time.<b>()

time库的三类函数

  • 时间获取:time() ctime() gmtime()

  • 时间格式化:strftime() strptime()

  • 程序计时:sleep() perf_counter()

时间获取

时间获取函数描述
time()获取当前时间戳(1970年到现在以秒为单位的数值),即计算机内部时间值,浮点数。
ctime()获取当前时间并以易读的方式表示,返回字符串
gmtime()获取当前时间,表示为计算机可处理的时间格式

时间格式化

时间格式化将时间以合理的方式展示出来。

  • 格式化:类似字符串格式化,需要有展示模板

  • 展示模板有特定的格式化控制符组成

时间格式化函数描述
strftime(tpl,ts)将计算机时间转化字符串可读时间。tpl是格式化模板字符串,用来定义输出效果;ts是计算机内部时间类型变量。import time;t = time.gmtime();time.strftime(“%Y-%m-%d %H:%M:%S” , t)
strptime(str,tpl)将字符串时间转化为计算机可读时间,与striptime互逆。str是字符串形式的时间值;tpl是格式化模板字符串,用来定义输入效果。

格式化字符串

格式化字符串日期/时间说明值范围和实例
%Y年份0000~9999,如1900
%m月份01~12,如10
%B月份名称January~December,如April
%b月份名称缩写January~Dec,如Apr
%d日期01~31,如25
%A星期Monday~Sunday,如Wednesday
%a星期缩写Mon~Sun,如Wed
%H小时(24h制)00~23,如12
%I小时(12h制)01~12,如7
%p上/下午AM,PM,如PM
%M分钟00~59,如26
%S00~59,如26

程序计时

程序计时指测量起始动作所经历时间的过程,应用广泛。

包括测量时间函数perf_counter(),产生时间函数sleep()

程序计时函数描述
perf_counter()返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,连续调用差值才有意义
sleep(s)s拟休眠时间,单位是秒,可以使浮点数。如import time;def wait():time.sleep(3.3);wait()#程序将等待3.3秒后再退出

文本进度条实例

文本进度条

  • 采用字符串方式打印可以动态变化的文本进度条

  • 进度条需要能在一行中逐渐变化

如何获得文本进度条的变化时间?

  • 采用sleep()模拟一个持续的进度

  • 似乎没那么难

#TextProBarV1.py
import time
scale = 10
print("------执行开始------")
for i in range(scale+1):
                a = '*' * i
                b = '.' * (scale - i)
                c = (i/scale)*100
                print("{:^3.0f}%[{}->{}]".format(c,a,b))
                time.sleep(0.1)
print("------执行结束------")

单行动态刷新

刷新的本质:用后打印的字符覆盖之前的字符

不能换行:print()需要被控制,使用end=“ ”

要能回退:打印后光标退回到之前的位置,使用\r——刷新的关键

#TextProBarV2.py
import time
for i in range(101):
                print("\r{:3}%".format(i),end="")
                time.sleep(0.1)
#IDLE是开发环境,不是程序运行环境,\r被屏蔽
#TextProBarV3.py
import time
scale = 50
print("执行开始".center(scale//2, "-"))
start = time.perf_counter()
for i in range(scale+1):
                a = '*' * i
                b = '.' * (scale - i)
                c = (i/scale)*100
                dur = time.perf_counter() - start
                print("\r{:^3.0f}%[{}->{}]".format(c,a,b,dur),end='')
                time.sleep(0.1)
print("\n"+"执行结束".center(scale//2, "-"))

进度条拓展

  • 在任何运行时间较长的程序中增加进度条

  • 在任何希望提高用户体验的应用中增加进度条

  • 进度条是人机交互的纽带之一

文本进度条的不同设计函数:

在这里插入图片描述

开始展示慢些,后续增长快些更能增加用户体验

练习题

2018北理工python语言程序设计课后编程及测试解答

智能网联汽车的安全员高级考试涉及多个方面的专业知识,包括但不限于自动驾驶技术原理、车辆传感器融合、网络安全防护以及法律法规等内容。以下是针对该主题的一些核心知识解析: ### 关于智能网联车安全员高级考试的核心内容 #### 1. 自动驾驶分级标准 国际自动机工程师学会(SAE International)定义了六个级别的自动驾驶等级,从L0到L5[^1]。其中,L3及以上级别需要安全员具备更高的应急处理能力。 #### 2. 车辆感知系统的组成与功能 智能网联车通常配备多种传感器,如激光雷达、毫米波雷达、摄像头和超声波传感器等。这些设备协同工作以实现环境感知、障碍物检测等功能[^2]。 #### 3. 数据通信与网络安全 智能网联车依赖V2X(Vehicle-to-Everything)技术进行数据交换,在此过程中需防范潜在的网络攻击风险,例如中间人攻击或恶意软件入侵[^3]。 #### 4. 法律法规要求 不同国家和地区对于无人驾驶测试及运营有着严格的规定,考生应熟悉当地交通法典中有关自动化驾驶部分的具体条款[^4]。 ```python # 示例代码:模拟简单决策逻辑 def decide_action(sensor_data): if sensor_data['obstacle'] and not sensor_data['emergency']: return 'slow_down' elif sensor_data['pedestrian_crossing']: return 'stop_and_yield' else: return 'continue_driving' example_input = {'obstacle': True, 'emergency': False, 'pedestrian_crossing': False} action = decide_action(example_input) print(f"Action to take: {action}") ``` 需要注意的是,“同学”作为特定平台上的学习资源名称,并不提供官方认证的标准答案集;建议通过正规渠道获取教材并参加培训课程来准备此类资格认证考试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值