一、random模块

    import random
# 1 取随机小数 应用:数学计算
ret = random.random() # 大于0且小于1之间的小数
print(ret) # 0.5355954844533712
ret = random.uniform(1,3) # 大于1且小于2之间的小数
print(ret) # 1.8309601532502473 # 2 取随机整数 应用:抽奖,彩票
ret = random.randint(1,5) # 大于等于1且小于等于5之间的整数
print(ret) #
ret = random.randrange(1,100,2) # 大于等于1且小于100之间的奇数
print(ret) # # 3 随机选择一个返回 应用:抽奖
lst = ['aa','b',(1,2),123]
ret = random.choice(lst) # 随机返回列表中的一个元素
ret = random.sample(lst,2) # 随机返回列表中两个元素(两个元素不是同一个) # 4 打乱一个列表顺序,在原列表的基础上直接进行修改,节省内存 应用:洗牌
random.shuffle(lst)
print(lst) # [(1, 2), 'b', 'aa', 123]

练习题:写一个生成验证码函数

    def code(n=6, alpha = True):
verCode = ''
for i in range(n):
num = str(random.randint(0,9))
if alpha:
alpha_u = chr(random.randint(65,90))
alpha_l = chr(random.randint(97,122))
verCode += random.choice([num, alpha_u, alpha_l])
else:
verCode += num
return verCode
print(code(4, False)) # 2570 生成4位数字验证码
print(code(6, False)) # 319549 6位数字验证码
print(code()) # 0IwtC7 6位(数字+大小写字母)验证码

二、time时间模块

和时间有关系的我们就要用到时间模块,在使用模块之前,应该首先导入这个模块。

    # 常用方法
time.sleep(3) # (线程)推迟指定的时间运行. 单位为秒.
ret = time.time() # 获取当前时间戳
print(ret) # 1534751684.6865652

在python中,通常有这三种方式来表示时间:时间戳、元组(struct_time)、格式化的时间字符串:

  1,时间戳(timestamp):通常来说,时间戳表示的是从伦敦时间1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。

  2,格式化的时间字符串(Format String):比如:‘1999-12-06’、‘2018.8.8’

  3,元组(struct_time):struct_time元组共有9个元素,具体见下表:

索引(Index)

属性(Attribute)

值(Values)

0

tm_year(年)

比如2008

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

首先,我们先导入time模块,来认识一下python中表示时间的几种格式,如下示例:

    import time
# 时间戳
time.time() # 时间字符串
ret = time.strftime('%Y-%m-%d %H:%M:%S')
print(ret) # 2018-08-20 16:16:00 # 时间元组 localtime将一个时间戳转换为当前时区的struct_time
ret = time.localtime()
print(ret)
# time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=16, tm_min=17, tm_sec=7, tm_wday=0, tm_yday=232, tm_isdst=0)

时间模块小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;时间元组则是用来操作时间的。

几种时间格式之间的转换:

   # 时间戳-->结构化时间
   # 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.strptime(时间字符串,字符串对应格式)
   >>>time.strptime("2018-08-20","%Y-%m-%d")
   time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=232, 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)    # 结构化时间-->字符串时间
   # time.strftime("格式定义","结构化时间") 结构化时间参数若不传,则显示当前时间
   >>>time.strftime("%Y-%m-%d %X")
   '2018-08-20 16:40:59'
   >>>time.strftime("%Y-%m-%d",time.localtime(1500000000))
   '2017-07-14'

练习题:计算时间差

   # 2018-8-19 22:10:8 到 2018-8-20 11:07:3 经过了多少时分秒
   struct_time1 = time.strptime('2018-8-19 22:10:8','%Y-%m-%d %H:%M:%S')
   struct_time2 = time.strptime('2018-8-20 11:07:3', '%Y-%m-%d %H:%M:%S')
   ret1 = time.mktime(struct_time1)
   ret2 = time.mktime(struct_time2)
   ret = ret2 - ret1
   st = time.gmtime(ret)
   print("经过了%s年%s月%s日%s时%s分%s秒" % (st.tm_year-1970, st.tm_mon-1, st.tm_mday-1, st.tm_hour, st.tm_min, st.tm_sec))

练习题:请将当前时间的当前月1号的时间戳时间取出来-函数

   def get_time():
st = time.localtime()
st2 = time.strptime(f'{st.tm_year}-{st.tm_mon}-1','%Y-%m-%d')
return time.mktime(st2)
print(get_time())

三、sys模块

  sys模块是和python解释器交互的一个接口。

  1,sys.argv

    sys.argv   # 命令行参数List,第一个元素是程序本身路径

    1)程序员 运维人员 在命令行输入代码

    2)操作系统input事件 阻塞 退出了CPU的竞争

  2,sys.path

    模块是存在解释器里的吗?不是!模块应该是存在硬盘上

    但是我在使用的时候import -- > 这个模块才到内存中

    一个模块能否被顺利的导入,全看sys.path下面有没有这个模块所在的路径

    学习自定义的模块时,导入模块的时候,还需要再关注sys.path

  3,sys.modules

  是我们导入到内存中的所有模块的名字:这个模块的内存地址

 

