005集 内置模块math、datetime等应用实例—python基础入门实例

        在真正做项目时,我们会使用别人已经开发好的模块,这样就不必 从零开发项目了,还可以加快开发速度。这些模块可能是Python官方提 供的,也可能是第三方开发的。Python官方提供的模块,就叫作“内置 模块”。

math模块相关函数

 math模块中的通用函数:
    1. ceil获取大于或等于输入值的最小整数(向上取整),math.ceil(5.2): 6
    2. floor获取小于或等于输入值的最大整数(向下取整),math.floor(5.2): 5
    3. fabs获取输入值的绝对值,math.fabs(-5.2): 5.2
    4. factorial获取输入值的阶乘,math.factorial(5): 120
    5. gcd获取输入值x和y的最大公约数,math.gcd(40, 60): 20
    6. modf获取输入值的小数和整数部分,math.modf(5.2): (0.20000000000000018, 5.0)
    7. fmod获取输入值x对y取模,x-n*y其中n=math.floor(x/y),,math.fmod(5.2, 2): 1.2000000000000002
    8. remainder获取输入值x相对于y的余数,x-n*y其中n=math.ceil(x/y),math.remainder(5.2, 2)): -0.7999999999999998
    9. copysign获取输入值x的绝对值和输入值y的符号,math.copysign(5.2, -1): -5.2
    10. frexp返回一个元组(x,y),使得输入值=x*2**y,math.frexp(5.2): (0.65, 3)
    11. ldexp根据输入值x和y,返回x*(2**y),math.ldexp(0.65, 3): 5.2
    12. fsum返回可迭代对象中的迭代和,当数值为浮点数时候,推荐使用,math.fsum([1.2, 5.2, 3.0]): 9.4
    13. trunc返回输入值x的整数部分,math.trunc(5.2): 5
    14. isclose判断浮点数是否接近,默认相对误差为1e-9,math.isclose(5.20000001, 5.20000002): False
    15. isfinite判断输入值是否是有限数值,math.isfinite(5.2): True
    16. isinf判断输入值是否是正或者负无穷,math.isinf(-math.inf): True

17. isnan判断输入值是否是非数值类型,math.isnan(5.2): False

import math
print(math.ceil(2.4))
print(math.sqrt(25))
import datetime as dt #以下代码中datetime可简写为dt
print(dt.date(2021,10,1))
print(dt.time(7,15,30,10))
print(dt.datetime.today())
print(dt.datetime.now())
print(dt.timedelta(3,2,1,6))

 运行结果:

3
5.0
2021-10-01
07:15:30.000010
2024-01-10 11:16:17.514559
2024-01-10 11:16:17.514558
3 days, 0:00:02.006001

进程已结束,退出代码为 0

以下为pycharm中运行实例:

datetime模块主要用于带单位时间的运算。

一、四个类型基本类型
四个类型:date 类、time 类、datetime 类、timedelta 类

1.date类
对象是datetime.date(),提供三个基本参数:年、月、日

#创建date对象
>>> import datetime as dt
>>> x = dt.date(2021,10,1)
>>> x
datetime.date(2021, 10, 1)
2.time类
对象是datetime.time(),提供四个基本参数:时、分、秒、微秒

#创建time对象
>>> import datetime as dt
>>> y = dt.time(7,15,30,10)
>>> y
datetime.time(7, 15, 30, 10)
3.datetime类
对象是datetime.datetime(),是date类和time类的结合,提供七个基本参数:年、月、日、时、分、秒

#创建datetime对象
>>> import datetime as dt
>>> z = dt.datetime(2021,10,1,7,15,30)
>>> z
datetime.datetime(2021, 10, 1, 7, 15, 30)
4.timedelta类
对象是datetime.timedelta(),意义同数学上的delta,提供七个基本参数:日、秒、微秒、毫秒,分钟,小时,周星期

