time模块 顾名思义就是时间模块 我们在之前就用过一些时间模块

比如你想要让打印的时间延迟就time.sleep()

首先我们知道这是一个时间操作的模块

它可以分为三种模式:时间戳模式、格式化时间模式、结构化时间模式

时间戳模式;

就是查看当前的时间的模式  一般是计算的时间差  这是精准的计算

import time
print(time.time()) #时间戳模式 精准的时间计算

通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量 就是从1970年的格林尼治时间来计算的

格式化时间 :其实就是像格式化类型一样输出时间  输出的是年月日

import time
print(time.strftime('%Y-%m-%d')) # 2018-04-24 查看当前的年月日
print(time.strftime('%y-%m-%d')) # 18-04-24 也是查看当前时间只不过是不同的时间来查看的
print(time.strftime('%Y-%m-%d %H:%M:%S')) # 2018-04-24 15:47:15 这个是查看当前的具体的年月日时间
%y 两位数的年份表示(00-99)
%Y 四位数的年份表示(000-9999)
%m 月份(01-12)
%d 月内中的一天(0-31)
%H 24小时制小时数(0-23)
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59)
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化的月份名称
%B 本地完整的月份名称
%c 本地相应的日期表示和时间表示
%j 年内的一天(001-366)
%p 本地A.M.或P.M.的等价符
%U 一年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始
%W 一年中的星期数(00-53)星期一为星期的开始
%x 本地相应的日期表示
%X 本地相应的时间表示
%Z 当前时区的名称
% %%号本身

结构化时间:

是以元组 的形式来把你所有的信息都放在元组内

import time
#是以元组的形式来显示的
print(time.localtime()) # 本地结构化时间
print(time.gmtime()) # 英国的结构化时间
#本地的结构化时间比英国的结构化时间少8个小时 因为时区的差异
索引(Index) 属性(Attribute) 值(Values)
0 tm_year(年) 比如2011
1 tm_mon(月) 1 - 12
2 tm_mday(日) 1 - 31
3 tm_hour(时) 0 - 23
4 tm_min(分) 0 - 59
5 tm_sec(秒) 0 - 60
6 tm_wday(weekday) 0 - 6(0表示周一)
7 tm_yday(一年中的第几天) 1 - 366
8 tm_isdst(是否是夏令时) 默认为0

   
     

时间戳 想要转化为格式化时间必须先转化为结构化时间再转化为想要的格式,就好比你UTF-8想转化为gbk必须要经过unicode

struck_time 是结构化时间  format_time是结构化时间 Timestamp是时间戳格式

这就是他们转化所需要的条件

时间搓转化为结构化  struct_time :

print(time.localtime(20004))   #通过localtime把时间搓20004本地的时区时间

print(time.gmtime(20004))  #   转化为英国时区

把格式化转化为结构化:

p = time.strptime('2015-5-15','%Y-%m-%d')  #后面必须跟上指定的格式
print(p)

把结构化转化为格式化:

p = time.strptime('2015-5-15','%Y-%m-%d')  #后面必须跟上指定的格式
print(time.strftime('%Y-%m-%d',p)) # 前面也必须加上特定的格式

时间搓转化为格式化必须要经过结构化

具体转化过程:

import  time
p = time.strptime('2015-5-15','%Y-%m-%d') #把2015-5-5转化为结构化
n =time.strftime('%Y-%m-%d',p) # 把结构化转化为格式化
# print(n)
print(time.mktime(p)) # 直接把结构化转化为时间戳

 还有%c的构造 他是%x 和 %X 的组合缩写  就是可以显示当前的年月日时分秒:

你也可以通过其他的来转化

%c 只能通过struct_time 结构化和时间搓来转化

时间戳和%c的区别

print(time.asctime())  # 是直接查找当前的时间和年月日
print(time.time()) # 是查找当前的时间 但是是以时间戳的形式来显示的
print(time.ctime())
print(time.strftime('%c')) #也可以指定格式来转化 转化为格式化形式的当前的具体时间
#结构化时间 --> %a %b %d %H:%M:%S %Y串
#time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串
>>>time.asctime(time.localtime(1500000000))
'Fri Jul 14 10:40:00 2017'
>>>time.asctime()
'Mon Jul 24 15:18:33 2017'
 

直接打印ctime()  和asctime()的显示都是一样的  因为源码显示都是不传入参数 默认传入当前时间的元组的

小练习:输入一个时间求出现在离你想求出的时间过去了多久

