math

  • math.ceil(a): 用来返回≥a的最小整数
  • math.floor(a):用来返回≤a的最大整数

round(a [,b])

  • 如果没有参数b,只有a,round()作用是四舍五入
  • 如果有参数b,round()作用是对a保留b位小数
print(round(100.1234))  # 四舍五入为100
print(round(100.1234, 2)) # 对100.1234保留2位小数,结果100.12
>>> 100
>>> 100.12

random

  • random.random():返回在范围大于或等于0.0,且小于1.0内的随机浮点数
  • random.randrange(stop): 返回在范围大于或等于0,且小于stop内,步长为1的随机整数
  • random.randrange(start, stop[, step]): 返回在范围大于或等于start,且小于stop内,步长为step的随机整数
  • random.randint(a, b): 返回在范围大于或等于a,且小于或等于b之间的随机整数

datatime

Python官方提供的日期和时间模块主要有time和datetime模块。time偏重于底层平台,模块中大多数函数会调用本地平台上的C链接库,因此有些函数运行的结果,在不同的平台上会有所不同。datetime模块对time模块进行了封装,提供了高级API

datetime模块的核心类是datetime、date、time类

datetime类

一个datetime对象可以表示日期和时间等信息,创建datetime对象可以使用如下构造方法:

datetime.datetime(year, month, day, hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

其中year、month、day是不可以省略的;tzinfo是时区参数,默认值是None,表示不指定时区;除了tzinfo外,其他的参数全部为合理范围的整数,具体取值范围就跟生活中的时间一样,比如1月没有32号,这里说明一下microsecond的取值范围为:0≤microsecond<1000000

datetime类提供了一下方法

  • datetime.today(): 返回当前本地日期和时间
  • datetime.now(tz=None): 返回本地当前的日期和时间,如果参数tz=None或未指定,则等同于today()
  • datetime.utcnow(): 返回当前UTC日期和时间
  • datetime.fromtimestamp(timestamp, tz=None): 返回与UNIX时间戳对应的本地日期和时间
  • Datetime.utcfromtimestamp(timestamp): 返回与UNIX时间戳对应的UTC日期和时间
import time
from datetime import datetime # timestamp转datetmine
timestamp = time.time()
print(timestamp)
dt = datetime.fromtimestamp(timestamp)
print(dt)dt = datetime.now()
>>> 1609041543.103592
>>> 2020-12-27 11:59:03.103592 # datetime转timestamp
dt = datetime.now()
print(dt)
timestamp = datetime.timestamp(dt)
print(timestamp)
>>> 2020-12-27 11:57:22.330620
>>> 1609041442.33062

注意:在Python语言中时间戳单位是"秒",所以它会有小数部分。而其他语言如Java单位是"毫秒",当跨平台计算时间需要注意这个差别

实战例子

# 需求:将python生成的时间戳转换为java的格式来匹配你们公司的java后端
timestamp = str(int(round(time.time(), 3) * 1000)) # 一行代码轻松解决
”“”
解析过程:1.执行time.time()获取当前时间戳
2.执行round(time.time(), 3)python默认是保留6位小数,这里保留3位小数,因为python时间戳单位是秒,java是毫秒,
3.将第2步得到的结果int(),确保是int类型,再乘以1000,将时间戳单位转换为毫秒
4.最后用str(),确保timestamp的类型是字符串类型
“”“

date类

  • date.today(): 返回当前本地日期
  • date.fromtimestamp(timestamp): 返回与UNIX时间戳对应的本地日期

time类

datetime.time(hour=0, minute=0, second=0, microsecond=0, tzinfo=None)

日期时间格式化

  • str转换为datetime

    很多时候,用户输入的日期和时间是字符串,要处理日期和时间,首先必须把str转换为datetime。转换方法是通过datetime.strptime()实现,需要一个日期和时间的格式化字符串:
from datetime import datetime
t = datetime.strptime('2018-4-1 00:00','%Y-%m-%d %H:%M')
print(t)
>>> 2018-04-01 00:00:00
  • datetime转换为str

    如果已经有了datetime对象,要把它格式化为字符串显示给用户,就需要转换为str,转换方法是通过strftime()实现的,同样需要一个日期和时间的格式化字符串:
from datetime import datetime
now = datetime.now()
print(now.strftime('%a, %b %d %H:%M'))
>>> Mon, May 05 16:28

python进阶(2)python最常用的模块的更多相关文章

  1. Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型)

    Python进阶(十)----软件开发规范, time模块, datatime模块,random模块,collection模块(python额外数据类型) 一丶软件开发规范 六个目录: #### 对某 ...

  2. Python进阶【第十一篇】模块(下)之常用模块

    内置模块是Python自带的功能,在使用内置模块相应的功能时,需要[先导入]再[使用] 一.time模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳 ...

  3. Python进阶-XII serialize(序列化)、序列化模块

    一.serialize 序列化 1.什么叫序列化——将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在 ...

  4. Python进阶【第十篇】模块(上)

    ·一.模块 模块就是一组功能的集合体,我们的程序可以导入模块来复用模块里的功能.为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这 ...

  5. python学习之day6,常用标准模块

    1.时间模块 time import time #时间戳转字符串格式 a = time.time() print(a) #打印时间戳 b = time.localtime(a) #把时间戳转换成时间对 ...

  6. python与系统做交互常用的模块和使用方法

    1.使用os模块与系统做简单命令的交互 >>>import os >>>os.popen('pwd') <open file 'pwd', mode 'r' ...

  7. python进阶:Python进程、线程、队列、生产者/消费者模式、协程

    一.进程和线程的基本理解 1.进程 程序是由指令和数据组成的,编译为二进制格式后在硬盘存储,程序启动的过程是将二进制数据加载进内存,这个启动了的程序就称作进程(可简单理解为进行中的程序).例如打开一个 ...

  8. python 进阶篇 python 的值传递

    值传递和引用传递 值传递,通常就是拷贝参数的值,然后传递给函数里的新变量,这样,原变量和新变量之间互相独立,互不影响. 引用传递,通常是指把参数的引用传给新的变量,这样,原变量和新变量就会指向同一块内 ...

  9. python进阶06 常用问题库(2)datetime模块 base64

    python进阶06 常用问题库(2)datetime模块 base64 一.datetime模块(时间) 1.datetime.time() t=datetime.time(20,43,30,1) ...

  10. python进阶05 常用问题库(1)json os os.path模块

    python进阶05 常用问题库(1)json os os.path模块 一.json模块(数据交互) web开发和爬虫开发都离不开数据交互,web开发是做网站后台的,要跟网站前端进行数据交互 1.什 ...

