导入整个模块

import 模块名

导入模块中的某个具体的功能

from 模块名 import 模块中的方法名(功能)

import random
from random import randint

random 随机模块

import random
#取随机小数print(random.random())                #0~1 之间的随机小数
print(random.uniform(1,10))           #1~10 之间的随机小数

取随机整数

import random
print(random.randint(0,1))              #0~1之间的整数
print(random.randrange(0,5))          #0~5之间的整数
print(random.randrange(0,5,2))       #0~5之间步长为2 的整数

随机抽取

l = [1,2,"a",{"k":"v"},(1,2,4)]
print(random.choice(l))                #随机抽取一个
print(random.sample(l,3))            #随机抽取n个

打乱顺序

import random
k = [1,2,"ac",{"k","v"},(1,2,3)]
random.shuffle(k)
print(k)

事例: 输出6位纯数字

import random
def get_code(n=6):s = ""for i in range(n):num = random.randint(0,9)s += str(num)return s
print(get_code(6))

Collections

1.Counter 计数器

2.defaultdict 默认值字典

3.OrderedDict 有序字典

Counter 计数

from collections import Counter
print(Counter("凌寒独自开,哈哈哈"))lst = ["selina","Jerome","Jerry","selina"]
c = Counter(lst)
print(c)运行结果:Counter({'哈': 3, '凌': 1, '寒': 1, '独': 1, '自': 1, '开': 1, ',': 1})Counter({'selina': 2, 'Jerome': 1, 'Jerry': 1})Process finished with exit code 0

defaultdict 默认值字典

from collections import defaultdict
selina = defaultdict(lambda:6)        #callable 可调用的, 字典是空的
print(selina["LL"])           #从字典向外拿数据, 字典是空的, key:callable()
print(selina["Frank"])         #这里的[] 和get() 不是一回事儿
print(selina)
print(selina.get("LL"))运行结果:6defaultdict(<function <lambda> at 0x0000027CAB741E18>, {'ll': 6, 'Frank': 6})

OrderedDict  有序字典

from collections import OrderedDict
dic = OrderedDict()
dic["selina"] = "新加坡"
dic["evelyn"] = "法国"
print(dic)
print(dic.get("selina"))
print(dic.values())
print(dic["evelyn"])运行结果:OrderedDict([('selina', '新加坡'), ('evelyn', '法国')])新加坡odict_values(['新加坡', '法国'])法国

栈Stack(FILO)
特点: 先进后出

class StackFullException(Exception):passclass StackEmptyException(Exception):passclass Stack:def __init__(self, size):self.size = sizeself.lst = []   # 存放数据的列表self.top = 0    # 栈顶指针# 入栈def push(self, el):if self.top >= self.size:raise StackFullException("your stack is full!!!!!")self.lst.insert(self.top, el)   # 放元素self.top += 1   # 栈顶指针向上移动一下# 出栈def pop(self):if self.top == 0:raise StackEmptyException("your stack is empty!!!!!")self.top-=1el = self.lst[self.top]return el
s = Stack(4)
s.push('bob')
s.push('jack')
s.push('Peak')
s.push('jary')
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())import queue
q= queue.Queue()
q.put('中国')
q.put('法国')
q.put('美国')
print(q.get())
print(q.get())
print(q.get())结果
jary
Peak
jack
bob
中国
法国
美国

队列Queue(FIFO)
特点: 先进先出

from collections import deque
d = deque()         # 创建双向队列
d.append('娃哈哈')  # 在右侧添加
d.append('QQ星')
d.append('爽歪歪')
d.appendleft('芒果')  # 在左边添加
d.appendleft('榴莲')
d.appendleft('苹果')
print(d.pop())      # 从右边拿数据
print(d.pop())
print(d.pop())
print(d.popleft())  # 从左边拿数据
print(d.popleft())
print(d.popleft())
结果
爽歪歪
QQ星
娃哈哈
苹果
榴莲
芒果

time时间模块