import time
# 比起y-m-d h:M:S过去了多少年 多少月 多少天 多少h,多少m,多少s
# 当前的时间 时间戳
# 过去的时间 转成时间戳
# 时间戳相减
# 相减之后的结果转成结构化时间
# 结构化时间 - 1970.1.1 0:0:0
# 你要相减的话你需要知道你相减的包括 时分秒 不止是奶奶月日 所以你需要转化为结构化来减
def trashy(fmt_time, fmt):
now = time.time() # 求出现在时间的时间戳
# 下面把你的要进行相减的时间戳给算出来
time_before = time.mktime(time.strptime(fmt_time,fmt))
sub_time = now - time_before
struct_time = time.gmtime(sub_time)
return '过去了%d年%d月%d天%d小时%d分钟%d秒' % \
(struct_time.tm_year - 1970, struct_time.tm_mon - 1,
struct_time.tm_mday - 1, struct_time.tm_hour,
struct_time.tm_min, struct_time.tm_sec) ret = trashy('2018-4-23 10:30:20', '%Y-%m-%d %H:%M:%S')
print(ret)

random模块  随机模块:

# import random
# print(random.random())
# print(random.uniform(1,4)) #1-4之间的数字但是不包括1和4
# randit()是可以包括首尾的
# randrang()是顾头不顾尾部 还可以用步长来使用
# random.choice()#随机取其他的数字 就是抽一个
# sample()是随机抽取两个
import random
print(random.random())
print(random.uniform(1,4)) # 生成一个1-4之间的数字 但是绝对取不到1和4
print(random.randint(1,1000)) #包含首尾
print(random.randint(1,2)) #包含1 2
print(random.randrange(1,2)) # 不包含尾部 也就是只能取前面的一个 但是你能传递数字
print(random.choice([1, '', [4,5]])) #三个元素随机取
print(random.sample([1, '', [4,5],],2)) # 只能取前面的一个元素 但是可以传递列表
item = [1, 3, 4, 5, 6]
import random
random.shuffle(item) #传递列表
print(item)

 小练习:

# 要求 生成随机验证码
# 基础需求: 6位数字验证码 数字可以重复
# 进阶需求: 字母+数字 4位验证码 数字字母都可以重复

import random
def id_code(num):
ret = '' #设置等于空为了让下面的值来相加
for i in range(num):
number = str(random.randint(0,9)) # 随机取到0-9的数字 转化为字符串为了下面好相加
alph_num = random.randint(97, 122) # 因为我们下面准备按照ASCII码来求值所以我需要这样设置
alph_num2 = random.randint(65, 90)
alph = chr(alph_num) # 把num的值转化为ASCII码
alph2 = chr(alph_num2)
choice = random.choice([number, alph, alph2])
ret += choice #把你得到的值相加
return ret
print(id_code(6)) 进阶: import random
def id_code(num):
ret = ' '
for i in range(num):
number = str(random.randint(0,9))
alph_num = random.randint(97,122)
alph_num2 = random.randint(65, 90)
alph = chr(alph_num)
alph2 = chr(alph_num2)
choice = random.choice([alph,alph2])
choice = random.choice([number, choice])
ret += choice
return ret
print(id_code(6))

发红包:

第二种:

sys模块:

# sys.argv 命令行参数List,第一个元素是程序本身路径
# sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1)
# sys.version 获取Python解释程序的版本信息
# sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
# sys.platform 返回操作系统平台名称

print('-'*6)  # 因为上面的exit()已经把解释器给关闭了 所以就不会执行了
print(sys.version) #获取解释器的版本信息
print(sys.platform) # 查看你的windows版本信息 一般不准确
print(sys.path) # 系统的路径 导入sys模块的时候搜索的路径
print(sys.argv) # 得到一个列表 列表的第一项就是当前文件存储的位置

之前就用过sys模块

用sys.modules['__main__']  求出当前文件的位置

sys模块还有一个很重要的模块  argv

直接用sys调用argv就是显示它的当前文件所在的路径的

一般都是通过电脑所自带的cmd来配合使用的

就是以脚本的形式 执行一个文件的时候可以加一些参数

#使用argv的时候你需要在 cmd 电脑的命令界面上输入python 加当前文件所在的位置 来进行文件判读  当前位置你也可以用print(sys.argv)来获取
if sys.argv[1] == 'alex' and sys.argv[2] == '':
print('登陆成功')
else:
sys.exit()

使用exit() 来关闭程序的执行

user = input('>>').strip()
pwd = input('>>>').strip()
if user == 'laowang' and pwd =='':
print(7777)
else:
sys.exit() #关闭解释器
print('我完成了功能')