#创建timedelta对象
>>> import datetime as dt
>>> d = dt.timedelta(3,2,1,6)
>>> d
datetime.timedelta(days=3, seconds=2, microseconds=6001)
>>> g = dt.timedelta(weeks = 10)
>>> g
datetime.timedelta(days=70)
二、时间运算
共有运算:

标准格式化:<对象>.isoformat()
自定义格式化:<对象>.strftime(<含有%字符串>)
替换其中的时间元素(原对象不变):<对象>.replace()
1.date类
① 返回date对象的操作:

返回当地日期:datetime.date.today()
时间戳→date对象:datetime.date.fromtimestamp(<时间戳>)
② 对date对象的操作:

获取年:<date对象>.year
获取月:<date对象>.month
获取日:<date对象>.day
获取星期几(星期一为0):<date对象>.weekday()
获取星期几(星期日为0):<date对象>.isoweekday()
返回一个time.struct_time对象:<data对象>.timetuple()
>>> import datetime as dt
>>> dt.date.today()
datetime.date(2021, 10, 18)
>>> x = dt.date.fromtimestamp(123456789)
>>> x
datetime.date(1973, 11, 30)

>>> x.year
1973
>>> x.isoformat()
'1973-11-30'
>>> x.strftime('%Y,%m,%d')
'1973,11,30'
2.time类
① 对time对象的操作:

获取时:<time对象>.hour
获取分:<time对象>.minute
获取秒:<time对象>.second
获取微秒:<time对象>.microsecond
>>> import datetime as dt
>>> x = dt.time(8,15,22)
>>> x.second
22
>>> x.isoformat()
'08:15:22'
3.datetime类
① 返回datetime对象的操作:

返回当地时间:datetime.datetime.today()
返回时区时间:datetime.datetime.now(<时区参数>),若缺省则同today
时间戳→datetime对象:datetime.datetime.fromtimestamp(<时间戳>,<时区参数>)
结合date对象和time对象:datetime.datetime.combine(<date对象>, <time对象>)
格式化字符→datetime对象:datetime.datetime.strptime(<自定义的格式>, <%符号>)
>>> import datetime as dt
>>> x = dt.date(2021,10,1)
>>> y = dt.time(8,0,0)
>>> dt.datetime.combine(x,y)
datetime.datetime(2021, 10, 1, 8, 0)
>>> dt.datetime.strptime('2021-10-3', '%Y-%m-%d')
datetime.datetime(2021, 10, 3, 0, 0)
② 对datetime对象的操作:

对年月日时分秒微秒的获取,同date对象和time对象
获取date对象:<datetime对象>.date()
获取time对象:<datetime对象>.time()
获取星期几(星期一为0):<datetime对象>.weekday()
获取星期几(星期日为0):<datetime对象>.isoweekday()
返回一个time.struct_time对象:<datatime对象>.timetuple()
4.timedelta类
可以在date、time、datetime的同类型之间进行运算

>>> import datetime as dt
>>> x = dt.date(2021, 10, 1)
>>> y = dt.timedelta(10)
>>> z = x + y
>>> z
datetime.date(2021, 10, 11)
>>> w = dt.timedelta(weeks = 7)
>>> v = z + w
>>> v
datetime.date(2021, 11, 29)

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习分类任务中的准确率、精确率(查准率)、召回率(查全率)、F1值、ROC曲线的AUC值,

0. 混淆矩阵 其中关于 TP, TN; FP, FN 的解释&#xff1b; 其中 首字母 T&#xff0c;F代表预测的情况&#xff0c;即T代表预测的结果是对的&#xff0c; F代表预测的结果是错误的&#xff1b; 第二个字母代表预测是预测为 正样本&#xff0c;还是负样本&#xff0c; Positve…

java: 5-4 while循环 + do while循环

文章目录 1. while循环1.1 基本语法1.2 流程图1.3 上手练习1.4 细节1.5 练习题 2. do while 循环2.1 基本语法2.2 流程图2.3 上手练习2.4 细节2.5 练习题 【老韩b站视频笔记p126-p132】 1. while循环 1.1 基本语法 1.2 流程图 1.3 上手练习 输出 10 句 你好,韩顺平教育。 pu…