python程序中,时间一共有三种格式
时间戳时间,float时间(给计算机用的): 1542072130.3895912英国伦敦 1970-1-1 0:0:0  0时区北京时间 1970-1-1 8:0:0
结构化时间(tuple时间)
格式化时间,str时间(给用户看的): '2018-11-13 9:21:50'
时间格式转换时间戳时间 <-结构化时间(tuple时间)-> 格式化时间时间格式:
%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.time())      # 时间戳时间(从1970-01-01 00:00:00开始经过的秒)
print(time.strftime('%Y-%m-%d %H:%M:%S'))  # 格式化时间
print(time.localtime())  # 北京时间(结构化时间)
结果
1545826164.0164113
2018-12-26 20:09:24
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=26, tm_hour=20, tm_min=9, tm_sec=24, tm_wday=2, tm_yday=360, tm_isdst=0)print(time.strftime('%c'))
time.gmtime(时间戳)    #UTC时间,与英国伦敦当地时间一致
time.localtime(时间戳) #当地时间,例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间
结构化时间(python的时间)
print(time.localtime())
t = time.localtime()
print(t.tm_year)
print(t.tm_mon)
print(t.tm_min)
结果
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=26, tm_hour=20, tm_min=23, tm_sec=20, tm_wday=2, tm_yday=360, tm_isdst=0)
2018
12
23时间格式之间的转换问题
格式化时间转换戳时间
#先将格式化时间转换为结构化时间,然后将结构化时间转换为时间戳时间
ret = time.strptime('2008-8-8','%Y-%m-%d')
print(ret)
stmp = time.mktime(ret)
print(stmp)
结果
time.struct_time(tm_year=2008, tm_mon=8, tm_mday=8, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=221, tm_isdst=-1)
1218124800.0时间戳转换格式化时间
先将时间戳转换为结构化时间,然后将结构化看时间转换为格式化时间
ret = time.localtime(1500000000)
print(ret)
str_time = time.strftime('%Y-%m-%d %H:%M:%S',ret)
print(str_time)
结果
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)
2017-07-14 10:40:001.显示当前时间24小时之前的 年月日 时分秒
方法一 :
计算出1970年到现在经过的秒,然后减去一天的秒,然后转换为格式化时间
t1 = time.time()
print(t1)
t2 = t1 - (60*60*24)
print(t2)
t3 = time.localtime(t2)
print(t3)
t4 = time.strftime('%Y-%m-%d %H:%M:%S',t3)
print(t4)
结果
1545826916.4369211
1545740516.4369211
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=25, tm_hour=20, tm_min=21, tm_sec=56, tm_wday=1, tm_yday=359, tm_isdst=0)
2018-12-25 20:21:56方法二
打印结构化时间,然后print进行填充,填充tm_mday天减1
t1 = time.localtime()
print(t1)
print('%s-%s-%s %s:%s:%s'%(
t1.tm_year,
t1.tm_mon,
t1.tm_mday-1,
t1.tm_hour,
t1.tm_min,
t1.tm_sec))
结果
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=26, tm_hour=20, tm_min=13, tm_sec=24, tm_wday=2, tm_yday=360, tm_isdst=0)
2018-12-25 20:13:242.显示当前月的第一天的0:0:0的时间戳时间
先将时间转化为结构化时间,然后转化为格式化时间
now = time.localtime()
print(now)
str3 = time.strftime('%Y-%m-1 0:0:0',now)
print(str3)
ret2 = time.strptime(str3,'%Y-%m-%d 0:0:0')
print(ret2)
print(time.mktime(ret2))
结果
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=26, tm_hour=20, tm_min=14, tm_sec=16, tm_wday=2, tm_yday=360, tm_isdst=0)
2018-12-1 0:0:0
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=335, tm_isdst=-1)
1543593600.0方法二
now = time.localtime()
print(now)
str1 = time.strftime('%Y-%m',now)
print(str1)
str2 = time.strptime(str1,'%Y-%m')
print(str2)
print(time.mktime(str2)
结果
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=26, tm_hour=20, tm_min=14, tm_sec=40, tm_wday=2, tm_yday=360, tm_isdst=0)
2018-12
time.struct_time(tm_year=2018, tm_mon=12, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=5, tm_yday=335, tm_isdst=-1)
1543593600.0

functools模块
wraps: 可以改变一个函数的名字,注释...

from functools import wraps
def wrapper(fn):@wraps(fn)      # 把inner的名字改变成原来的funcdef inner(*args,**kwargs):print('执行前')ret = fn(*args,**kwargs)print('执行后')return retreturn inner
@wrapper        # func = wrapper(func)
def func():print('bob')
print(func.__name__)
结果
func

map 映射 reduce 归纳

from functools import reduce
def func(a, b):return a + b    # 0+1+4+7+2+5+8+3+6+9 累加
ret = reduce(func, [1,4,7,2,5,8,3,6,9])
func(func(func(0, 1),4),7)
print(ret)
print(reduce(lambda x, y:x + y, [i for i in range(101)]))执行流程
会把我们每一个数据交给func去执行,把默认值作为第一个参数传递给函数
第二个参数就是你这个序列中的第一个数据
接下来,把刚才返回的结果作为第一个参数传递个a
继续吧刚才的结果给第一个参数,把第三个数据传递给b结果
45
5050