常用模块一(random模块、time模块、sys模块)的更多相关文章

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

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

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

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

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

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

  4. python之random、time与sys模块

     一.random模块 import random # float型 print(random.random()) #取0-1之间的随机小数 print(random.uniform(n,m)) #取 ...

  5. collections,time,random,os, sys 模块的使用

    主要内容:1. 模块的简单认识2. collections模块3. time时间模块4. random模块5. os模块6. sys模块 一. 模块的简单认识什么是模块. 模块就是我们把装有特定功能的 ...

  6. python之random 、os 、sys 模块

    一.random模块 import random print(random.random())#(0,1)----float 大于0且小于1之间的小数 print(random.randint(1,3 ...

  7. 模块之 logging, shelve, sys 模块

    一. logging模块 用来记录日志,日志:记录某个时间点发生了什么事 日志作用:程序调试 了解软件程序的运行情况,是否正常 软件程序运行故障分析与问题定位 还可用来做用户行为分析 日志等级:在不改 ...

  8. Python 自学基础(四)——time模块,random模块,sys模块,os模块,loggin模块,json模块,hashlib模块,configparser模块,pickle模块,正则

    时间模块 import time print(time.time()) # 当前时间戳 # time.sleep(1) # 时间延迟1秒 print(time.clock()) # CPU执行时间 p ...

  9. 洗礼灵魂,修炼python(17)--跨平台操作三剑客—os,os.path.sys模块

    os 1.作用: 因为客户基本都是使用不同的操作系统,在不同的系统下,要完成一个项目,那必须跨平台操作,而python本来就是一个跨平台的语言,而有了os模块,则不需要在意什么系统.并且os模块是用于 ...

  10. 包+time+datetime+random+hashlibhmac+typing+requests+re模块(day17整理)

    目录 昨日内容 os模块 sys模块 json模块 pickle模块 logging模块 今日内容 包 相对导入 绝对导入 time模块 sleep 时间戳 time 格式化时间 strtime 结构 ...

随机推荐

  1. 为什么选择Python

    经常会有同学问我为什么选择Python.我很喜欢这门语言,因为它的简洁灵活,易学,易读,可移植并且功能强大. 高级 可以说,每一代编程语言的产生,我们都会达到一个新的高度.从汇编语言,到C Pasca ...

  2. Android应用中使用百度地图API之POI(三)

    先看执行后的图吧: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFqaWFuamll/font/5a6L5L2T/fontsize/400/fill/ ...

  3. activiti自己定义流程之整合(三):整合自己定义表单创建模型

    本来在创建了表单之后应该是表单列表和预览功能.可是我看了看整合的代码,和之前没实用angularjs的基本没有什么变化,一些极小的变动也仅仅是基于angularjs的语法,因此全然能够參考之前说些的表 ...

  4. error: unkown OS type hvm 解决方法 kvm libvirtd 重新加载已有虚拟机信息

    想验证下最新版本的qemu的一些功能,于是将其从qemu-0.12升级到了qemu-1.4,编译安装一切都很顺利,但是当创建virtual machine时,报错如下: [root@compute-- ...

  5. centos6 找不到 phpize

    安装php-devel yum install php-devel.i686

  6. MFC 改变控件的大小和位置

    mfc 改变控件大小和位置用到的函数: ) void MoveWindow(int x, int y, int nWidth, int nHeight); ) void MoveWindow(LPCR ...

  7. file、inode在应用层和驱动层之间的联系_转

    转自:http://blog.csdn.net/dreaming_my_dreams/article/details/8272586 应用层和驱动的衔接,一直是一个老大难问题,若弄不清楚,总觉得驱动写 ...

  8. mysql日期函数 和sql语句扩展information_schema show processlist;

    SELECT NOW(); SELECT CURDATE(); SELECT YEAR(NOW()) SELECT CONCAT("mysqldump ","-uroot ...

  9. Eclipse下快速打开本地文件插件EasyExplorer

    EasyExplorer  是一个类似于 Windows Explorer的Eclipse插件,它可以帮助你在不退出Eclipse的环境下浏览本地文件系统,类似的插件也有很多,但是本人喜欢使用这个版本 ...

  10. OpenCV中的SURF算法介绍

    SURF:speed up robust feature,翻译为快速鲁棒特征.首先就其中涉及到的特征点和描述符做一些简单的介绍: 特征点和描述符 特征点分为两类:狭义特征点和广义特征点.狭义特征点的位 ...