Python学习-8.1.1 标准库(time库的基础与实例)

news2024/11/17 5:48:48

2.1 time库

time库是Python提供的处理时间标准库。time库提供系统级精确计时器的计时功能,可以用来分析程序性能,也可以让程序暂停运行时间。
在这里插入图片描述
2.1.1 时间处理函数
在这里插入图片描述

  • time.time()函数:获取当前时间戳。 代表着如今的时间与1970年1月1日0分0秒的时间差(以秒为单位);1970年是计算机元年。
    time()函数可以用于获取程序运行时间。
import time
first_time=time.time()#获取初始时间
#程序运行
a=0
for i in range(10000000):
    a+=1
#程序结束
last_time=time.time()#获取结束时间
print(last_time-first_time,'秒')
--输出
1.4615564346313477#计算机运行一千万次运算只需要1.5秒
  • time.gmtime():获取当前时间戳对应的struct_time对象,为世界统一时间,而非北京时间。
import time
print(time.gmtime())
--输出
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=2, tm_hour=2, tm_min=20, tm_sec=13, tm_wday=4, tm_yday=336, tm_isdst=0)
  • time.gmtime():获取当前时间戳对应的struct_time对象,为本地时间。
import time
print(time.gmtime())
--输出
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=2, tm_hour=10, tm_min=20, tm_sec=13, tm_wday=4, tm_yday=336, tm_isdst=0)
#其中的wday为4,代表程序运行时为周五,原因是计算机输出为0-6,对应周一到周日
#tm_day为336代表今日为本年第336天
  • time.ctime():获取当前时间戳对应的易读字符串表示,内部会调用time.localtime()函数以输出当地时间。
import time
print(time.ctime())
--输出
Fri Dec  2 10:24:58 2022
  • struct_time对象

在这里插入图片描述

2.1.2 时间格式化
在这里插入图片描述

  • time.mktime(t)函数:可以将struct_time对象t转换为时间戳,因此mktine()函数可以说是gmtime()和localtime()的反函数
import time
print(time.mktime(time.gmtime()))
print(time.mktime(time.localtime()))
--输出
1669919649.0
1669948449.0
  • time.strftime(t)函数:t为struct_time对象,该函数是时间格式化最有效的方法,几乎可以以任何通用格式输出时间。该方法利用一个格式字符串,对时间格式进行表达。
    在这里插入图片描述
import time
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))#可以拼接组合输出的形式
--输出
2022-12-02 10:42:13

time.strptime(str1,str2)函数:与strftime()函数完全相反,用于提取字符串中的时间来生成struct_time对象,可以很灵活的作为time模块的输入接口
其中str1为字符串格式的时间,str2对应str1的格式,按照格式识别struct_time的元素。

import time
print(time.strptime("2022-12-02 10:42:13","%Y-%m-%d %H:%M:%S"))
--输出
time.struct_time(tm_year=2022, tm_mon=12, tm_mday=2, tm_hour=10, tm_min=42, tm_sec=13, tm_wday=4, tm_yday=336, tm_isdst=-1)

2.1.3 程序计时
在这里插入图片描述

  • time.sleep()函数:推迟调用线程的时间,可通过参数secs(指秒数),表示进程挂起的时间。
    sleep函数多会应用于多线程程序中。
import time
first_time=time.time()
last_time=time.time()
print(last_time-first_time)
--输出
0.0#程序运行耗时不到0.1s

#加上睡眠时间
import time
first_time=time.time()
time.sleep(2)
last_time=time.time()
print(last_time-first_time)
--输出
2.0001230239868164#程序耗时加上了2s睡眠时间
  • time.perf_counter()函数:返回一个性能计数器的值(在分秒内),即一个具有最高可用分辨率的时钟,可以测量非常短的时间。
    perf_counter()函数作用和time()函数类似,但是精度要高于time()函数。
import time
#使用time()函数计时
b1=time.time()
b2=time.time()
print(b2-b1)
#使用perf_counter()函数计时
a1=time.perf_counter()
a2=time.perf_counter()
print(a2-a1)
--输出
0.0
2.00001522898674e-07#可以看到perf_counter()函数的精度远高于time函数