partial偏函数,把函数的参数固定

from functools import partial
def chi(zhushi, fushi):print(zhushi, fushi)
# 固定函数中某些参数的值
chi2 = partial(chi, fushi="小辣椒")
chi2("大米饭")
chi2("小米饭")
chi2("白米饭")
结果
大米饭 小辣椒
小米饭 小辣椒
白米饭 小辣椒

转载于:https://www.cnblogs.com/wangm-0824/p/10199661.html

python常用模块一相关推荐

  1. 实战篇一 python常用模块和库介绍

    # -_-@ coding: utf-8 -_-@ -- Python 常用模块和库介绍 第一部分:json模块介绍 import json 将一个Python数据结构转换为JSON: dict_ = ...

  2. python常用模块大全总结-常用python模块

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. python常用模块什么是模块? 常见的场景:一个模块就是一个包含了py ...

  3. 对于python来说、一个模块就是一个文件-python常用模块

    python常用模块 什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用pyt ...

  4. python常用模块之shelve模块

    python常用模块之shelve模块 shelve模块是一个简单的k,v将内存中的数据通过文件持久化的模块,可以持久化任何pickle可支持的python数据类型 我们在上面讲json.pickle ...

  5. Python常用模块——目录

    Python常用模块学习 Python模块和包 Python常用模块time & datetime &random 模块 Python常用模块os & sys & sh ...

  6. Python常用模块集锦

    常用模块主要分为以下几类(缺失的后续再补充): 时间转换 时间计算 序列化和反序列化:json,pickle 编解码:unicode,base64 加解密:md5,sha1,hmac_sha1,aes ...

  7. Python+常用模块(2).md

    Python 常用模块 1. random模块 1.1 导入模块 import random 1.2 random.random() 生成一个从0到1的随机浮点数 1.3 random.uniform ...

  8. python用什么来写模块-Python常用模块——模块介绍与导入

    Python常用模块--模块介绍与导入 一.什么是模块? 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分 ...

  9. Python 常用模块总结

    Python 常用模块总结 1.random 2.math 3.os 4.os.path 5.sys 6.hashlib 7.hmac 8.time 9.datetime 10.calendar 11 ...

  10. python常用模块-调用系统命令模块(subprocess)

    python常用模块-调用系统命令模块(subprocess) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. subproces基本上就是为了取代os.system和os.spaw ...

最新文章

  1. java动态打jar包_java动态加载jar包
  2. oozie捕获标准输出异常capture-output
  3. redis的持久化存储,RDB与AOF
  4. hibernate底层dao
  5. 阿里数加大数据平台发布,将培养5万大数据科学家
  6. react native多语言_前端福音:为什么使用 React 和 SVG 开发图形 UI 是天作之合?
  7. 路透社:美国打算限制英伟达等与中国人工智能界合作
  8. Anroid开发中常用快捷键
  9. 【sklearn第二十六讲】模型评价
  10. 【快学springboot】使用springboot发送邮件
  11. 计算机基础(1)——Verilog语法入门
  12. DoIP诊断技术一点通
  13. Mendix的Hybrid App本地开发最佳实践
  14. ios查看帧率的软件_【iOS测试】【随笔】帧率FPS评测
  15. 基于lora的智慧路灯通信解决方案
  16. oracle是什么数据库管理系统,数据库管理系统
  17. 趣图:新手程序员 vs 高级程序员
  18. 毛刺现象 java_记一次微服务耗时毛刺排查
  19. 网络基本功(二十四):Wireshark抓包实例分析TCP重传
  20. WireShark案例分析

热门文章

  1. java final 变量 大小写_java – 为什么“final static int”可以用作开关的大小写常量但不是“final static”...
  2. poythoncode-实战5--json 文件读取,文本文件,csv文件,存到系统中以大列表方式进行存储
  3. python中capital是什么意思_Capital是什么意思?
  4. java静态类是只有一个吗,一个只有“私有最终静态”变量的java类。这是一个好主意吗?...
  5. typecho图标_使你的Typecho支持Emoji表情
  6. [python] 为 pip 更换国内源
  7. 一道打印菱形的面试题
  8. linux文件系统和mount(硬盘,win分区,光驱,U盘)
  9. 是的,我们真的在遭遇有史以来最大的DDoS攻击,并且还在加剧
  10. 【鱼眼镜头2】[鱼眼畸变模型]:评估了五个模型:radial,division,FOV,多项式(如双三次]和rational模型。