下面我们可以用argv来查看你所输入的程序那里出错了没有‘

import sys
import logging
inp = sys.argv[1] if len(sys.argv) > 1 else 'WARNING'
logging.basicConfig(level = getattr(logging, inp)) # 得到DEBUG
num = int(input('>>>>'))
logging.debug(num)
a = num * 10
logging.debug(a)
b = a - 10
logging.debug(b)
c = b+5
print(c)

time random sys 模块的更多相关文章

  1. python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

    1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文 ...

  2. python time、datetime、random、os、sys模块

    一.模块1.定义模块:用来从逻辑上组织Python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test)包:用来从逻辑上组织 ...

  3. Python:time模块/random模块/os模块/sys模块

    time 模块 #常用方法 1.time.sleep(secs) (线程)推迟指定的时间运行.单位为秒. 2.time.time() 获取当前时间戳 python中时间日期格式化符号: %y 两位数的 ...

  4. random模块、time模块、sys模块、os模块

    一.random模块 1.随机取小数     (数学计算) print(random.random()) #取0-1之间的小数 print(random.uniform(3,6)) #uniform( ...

  5. 序列化、time、random、hashlib、sys模块

    •很多常用和内置模块,我们只需要掌握他们的用法而暂时不用考虑内部是如何实现的,这些模块大大提升了开发效率 ! 1.json模块与pickle模块 •json 如果你有这样的困扰,当希望把一种数据存到硬 ...

  6. 4-24日 collections模块 random模块 time模块 sys模块 os模块

    1, collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdi ...

  7. (常用)time,datetime,random,shutil(zipfile,tarfile),sys模块

    a.time模块import time 时间分为三种形式1.时间戳 (时间秒数的表达形式, 从1970年开始)print(time.time())start_time=time.time()time. ...

  8. python 全栈开发,Day27(复习, defaultdict,Counter,时间模块,random模块,sys模块)

    一.复习 看下面一段代码,假如运行结果有问题,那么就需要在每一步计算时,打印一下结果 b = 1 c = 2 d = 3 a = b+c print(a) e = a + d print(e) 执行输 ...

  9. python 常用模块之random,os,sys 模块

    python 常用模块random,os,sys 模块 python全栈开发OS模块,Random模块,sys模块 OS模块 os模块是与操作系统交互的一个接口,常见的函数以及用法见一下代码: #OS ...

随机推荐

  1. EasyNet开源项目计划

    EasyNet已经在github(https://github.com)开源了三个小项目: 1. patent query parser(https://github.com/easynet-cn/p ...

  2. JavaScript设计模式-13.组合模式

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  3. 使用jdk生成ssl证书文件

    java自带有 ssl 证书生成的工具, 在 /bin/keytools.exe 需要确认已经正确配置JAVA_HOME的环境变量 生成服务端证书: keytool -genkey -v -alias ...

  4. 【JVM调优系列】----CPU过高的分析与解决方案

    1.首先通过top命令查询当前进程所占cpu的一个比重

  5. Windump 的用法/Windump 是什么?

    Windump   Windump是Windows环境下一款经典的网络协议分析软件,其Unix版本名称为Tcpdump.它可以捕捉网络上两台电脑之间所有的数据包,供网络管理员/入侵分析员做进一步流量分 ...

  6. bug:执行到数据库连接后停止运行,而且不报错的奇怪情况----可能是多方同时访问造成的

    数据库运行过程中奇怪停止. 即执行到“database connected ”停止运行,而且不产生任何报错信息 程序反复检查没有问题,折腾半天解决了: 可能是多个客户端操作同一个表格,多方同时操作造成 ...

  7. Service , DAO ,DBUTtil;

    Service , DAO ,DBUTtil; util一般为基本的数据库操作:打开,关闭数据库连接,查询和更新操作. service 调用 dao 实现业务操作 dao层设计要为service服务, ...

  8. SpringMVC内置的精准数据绑定2

    https://blog.csdn.net/flashflight/article/details/42935137 之前写过一篇<扩展SpringMVC以支持更精准的数据绑定1>用于完成 ...

  9. [转]OData的初步认识 OData v4 Client Code Generator

    本文转自:http://www.cnblogs.com/1zhk/p/5356053.html What – OData是什么? OData - Open Data Protocol,是一个设计和使用 ...

  10. JavaScript es6 class类的理解。

    本着互联网的分享精神,在本篇文章我将会把我对JavaScript  es6 class类的理解分享给大家. JavaScript 类主要是 JavaScript 现有的基于原型的继承的语法糖. 类语法 ...