python之路--内置常用模块
一 . 简单的了解模块
你写的每一个py文件都是一个模块. 还有一些我们一直在使用的模块.
buildins 内置模块. print, input.
random 主要是和随机相关的的内容
random() 随机小数
uninform(a,b) 随机小数
randint(a,b) 随机整数
choice() 随机选择一个
sample() 随机选择多个
shuffle() 打乱
import random
print(random.randint(10,20)) from random import randint
print(randint(10,20)) import random
print(random.randint(10,20)) # 随机整数
print(random.random()) # python中所有随机数的根 随机小数 0-1
print(random.uniform(10,20)) # 10-20的随机小数
lst = ["宝宝", "宝强", "宝浪", "包拯"]
random.shuffle(lst) # 随机打乱顺序
print(lst)
# 从列表中随机选择一个
print(random.choice(["林志玲", "刘一菲", "王昭君", "艾米", "宝宝"]))
print(random.sample(["林志玲", "刘一菲", "王昭君", "艾米", "宝宝"], 3))
二 . Collections
1. Counter 计数器
# from collections import Counter
# print(Counter("我我我你你他")) # 计数 Counter({'我': 3, '你': 2, '他': 1})
# lst = ["jay",'jay',"jay","宝宝","宝宝", "胡辣汤", "上官婉儿", "上官婉儿"]
# print(Counter(lst)) # Counter({'jay': 3, '宝宝': 2, '上官婉儿': 2, '胡辣汤': 1})
2. defaultdict 默认值字典
from collections import defaultdict
# 默认值字典
dd = defaultdict(lambda: '武林盟主') # callable 可调用的, 字典是空的
dic = dd['张无忌']
print(dd) # defaultdict(<function <lambda> at 0x0000007BEA451EA0>, {'张无忌': '武林盟主'})
3. OrderedDict 有序字典
from collections import OrderedDict
# 有序字典
dic = OrderedDict()
dic["笑傲江湖"] = "令狐冲"
dic['天龙八部'] = "乔峰"
print(dic) # OrderedDict([('笑傲江湖', '令狐冲'), ('天龙八部', '乔峰')])
print(dic.get("笑傲江湖")) # 令狐冲
print(dic.values()) # odict_values(['令狐冲', '乔峰'])
print(dic['天龙八部']) # 乔峰
数据结构(队列, 栈(重点))
栈:先进后出
Stack
# 特点: 先进后出
class StackFullException(Exception):
pass
class StackEmptyException(Exception):
pass
class Stack:
def __init__(self, size):
self.size = size
self.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-=1
el = self.lst[self.top]
return el s = Stack(4)
s.push("笑")
s.push("傲")
s.push("江")
s.push("湖")
print(s.pop()) # 湖
print(s.pop()) # 江
print(s.pop()) # 傲
print(s.pop()) # 笑
队列: 先进先出
Queue
import queue
q = queue.Queue()
q.put("射")
q.put("雕")
q.put("英雄")
q.put("传") print(q.get()) # 射
print(q.get()) # 雕
print(q.get()) # 英雄
print(q.get()) # 传
双向队列
from collections import deque d = deque() # 创建双向队列
d.append("书剑") # 在右侧添加
d.append("恩仇")
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()) # 从左边拿数据 娃哈哈
3. Time模块
时间有三种:
结构化时间 gmtime() localtime()
时间戳 time.time() time.mktime()
格式化时间 time.strftime() time.strptime()
import time # 时间戳: 从1970-01-01 00:00:00开始计算. 未来存储的时候用是时间戳
print(time.time()) # 显示的是从1970-01-01 00:00:00开始计算到现在是多少秒 # 格式化时间
print(time.strftime("%Y-%m-%d %H:%M:%S")) # 用来显示的 # 2018-12-26 12:38:56 # 结构化时间(python的时间)
print(time.localtime())
t = time.localtime()
print(t.tm_year) #
print(t.tm_mon) #
print(t.tm_mday) #
时间转化:
数字 -> 字符串
struct_time = time.localtime(数字)
str = time.strftime("格式", struct_time)
import time
# 数据库中存储一个数字,把它还原成我们的格式化时间
a = 1541952464
# 先把这个时间戳转化成python中的结构化时间
t = time.localtime(a) # 东八区时间
# 把这个结构化时间转化成格式化时间
s = time.strftime('%Y-%m-%d %H:%M:%S', t)
print(s) # 2018-11-12 00:07:44
# 数据库里存储一个数字. 把它还原成我们的格式化时间
a = 0 # 可以在范围内随便设
# 先把这个时间戳转化成python中的结构化时间
t = time.gmtime(a) # 格林尼治时间
# 把一个结构化时间转化成格式化时间
s = time.strftime("%Y-%m-%d %H:%M:%S", t)
print(s) # 1970-01-01 00:00:00
字符串 -> 数字
struct_time = time.strptime(字符串, "格式")
num = time.mktime(struct_time)
无论是由时间戳转化成格式化时间 还是由 格式化时间转化成时间戳都需要经过结构化时间
# 用户输入一个时间,然后把时间转化成时间戳
strf = input('请输入一个时间:') # 2018-12-12 21:12:43
# 把字符串转化成结构化时间
t = time.strptime(strf,'%Y-%m-%d %H:%M:%S')
print(time.mktime(t)) # 1544620363.0
四 . functools
wraps 给装饰器中的inner改名字
from functools import wraps # 可以改变一个函数的名字, 注释... def wrapper(fn):
@wraps(fn) # 把inner的名字改变成原来的func
def inner(*args, **kwargs):
print("前")
ret = fn(*args, **kwargs)
print("后")
return ret
return inner
@wrapper # func = wrapper(func)
def func():
print('哈哈哈')
print(func.__name__) # func 如果没有@wraps 打印的就是inner
reduce 归纳.
from functools import reduce
def func(a, b):
return a + b # 0+1+2+3+4+5+6# 累加 # 会把我们每一个数据交给func去执行, 把默认值作为第一个参数传递给函数
# 第二个参数就是你这个序列中的第一个数据
# 接下来. 把刚才返回的结果作为第一个参数传递个a
# 继续吧刚才的结果给第一个参数. 把第三个数据传递给b
ret = reduce(func, [1,2,3,4,5,6])
# 工作流程
# func(func(func(0, 1),2),4)
print(ret)
print(reduce(lambda x, y:x + y, [i for i in range(101)])) #
偏函数 把函数的参数固定.
from functools import partial def eat(zhushi, fushi):
print(zhushi, fushi)
# 固定函数中某些参数的值
eat2 = partial(eat, fushi="辣鸡爪")
eat2("大米饭") # 大米饭 辣鸡爪
eat2("小米饭") # 小米饭 辣鸡爪
eat2("黑米饭") # 黑米饭 辣鸡爪
python之路--内置常用模块的更多相关文章
- day05 模块以及内置常用模块用法
内置常用模块详解: 1 time 2 datetime 3 random 4 os 5 sys 6 shutil 7 shelve 8 xml 9 configparser 10 hashlib ...
- python之路——内置函数和匿名函数
阅读目录 楔子 内置函数 匿名函数 本章小结 楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们 ...
- day25 内置常用模块(四): 模块和包
阅读目录: 模块 import from xxx import xxx 包 import from xxx import xxx from xxx import * __init__.p ...
- 百万年薪python之路 -- 内置函数二 -- 最常用的内置函数
1.内置函数 1.1 匿名函数 匿名函数,顾名思义就是没有名字的函数(其实是有名字的,就叫lambda),那么什么函数没有名字呢?这个就是我们以后面试或者工作中经常用匿名函数 lambda,也叫一句话 ...
- python之路 内置函数,装饰器
一.内置函数 #绝对值 abs() #所有值都为真才为真 all() #只要有一个值为真就为真 any() #10进制转成二进制 bin() #10进制转成八进制 oct() #10进制转成十六进制 ...
- Python之路----------内置函数
1.abs(x)绝对值 #coding=utf-8 a = 1 b = -2 print(abs(a)) print(abs(b)) 2.all(iterable)可迭代对象里面所有内容为真返回真,空 ...
- python之路--内置函数, 匿名函数
一 . 内置函数 什么是内置函数? 就是python给你提供的. 拿来直接⽤的函数, 比如print., input等等. 字符串类型代码的执⾏ eval() 执⾏字符串类型的代码. 并返回最终结果( ...
- Python之路----内置函数补充与匿名函数
内置函数补充:reversed()保留原列表,返回一个反向的迭代器 l = [1,2,3,4,5] l.reverse() print(l) l = [1,2,3,4,5] l2 = reversed ...
- NO.4:自学python之路------内置方法、装饰器、迭代器
引言 是时候开始新的Python学习了,最近要考英语,可能不会周更,但是尽量吧. 正文 内置方法 Python提供给了使用者很多内置方法,可以便于编程使用.这里就来挑选其中大部分的内置方法进行解释其用 ...
随机推荐
- centos7下安装docker(17.4docker监控----prometheus)
Prometheus是一个非常优秀的监控工具.准确的说,应该是监控方案.Prometheus提供了监控数据搜集,存储,处理,可视化和告警一套完整的解决方案 Prometheus架构如盗图: 官网上的原 ...
- SpringCloudStream实战
Spring Cloud Stream是一个用于构建消息驱动的微服务应用程序的框架.Spring Cloud Stream构建于Spring Boot之上,用于创建独立的生产级Spring应用程序,并 ...
- .net core redis 驱动推荐,为什么不使用 StackExchange.Redis 转发 https://www.cnblogs.com/kellynic/p/9325816.html
前言 本人从事 .netcore 转型已两年有余,对 .net core 颇有好感,这一切得益于优秀的语法.框架设计. 2006年开始使用 .net 2.0,从 asp.net 到 winform 到 ...
- 在其他Activity中展示自定义相机拍的照片
在使用相机拍照中,我们需要当点击了确定按钮之后,拍的照片展示在其他Activity的ImageView中,代码如下: 1.首先在自定义相机的Activity中,处理点击拍照确定按钮后的逻辑功能:将图片 ...
- 444 D. Ratings and Reality Shows
一个模特有两种活动. ① 拍照片,挣钱 a. ②开演唱会,花费b 给定模特这两种工作的时间表. 模特可以选定一个时间举办一个座谈会,那么他拍照片的钱变c.开演唱会会花费d. 要求在模特座谈会之前和后l ...
- 【原创】惊!史上最全的select加锁分析(Mysql)
引言 大家在面试中有没遇到面试官问你下面六句Sql的区别呢 select * from table where id = ? select * from table where id < ? s ...
- 十三、MUI的日期起始和结束日期设置
MUI的日期选择器的使用 // 日期选择器 //生日选择器(不会超过今年) function fdPicker1(id) { var year=new Date().getFullYear(); va ...
- (第十三周)Final阶段用户调查报告
项目名:食物链教学工具 组名:奋斗吧兄弟 组长:黄兴 组员:李俞寰.杜桥.栾骄阳.王东涵 用户调查报告 调查时间:2016年12月1日 21:00——2016年12月3日 12:00 项目分享链接 ...
- Graph Without Long Directed Paths CodeForces - 1144F (dfs染色)
You are given a connected undirected graph consisting of nn vertices and mm edges. There are no self ...
- 培训班课程课时及费用管理系统V3.0,适合钢琴培训班、艺术培训班等
联系QQ 564955427. ACM3.02 文件下载 还有: 预收课时版 特点: 1. 适合主要业务是一对一课程和部分集体课培训的中小培训班(非连锁管理).考 ...