#当加上睡眠时间时,time函数的精度和perf_counter()函数类似
import time
b1=time.time()
a1=time.perf_counter()
time.sleep(2)#运行两秒睡眠
a2=time.perf_counter()
b2=time.time()
print(b2-b1)
print(a2-a1)
--输出
2.0002999305725098
2.0003594998270273

perf_counter()函数包括了在睡眠期间的时间,并且是系统范围的。返回值的引用点是未定义的,因此只有连续调用的结果之间的差异是有效的。

2.1.4 综合练习—程序进度条

import time
#模拟进度条显示
scale=50
print("------------程序开始执行")
start_time=time.perf_counter()
for i in range(scale+1):
    a="*"*i
    b="."*(scale-i)
    c=(i/scale)*100
    dur=time.perf_counter()-start_time
    print("\r{:^3.0f}%[{}->{}]{:.2f}s".format(c,a,b,dur),end="")
    time.sleep(0.1)

print("\n------------程序执行结束")#增加/n保证输出时换行

其中:
①使用\r表示将光标的位置退回本行的开头,end=""则表示不换行,两者结合保证输出一直只有一行
②{:3.0f}中代表居中,3代表长度为3,.0代表精度为小数点0位,f为浮点型

输出效果:
运行过程中:在这里插入图片描述
运行结束:在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/70712.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

18.10 字节码指令集与解析举例 - 同步控制指令

同步控制指令 组成 java虚拟机支持两种同步结构:方法级的同步和方法内部一段指令序列的同步,这两种同步都是使用monitor来支持的。 方法级的同步 方法级的同步:是隐式的,即无须通过字节码指令来控制,它实现在方法调…

Java+SSM网上书城全套含微信支付电商购物(含源码+论文+答辩PPT等)

项目功能简介: 本项目含代码详细讲解视频,手把手带同学们敲代码从0到1完成项目 该项目采用技术Springmvc、Spring、MyBatis、Tomcat服务器、MySQL数据库 项目含有源码、配套开发软件、软件安装教程、项目发布教程以及代码讲解教程 项目功能介绍: 系统管理…

HTML做一个简单的页面(纯html代码)地球专题学习网站

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

STM32F4 | 新建工程模板——寄存器版本 | HAL库入门 | 新建工程模板——库函数版本

文章目录一、新建工程模板——寄存器版本二、HAL入门1.固件库和寄存器的区别2.STM32CubeF43.HAL库包介绍三、新建HAL库工程模板一、新建工程模板——寄存器版本 开发环境:MDK5软件包:STM32CubeF4包 新建工程模板的一般步骤为: 新建工程目录&a…

【UE5】多用户协同编辑

UE5新出了一个多用户协同功能所以想搭一个来玩玩。 Epic已经将流程极度的简化了,在B站虚幻官方也放出了教程视频,[官方文档](多用户编辑入门 | 虚幻引擎文档 (unrealengine.com))也有教程。 这里做一下简要记录。 1.启用插件 首先打开Multi-User Edi…

SoftPerfect NetWorx中管理流量和宽带设备工具

SoftPerfect NetWorx中管理流量和宽带设备工具 NetWorx是用于在Windows中管理流量和宽带设备的简单工具和实用程序。如果我们利用交通设施,毫不拖延地利用教育系统,以及与各种驾驶员相关的学习,那么当加载互联网时,通过软件秘密使…

[附源码]计算机毕业设计酒店客房管理系统Springboot程序

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

BaiqiSoft MstHtmlEditor for .NET负责编辑的控制器

BaiqiSoft MstHtmlEditor for .NET负责编辑的控制器 BaiqiSoft MstHtmlEditor获取.NET for win表单被认为是一个元素,用户可以轻松灵活地将其融入到C#、VB.NET甚至WPF软件中。负责编辑的控制器,.NET Win Forms的MstHtmlEditor,允许用户和开发人员,甚至非技术用户使用该系列…

Docker入门第二期

写目一、宿主机与容器之间的文件拷贝二、数据卷三、数据卷容器四、Dockerfile一、宿主机与容器之间的文件拷贝 docker run -p 3307:3306 --name mysql1 -di -v /home/javaxl/data/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/javaxl/data/mysql/data/:/var/lib/…