随机推荐

  1. 函数式编程(__slots__)

    正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: class Student(object): pa ...

  2. debian 屌丝日记

    好几年前,刚开始学习linux时,写的笔记,现在看来还挺有意思的,发出来 纪念下   1.安装debian系统,只安装最基本系统 不要桌面,不要print server,具体不会看网上图文并茂的 1) ...

  3. 26.Apache

    1.Apache简介 Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源代码的网页服务器软件,可以在大多数电脑操作系统中运行,由于其跨平台和安全性(尽管不断有 ...

  4. Joomla 3.4.6 RCE复现及分析

    出品|MS08067实验室(www.ms08067.com) 本文作者:whojoe(MS08067安全实验室SRST TEAM成员) 前言 前几天看了下PHP 反序列化字符逃逸学习,有大佬简化了一下 ...

  5. 给jekyll博客添加天气插件

    layout: post title: 给博客添加天气插件 date: 2020-04-26 author: Dapenson header-img: img/post-bg-debug.png ca ...

  6. 【STM32】时钟

    1. 在STM32中,有五个时钟源,为HSI.HSE.LSI.LSE.PLL: ① HSI是高速内部时钟,RC振荡器,频率为8MHz: ② HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源 ...

  7. Ubuntu18.04系统设置为中文语言

    1.选择右上角设置按钮 2.管理已安装的语言 3.安装简体中文 安装好后是这样的 会发现汉语中文那一块是灰色的,怎么点都点不亮 4.拖拽 汉语(中国) 到最顶边 然后应用 5.重启 然后就出现这个画面 ...

  8. Notepad++ 替换 CRLF 为 LF

    对于文件中每一行的结尾符号,Windows 下默认为 CRLF,而 Unix 下默认为 LF. 所以经常会有这样的情况发生:在 Windows 系统下编辑的文件放在 Unix 下不能正常执行,比如 b ...

  9. UVA-12304 2D Geometry 110 in 1! (有关圆的基本操作)

    UVA-12304 2D Geometry 110 in 1! 该问题包含以下几个子问题 CircumscribedCircle x1 y1 x2 y2 x3 y3 : 三角形外接圆 Inscribe ...

  10. 【noi 2.6_9283】&【poj 3088】Push Botton Lock(DP--排列组合 Stirling数)

    题意:N个编号为1~N的数,选任意个数分入任意个盒子内(盒子互不相同)的不同排列组合数. 解法:综合排列组合 Stirling(斯特林)数的知识进行DP.C[i][j]表示组合,从i个数中选j个数的方 ...