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)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!