用Python把附近的足浴店都给采集了一遍,好兄弟:针不戳~

前言 嗨喽,大家好呀~这里是爱看美女的小编 又到了学Python时刻~ (文末送读者福利) 我又来了!今天整个好玩的,你们肯定喜欢~ 咱们上班累了,不得好好犒劳一下自己,是吧 ! 于是我整…

相控阵天线(十三):天线校准技术仿真介绍之换相法

目录简介换相法算法简介换相法校准对方向图的影响Hadamard控制矩阵的换相法仿真循环移相控制矩阵的换相法仿真简介 传统方法按照测试区域分,可分为远场、中场和近场测量。远场测量发展成熟,可直接测量方向图,但对条件要求较高,且…

SpringMVC从入门到精通(二)

文章目录6. 响应视图和结果数据6.1 返回值类型6.2 springmvc作用域传值6.3 转发和重定向6.4 json数据格式的请求与响应7.SpringMVC 实现文件上传7.1 文件上传三要素7.2 文件上传依赖7.2 文件上传示例(后端需要配置文件解析器)8. SpringMVC 中的异常处理8…

FMT航点飞行(一)

一、航点飞行前检查: (1)将飞行器在position模式下启动飞行,移动一个距离;在qgc地面站地图上观察移动的距离,记录大概移动的距离为D;打航向,观察地磁计转向是否正常; &a…

Redisson的看门狗机制究竟有什么用?

Redisson的看门狗机制究竟有什么用? 一、普通的Redis分布式锁的缺陷 基于Redis的分布式锁 Redis Lua 脚本实现分布式锁 二、watchDog的自动延期机制 调用链关系 源码解析 tryLock() tryAcquire() tryAcquireAsync() scheduleExpirationRenewal() 锁…

Nginx+tomcat集群

Nginxtomcat集群 定义:在测试环境中有多个tomcat运行这一个项目,需要nginx管理 2特点:1,增加项目访问能力 2,增加服务器性能 3,实现不同负载均衡 3负载均衡:根据每台服务器的性能分配其能承受住…

【Linux】程序地址空间

目录 地址空间是什么 写时拷贝 地址空间存在的意义 如何管理进程地址空间 地址空间是什么 这是我们常说的c/c程序地址空间,但是这里的空间具体指的是哪里的空间,举一个例子方便理解: 运行结果: 代码运行十秒后子进程修改了全局…

目标检测—DiffusionDet:用于检测的概率扩散模型笔记—DDPM

目录 一、Introduction 二、相关工作 三、方法 1.准备工作 2.架构 3、训练 4.预测过程 四. 实验 1.训练策略 2.main property 3.消融实验 五、代码分析 1.测试 demo.py 2.训练 train-net.py 总结 DiffusionDet:将目标检测问题构建为一个从带噪框到目…

安卓APP源码和设计报告——麻雀笔记

目录 一 安卓应用程序开发背景3 1.1开发背景3 1.2开发环境4 二 安卓应用程序开发理论与方法4 三 记事本应用程序的设计与实现5 3.1 拟解决的问题及目标5 3.2 总体设计6 3.3 详细设计与编码实现6 四 总结23 一 安卓应用程序开发背景 1.1开发背景 1.智能手机的市场 …

四年一次的世界杯来了,看看还剩下哪些赛程呢?

足球世界杯的由来2022年的世界杯目前世界杯的赛程看看排在前十的球员几个疑问?世界杯的由来 足球大家应该知道,是一项体育运动,而且是一项多人的体育运动。 世界杯的诞生,源于1950年的南非公开赛,在当时只有5支队伍参…

微信视频播放点播小程序毕业设计,在线教育视频学习小程序系统设计与实现,微信小程序毕业设计论文怎么写毕设源码开题报告需求分析怎么做

基于微信小程序的毕业设计题目(12)php在线教育视频点播学习小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板) 项目背景和意义 目的:本课题主要目标是设计并能够实现一个基于微信小程序视频点播系统,前台用户使用小程序&a…