澳门威尼斯人注册网址【官网首页】
做最好的网站

常用模块random

来源:http://www.ogcoffee123.com 作者:澳门威尼斯人注册网址 人气:68 发布时间:2019-12-01
摘要:(2卡塔尔格式化的年月字符串(Format String卡塔尔国: "1998-12-16" %y 两位数的年份表示(00-99)%Y 四位数的年份表示(000-9999)%m 月份(01-12)%d 月内中的一天(0-31)%H 24小时制小时数(0-23)

      (2卡塔尔格式化的年月字符串(Format String卡塔尔国: "1998-12-16"

图片 1图片 2

%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 当前时区的名称
%% %号本身

python中时间日期格式化符号:

python中时间日期格式化符号:

 

五、random模块

 

图片 3图片 4

>>> import random
#随机小数
>>> random.random()      # 大于0且小于1之间的小数
0.7664338663654585
>>> random.uniform(1,3) #大于1小于3的小数
1.6270147180533838

#随机整数
>>> random.randint(1,5)  # 大于等于1且小于等于5之间的整数
>>> random.randrange(1,10,2) # 大于等于1且小于10之间的整数


#随机选择一个返回
>>> random.choice([1,'23',[4,5]])  # #1或者23或者[4,5]
#随机选择多个返回,返回的个数为函数的第二个参数
>>> random.sample([1,'23',[4,5]],2) # #列表元素任意2个组合
[[4, 5], '23']


#打乱列表顺序
>>> item=[1,3,5,7,9]
>>> random.shuffle(item) # 打乱次序
>>> item
[5, 1, 3, 7, 9]
>>> random.shuffle(item)
>>> item
[5, 9, 7, 1, 3]

random模块的用法

 

 

验证码示例:

第一种方法
import random
num=list(map(str,range(10)))
# print(num)
word=[]
for i in range(65,90):
    word.append(chr(i))
num.extend(word)
ret=[]
for i in range(4):
    ret.append(random.choice(num))
print(''.join(ret))
进级版
from random import choice,randint   #验证码
L=[choice((str(randint(0,9)),chr(randint(65,90)),chr(randint(95,122))))for i in range(4)]
print(''.join(L))

 

  os模块是与操作系统人机联作的叁个接口

import os

os.makedirs("name1/name2/name3")  #可生成多层递归目录
os.mkdir("name1")    #生成单级目录;相当于shell中mkdir dirname
os.rmdir("D:/Learn/day18/name1")  #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.removedirs("D:/Learn/day18/name1")   #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.listdir("D:/Learn/day18/name1")    #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove("name1")  #删除一个文件
os.rename("oldname","newname")  #重命名文件/目录
os.stat('path/filename')  #获取文件/目录信息

os.system("bash command")  #运行shell命令,直接显示
os.popen("bash command.read()")  #运行shell命令,获取执行结果
os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname")  #改变当前脚本工作目录;相当于shell下cd

 

# os.path
os.path.abspath(path) #返回path规范化的绝对路径
os.path.split(path) #将path分割成目录和文件名
os.path.dirname(path) #返回path的目录,其实就是os.path.split(path)的第一个元素
os.path.basename(path)#返回path最后的文件名.如果path以/或结尾,那么就会返回空值.即os.path第二个元素
os.path.exists(path) #如果path存在,返回True:如果path不存在,返回False
os.path.isabs(path) #如果path是绝对路径,返回True
os.path.isfile(path) #如果path是一个存在的文件,返回True.否则返回False
os.path.isdir(path) #如果path是一个存在的目录,则返回True,否则返回False
os.path.join(path1[,path2[,....]])  #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)  #返回path所指向的文件或者目录的最后访问时间
os.path.getmtime(path)  #返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) #返回path的大小

 

 

 

三、os模块

    loads(反系列化,读卡塔尔(英语:State of Qatar)

二、sys模块

 

sys模块是与python解释器交互作用的贰个接口

 

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

 

一丶random模块

pickle

四丶os模块

2、二种时光格式的互相转变

图片 5

图片 6图片 7

#时间戳-->结构化时间
#time.gmtime(时间戳)    #UTC时间,与英国伦敦当地时间一致
#time.localtime(时间戳) #当地时间。例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间 
>>>time.gmtime(1500000000)
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
>>>time.localtime(1500000000)
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=10, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)

#结构化时间-->时间戳 
#time.mktime(结构化时间)
>>>time_tuple = time.localtime(1500000000)
>>>time.mktime(time_tuple)
1500000000.0

#结构化时间-->字符串时间
#time.strftime("格式定义","结构化时间")  结构化时间参数若不传,则现实当前时间
>>>time.strftime("%Y-%m-%d %X")
'2017-07-24 14:55:36'
>>>time.strftime("%Y-%m-%d",time.localtime(1500000000))
'2017-07-14'

#字符串时间-->结构化时间
#time.strptime(时间字符串,字符串对应格式)
>>>time.strptime("2017-03-16","%Y-%m-%d")
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=75, tm_isdst=-1)
>>>time.strptime("07/24/2017","%m/%d/%Y")
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=205, tm_isdst=-1)

两种时光格式的更动

 

图片 8

图片 9图片 10

#结构化时间 --> %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'

#%a %d %d %H:%M:%S %Y串 --> 结构化时间
#time.ctime(时间戳)  如果不传参数,直接返回当前时间的格式化串
>>>time.ctime()
'Mon Jul 24 15:19:07 2017'
>>>time.ctime(1500000000)
'Fri Jul 14 10:40:00 2017'

View Code

 

   1丶json

json & pickle 模块

 

用以类别化的七个模块

  • json,用于字符串 和 python数据类型间张开转移
  • pickle,用于python特有的类型 和 python的数据类型间展开改造

 图片 11

 

pickle模块提供了三个功能:dumps、dump(系列化,存)、loads(反连串化,读)、load  (不只可以够系列化字典,列表...能够把python中随机的数据类型体系化

图片 12图片 13

import pickle
dic = {'k1':'v1','k2':'v2','k3':'v3'}
str_dic = pickle.dumps(dic)
print(str_dic)  #一串二进制内容

dic2 = pickle.loads(str_dic)
print(dic2)    #字典

import time
struct_time  = time.localtime(1000000000)
print(struct_time)
f = open('pickle_file','wb')
pickle.dump(struct_time,f)
f.close()

f = open('pickle_file','rb')
struct_time2 = pickle.load(f)
print(struct_time.tm_year)

pickle模块

 

Pickle的题目和有着别的编制程序语言特有的连串化问题相仿,就是它一定要用来Python,况兼只怕差别版本的Python互相都不相称,因而,只可以用Pickle保存那么些不重大的数目,无法打响地反种类化也没提到。

 

  loads:字符串转成数据类型 反连串化

shelve

 shelve模块比pickle模块轻便,只有三个open函数,重返相像字典的靶子,可读可写;key必需为字符串,而值能够是python所支撑的数据类型

图片 14图片 15

import shelve

f=shelve.open(r'sheve.txt')
# f['stu1_info']={'name':'egon','age':18,'hobby':['piao','smoking','drinking']}
# f['stu2_info']={'name':'gangdan','age':53}
# f['school_info']={'website':'http://www.pypy.org','city':'beijing'}

print(f['stu1_info']['hobby'])
f.close()

shelve模块

 

 

 dumps和loads是在内部存款和储蓄器中做多少调换

四、序列化

 

体系化的指标

 

1、以某种存款和储蓄方式使自定义对象持久化;

 

2、将指标从二个地方传递到另八个地方。

 

3、使程序更具维护性。

 

图片 16

能够处理的数据类型是充裕轻松的"字符串 列表 字典 数字

os模块是与操作系统人机联作的一个接口

 

图片 17图片 18

'''
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
os.curdir  返回当前目录: ('.')
os.pardir  获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2')    可生成多层递归目录
os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()  删除一个文件
os.rename("oldname","newname")  重命名文件/目录
os.stat('path/filename')  获取文件/目录信息
os.sep    输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
os.linesep    输出当前平台使用的行终止符,win下为"tn",Linux下为"n"
os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command")  运行shell命令,直接显示
os.popen("bash command)  运行shell命令,获取执行结果
os.environ  获取系统环境变量

os.path
os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。
                        即os.path.split(path)的第二个元素
os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
os.path.isabs(path)  如果path是绝对路径,返回True
os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
os.path.getatime(path)  返回path所指向的文件或者目录的最后访问时间
os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
os.path.getsize(path) 返回path的大小

os模块的用法

 

 

专心:os.stat('path/filename'卡塔尔(قطر‎  获取文件/目录消息 的布局表明

stat 结构:

st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。

 

 

 json在全数语言之间都通用,json类别化的数量在python上种类化了,拿在java中也足以反类别化

json

图片 19

Json模块提供了多个效果与利益:dumps、dump、loads、load

图片 20图片 21

复制代码
import json
dic = {'k1':'v1','k2':'v2','k3':'v3'}
str_dic = json.dumps(dic)  #序列化:将一个字典转换成一个字符串
print(type(str_dic),str_dic)  #<class 'str'> {"k3": "v3", "k1": "v1", "k2": "v2"}
#注意,json转换完的字符串类型的字典中的字符串是由""表示的

dic2 = json.loads(str_dic)  #反序列化:将一个字符串格式的字典转换成一个字典
#注意,要用json的loads功能处理的字符串类型的字典中的字符串必须由""表示
print(type(dic2),dic2)  #<class 'dict'> {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}


list_dic = [1,['a','b','c'],3,{'k1':'v1','k2':'v2'}]
str_dic = json.dumps(list_dic) #也可以处理嵌套的数据类型 
print(type(str_dic),str_dic) #<class 'str'> [1, ["a", "b", "c"], 3, {"k1": "v1", "k2": "v2"}]
list_dic2 = json.loads(str_dic)
print(type(list_dic2),list_dic2) #<class 'list'> [1, ['a', 'b', 'c'], 3, {'k1': 'v1', 'k2': 'v2'}]
复制代码

dumps和loads

图片 22图片 23

import json
f = open('json_file','w')
dic = {'k1':'v1','k2':'v2','k3':'v3'}
json.dump(dic,f)  #dump方法接收一个文件句柄,直接将字典转换成json字符串写入文件
f.close()

f = open('json_file')
dic2 = json.load(f)  #load方法接收一个文件句柄,直接将文件中的json字符串转换成数据结构返回
f.close()
print(type(dic2),dic2)

dump和load

 

 

图片 24

import json
dic = {'k1':'v1','k2':'v2','k3':'v3'}
str_dic = json.dumps(dic)  #序列化:将一个字典转换成一个字符串
print(type(str_dic),str_dic)  #<class 'str'> {"k3": "v3", "k1": "v1", "k2": "v2"}
#注意,json转换完的字符串类型的字典中的字符串是由""表示的

dic2 = json.loads(str_dic)  #反序列化:将一个字符串格式的字典转换成一个字典
#注意,要用json的loads功能处理的字符串类型的字典中的字符串必须由""表示
print(type(dic2),dic2)  #<class 'dict'> {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}


list_dic = [1,['a','b','c'],3,{'k1':'v1','k2':'v2'}]
str_dic = json.dumps(list_dic) #也可以处理嵌套的数据类型 
print(type(str_dic),str_dic) #<class 'str'> [1, ["a", "b", "c"], 3, {"k1": "v1", "k2": "v2"}]
list_dic2 = json.loads(str_dic)
print(type(list_dic2),list_dic2) #<class 'list'> [1, ['a', 'b', 'c'], 3, {'k1': 'v1', 'k2': 'v2'}]

图片 25

      json用于字符串和python数据类型间进行更改

1、表示时间的三种艺术:时间戳、元组(struct_time卡塔尔(قطر‎、格式化的时间字符串xxxx

(1卡塔尔时间戳(timestamp):日常来说,时间戳表示的是从1970年10月1日00:00:00上马按秒计算的偏移量。大家运维“type(time.time(卡塔尔(英语:State of Qatar)卡塔尔(قطر‎”,重回的是float类型。

(2卡塔尔(قطر‎格式化的时间字符串(Format String卡塔尔国: ‘1998-12-06’

图片 26图片 27

%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 当前时区的名称
%% %号本身

格式化时间标志

 

(3)元组(struct_time) :struct_time元组共有9个因素共几个因素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

索引(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 - 61
6 tm_wday(weekday) 0 - 6(0表示周日)
7 tm_yday(一年中的第几天) 1 - 366
8 tm_isdst(是否是夏令时) 默认为-1

 首先,咱们起首入time模块,来认知一下python忠爱味时间的二种格式:

图片 28图片 29

#导入时间模块
>>>import time

#时间戳
>>>time.time()
1500875844.800804

#时间字符串
>>>time.strftime("%Y-%m-%d %X")
'2017-07-24 13:54:37'
>>>time.strftime("%Y-%m-%d %H-%M-%S")
'2017-07-24 13-55-04'

#时间元组:localtime将一个时间戳转换为当前时区的struct_time
time.localtime()
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24,
          tm_hour=13, tm_min=59, tm_sec=37, 
                 tm_wday=0, tm_yday=205, tm_isdst=0)

三种时光情势的施用

 

  什么叫体系化 -----将原先的字典丶列表等内容转换到三个字符串的经过就叫做系列化

一、time 模块

 dump和load是直接将数据类型写入文件,直接从文件中读出数据类型

       (3)元组(strict_time):struct_time元组共有9个因素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,是还是不是是夏令时卡塔尔国

索引(index) 属性(Attribute) 值(Values)
0 tm_year(年) 2018
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(deekday) 0-6(0表示周一)
7 tm_yday(一年中的第几天) 1-366
8 tm_isdst(是否是夏令时) 默认为0

意味着时间的三种格式:

#导入时间模块
import time

# time.sleep(3) #程序走到这儿会等待3s钟

# 时间戳时间   浮点型数据类型,以s为单位
t = time.time()     #1534752249.0591378
print(t)

#格式化时间
print(time.strftime("%Y-%m-%d %H:%M:%S"))  #strftime =  str format time
print(time.strftime('%c'))      #国外时间格式

# 结构化时间
# 时间元组,localtime将一个时间戳转换成当时时区的struct_time
struct_time = time.localtime()  # 北京时间
print(struct_time)
#time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20,
#    tm_hour=16, tm_min=9, tm_sec=8, tm_wday=0, tm_yday=232, tm_isdst=0)

 

   2.pickle

三丶sys模块

  系列化的指标

    在python中,平日常有这两种艺术来代表时间:时间戳,元组(struct_time卡塔尔国,格式化的岁月字符串:

三种格式之间的改动

图片 30

#时间戳时间转换成字符串时间
#获取当前时间戳
t = time.time()
print(t)    #1534753176.4760094
# 时间戳转换成结构化时间
ti = time.localtime(t)
print(ti)
#time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20,
#       tm_hour=16, tm_min=19, tm_sec=36, tm_wday=0, tm_yday=232, tm_isdst=0)
# 结构化时间转换成字符串时间
sti = time.strftime("%Y-%m-%d %H:%M:%S",ti)
print(sti)  #2018-08-20 16:22:06



# 字符串时间转换成时间戳时间
t  = "2018-08-20 16:22:06"
#字符串时间转换成结构化时间
st = time.strptime(t,"%Y-%m-%d %H:%M:%S")
print(st)
#time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20,
#        tm_hour=16, tm_min=22, tm_sec=6, tm_wday=0, tm_yday=232, tm_isdst=-1)
#结构化时间转换成时间戳
ti = time.mktime(st)
print(ti)       #1534753326.0

 

  load :文件读出数据类型 反类别化

图片 31图片 32

import json
dic = {'key':'value','key2':'value2'}
ret = json.dumps(dic)   #序列化,将字典转换成字符串
print(dic,type(dic))
print(ret,type(ret))
#注意,json转换完的字符串类型的字典中的字符串是由""表示的
res = json.loads(ret)   #反序列化:将一个字符串格式的字典转换成字典格式
print(res,type(res))

loads和dumps

图片 33图片 34

# dump:
f = open('json_file','w')
dic = {'k1':'v1','k2':'v2','k3':'v3'}
json.dump(dic,f)    ##dump方法接收一个文件句柄,直接将字典转换成json字符串写入文件
f.close()
#load:
f = open('json_file')
dic2 = json.load(f)
f.close()
print(type(dic2),dic2)

dump和load

 

  代表时间的三种办法

  为何要把其他数据类型转变来字符串呢? 因为能够在互连网上传输的只好是bytes,能够存款和储蓄在文书里的也只有bytes和str

    json模块提供了八个职能:dumps丶dump丶loads丶load

 在命令行形式下 输入 python + 文件夹的岗位 py文件前边可以输入字符串,以空格相隔

 图片 35

图片 36

 

  图片 37

 

 sys.argv登入验证:

图片 38图片 39

# sys.argv 登录验证
import sys
name = sys.argv[1]      #sys.argv[0]的内容是文件的路径
password = sys.argv[2]
# print(sys.argv)
if name == 'mark' and password == '123':
    print('登录成功')
else:
    sys.exit()

sys.argv

  3丶使程序更具维护性.

字典中的key只能是字符串

图片 40图片 41

import json
data = {'username':['李华','二愣子'],'sex':'male','age':16}
json_dic2 = json.dumps(data,sort_keys=True,indent=4,separators=(',',':'),ensure_ascii=False)
print(json_dic2)
#separators 分隔符,实际上是(item_separator, dict_separator)的一个元组,默认的就
#       是(‘,’,’:’);这表示dictionary内keys之间用“,”隔开,而KEY和value之间用“:”隔开。 
#indent 应该是一个非负的整型,如果是0就是顶格分行显示,如果为空就是一行最紧凑显示,
#       否则会换行且按照indent的数值显示前面的空白分行显示,这样打印出来的json数据也叫pretty-printed json
#sort_keys 将数据根据keys的值进行排序
#ensure_ascii 当它为True的时候,所有非ASCII码字符显示为uXXXX序列,只需在dump时
#       将ensure_ascii设置为False即可,此时存入json的中文即可正常显示。

json的格式化输出

 

  取随机数的模块

#导入random模块
import random

#取随机小数:
r = random.random()     #取大于零且小于一之间的小数
print(r)    #0.7028485217376959
r = random.uniform(1,2)   #取大于一且小于二之间的小数
print(r)      #1.2376900963409765

#取随机整数
r = random.randint(2,8) #取大于二且小于八之间的整数
print(r)      #7
r = random.randrange(2,8,2) #取大于等于二且小于十之间的整数,每两个取一个
print(r)      #6

#随机选择一个返回
r = random.choice(["a","123",["dasd"],"das"])   #123
print(r)
#随机选择多个返回,返回的个数为函数的第二个参数
r = random.sample(["a","123",["dasd"],"das"],2) #['123', 'a']
print(r)

#打乱列表顺序
item = [1,3,5,7,9]
r = random.shuffle(item)  #只打乱,无返回值
print(r)
print(item)

 

    load(不仅可以够连串化字典,列表...能够把python中私行的数据类型连串化卡塔尔国

 

import pickle

dic = {(1,2,3):{'a','b'},1:'abc'}
str_dic = pickle.dumps(dic)
print(str_dic)      #一串二进制内容

dic2 = pickle.loads(str_dic)
print(dic2)     #字典{(1, 2, 3): {'a', 'b'}, 1: 'abc'}

import time
struct_time  = time.localtime(1000000000)
print(struct_time)      #time.struct_time(tm_year=2001,......
f = open('pickle_file','wb')
pickle.dump(struct_time,f)
f.close()

f = open('pickle_file','rb')
struct_time2 = pickle.load(f)
print(struct_time2.tm_year)     #2001

 

 练习:

图片 42图片 43

import time
ti_old = "2018-8-19 22:10:8"
ti_new = "2018-8-20 16:34:3"
true_time=time.mktime(time.strptime(ti_old,'%Y-%m-%d %H:%M:%S'))
time_now=time.mktime(time.strptime(ti_new,'%Y-%m-%d %H:%M:%S'))
dif_time=time_now-true_time
struct_time=time.gmtime(dif_time)
print('过去了%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))
#过去了0年0月0天18小时23分钟55秒

算算时间差

 

 

练习题,随机变化大小写数字的验证码

图片 44图片 45

def func(x=6,alpha=True):
    s = ""
    for i in range(x):
        num = str(random.randint(0,9))
        if alpha:
            alpha_upper = chr(random.randint(65,90))
            alpha_lower = chr(random.randint(97, 122))
            num = random.choice([num,alpha_lower,alpha_upper])
        s += num
    return s

print(func(4,alpha=False))
print(func())

验证码

 

    dumps丶dump(序列化,存)

  dump:数据类型写入文件序列化

   pickle模块也提供了七个效果与利益:

    json和pickle都是用以连串化的八个模块

      pickle用于python特有的品类和python的数据类型间张开更改

  dumps :将数据类型转成字符串种类化

五丶 系列化模块

  1.丶以某种存款和储蓄情势使自定义对象长久化

二丶time模块

  2丶将对象从二个地方传递到另一个地点

  sys模块时与python解释器人机联作的一个接口

import sys


print(sys.argv)     #['D:/Learn/day18/1.1.py']  程序本身的路径

for i in range(0,9):
    print(i)    #0
    sys.exit()  #遇到sys.exit()  退出程序,正常退出时exit(0),错误退出sys.exit(1)

print(sys.version)    #获取Python解释程序的版本信息
#3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]

print(sys.path) #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
#"C:Program FilesPython36python.exe" D:/Learn/day18/1.1.py
#['D:\Learn\day18', 'D:\Learn', 'C:\Program Files\Python36\python36.zip',
# 'C:\Program Files\Python36\DLLs', 'C:\Program Files\Python36\lib',
# 'C:\Program Files\Python36', 'C:\Program Files\Python36\lib\site-packages',
# 'E:\pycharm\PyCharm 2018.1.3\helpers\pycharm_matplotlib_backend']

print(sys.platform)     #win32  返回操作系统平台名称

      (1卡塔尔(英语:State of Qatar)时间戳(timestamp卡塔尔(قطر‎:平时来讲,时间戳表示的是从1966年八月1日00:00:00开始按秒计算的偏移量.我们运行"type(time.time(卡塔尔国卡塔尔",重回的是float类型.

总计:时间戳是计算机能够识别的时间,时间字符串是人能够看懂的小时,元组则是用来操作时间的

本文由澳门威尼斯人注册网址发布于澳门威尼斯人注册网址,转载请注明出处:常用模块random

关键词:

最火资讯