Python 基础(四):序列

目录 简介2 基本使用2.1 索引2.2 切片2.3 相加2.4 相乘2.5 元素是否在序列中2.6 内置函数 简介 Python 中的序列是一块可存放多个值的连续内存空间&#xff0c;所有值按一定顺序排列&#xff0c;每个值所在位置都有一个编号&#xff0c;称其为索引&#xff0c;我们可以通过索引…

第二证券:证监会紧急声明!加密货币大笔爆仓

当地时刻1月9日&#xff0c;美股三大指数涨跌纷歧。道指跌157.85点&#xff0c;跌幅为0.42%&#xff0c;报37525.16点&#xff1b;纳指涨13.94点&#xff0c;涨幅为0.09%&#xff0c;报14857.71点&#xff1b;标普500指数跌7.04点&#xff0c;跌幅为0.15%&#xff0c;报4756.50…

数据湖存储解决方案之Iceberg

1.Iceberg是什么&#xff1f; Apache Iceberg 是由 Netflix 开发开源的&#xff0c;其于2018年11月16日进入 Apache 孵化器&#xff0c;是 Netflix 公司数据仓库基础。Apache Iceberg设计初衷是为了解决Hive离线数仓计算慢的问题&#xff0c;经过多年迭代已经发展成为构建数据…

代码随想录算法训练营第二十四天| 回溯 491.递增子序列 46.全排列 47.全排列 II

491. 非递减子序列 此前通过used数组去重的操作的前提是需要首先给数组排序&#xff0c;本题不可以&#xff0c;因为求递增子序列时&#xff0c;原先的序列并不是一定递增的&#xff0c;此时进行排序后&#xff0c;此时递增子序列会包含其他原先不是原先数据的子序列。 递归参…

“高端”的位运算

王有志&#xff0c;一个分享硬核Java技术的互金摸鱼侠加入Java人的提桶跑路群&#xff1a;共同富裕的Java人 原计划迭代作为预备知识的收尾&#xff0c;不过在解2的幂和4的幂时&#xff0c;想到关于数字2的问题可以通过位运算去解决&#xff0c;因此补充了关于位运算的内容。 …

springboot+java+bootstrap商场摊位商铺租赁管理系统

商铺租赁管理系统分为管理员&#xff0c;房东&#xff0c;用户三种角色。 &#xff08;1&#xff09;管理员功能&#xff1a;管理员管理房东&#xff0c;管理公告&#xff0c;管理商铺出租&#xff0c;租赁合同等信息。 &#xff08;2&#xff09;房东功能&#xff1a;房东审核…

【算法与数据结构】746、LeetCode使用最小花费爬楼梯

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析&#xff1a;本题可以从0阶或者1阶台阶开始&#xff0c;每次爬楼梯所需的花费是之前的花费dp[i]从本层向上爬所需的…

【编译原理】期末预习PPT后三章笔记+LL(1) III

继续预习O.o 从这一章开始看自己班发的 PPT 了 LL(1)的部分因为班里发了所以又看了一遍hhh感觉比之前那个清楚一点 目录 I. 自顶向下 一、概念&#xff08;看一眼&#xff09; 1、语法分析的两大类分析方法 2、算法基本思想 3、自顶向下介绍 1&#xff09;一般过程 2&a…

关于LwRB环形缓冲区开源库的纯C++版本支持原子操作

1、LwRB环形缓冲区开源库&#xff1a; GitHub - MaJerle/lwrb: Lightweight generic ring buffer manager libraryLightweight generic ring buffer manager library. Contribute to MaJerle/lwrb development by creating an account on GitHub.https://github.com/MaJerle/l…

Linux内存管理:(七)页面回收机制

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 1. 触发页面回收 Linux内核中触发页…