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. 第十篇--------javascript函数-参数

    javascript函数的参数:形参,实参 //function 参数 //形参列表 function test(a,b,c,d){ //alert(test.length); //形参个数,4个 / ...

  2. 实现基于NTP协议的网络校时功能

    无论PC端还是移动端系统都自带时间同步功能,基于的都是NTP协议,这里使用C#来实现基于NTP协议的网络校时功能(也就是实现时间同步). 1.NTP原理 NTP[Network Time Protoc ...

  3. SPSS学习系列之SPSS Statistics的使用介绍

    不多说,直接上干货! 首先,在自己电脑找到软件. 大家根据自己的需求,我这里是双击IBM SPSS Statistics 24 打开后,如下的界面 以上就是SPSS的初步一个界面. 欢迎大家,加入我的 ...

  4. 基础js--调试js

    1,逻辑错误 常见错误: 是否由于拼写错误而导致申明了新的变量? 是否在条件判定上出现了疏漏? 方法:使用开发者工具调试代码 2,代码错误 常见错误: 是否拼写错误? 是否使用中文的符号? 扩展: 1 ...

  5. 利用 ICEpdf 快速实现 pdf 文件预览功能

    之前工作中,需要实现一个在线预览pdf的功能,一开始用的的 jQuery-media 插件来实现的,后来感觉有点慢,就继续寻找更好的替代品,直到遇见了 ICE pdf... ICEpdf (官网:ht ...

  6. 在Linux上使用C语言编程获取IPv4地址及子网掩码

    在Linux上(如Ubuntu或CentOS), 获取某个Network Interface比如eth0的IP地址等信息,我们可以使用ifconfig或者ip addr show命令. $ ifcon ...

  7. STIL文件(DFT/IC测试方向)

    相信很多工程师,特别是刚入行或准备入行的兄弟们或多或少听过测试相关的东西.如果你想做DFT工程师的,测试工程师的,而对于设计/验证工程师们如果能了解下STIL文件的原理,在和DFT/测试工程师聊技术聊 ...

  8. background-position 详解

    一.语法 语法:background-position:x, y; 定义:背景图片相对容器原点的起始位置: 取值:     关键字:top | center | bottom | left | cen ...

  9. 使用xml4j xml与字符串之间转换

    jar准备:dom4j-2.1.1.jar  jaxen-1.1.6.jar jaxen/jaxen/ Maven依赖写法 <dependency> <groupId>jaxe ...

  10. JRE“瘦身”&桌面程序集成JRE

    项目是一个桌面程序,程序文件不大,但运行jre有198 MB,因此需要"瘦身". jre包含bin.lib两部分,分别为93.6 MB.104 MB. 1.精简bin 运行桌面程序 ...