专栏首页python3python 内置模块

python 内置模块

一.random模块  随机

random()    随机小数            

uninform(a,b) 随机小数

randint(a,b)  随机整数

choice() 随机选择一个

sample() 随机选择多个

 shuffle() 打乱

 1 import random
 2 from random import randint
 3 
 4 print(randint(10, 20))
 5 # print(random.randint(10, 20))/
 6 print(random.random())
 7 print(random.uniform(10, 20))  # 10-20的随机小数
 8 
 9 lst = ['宝宝', '宝浪', '宝强', '包拯']
10 random.shuffle(lst)  # 随机打乱顺序
11 print(lst)
12 
13 
14  # 从列表中随机选择一个
15 print(random.choice(["林志玲", "刘一菲", "王昭君", "艾米", "宝宝"]))
16 print(random.sample(["林志玲", "刘一菲", "王昭君", "艾米", "宝宝"],3))  # 可以给随机选取几个

二.Counter 计数

1 from collections import Counter
2 
3 print(Counter('宝宝今年特别喜欢王宝强'))  # 计数
4 
5 lst = ['jay', 'jay', 'jay', '宝宝', '宝宝', '胡辣汤', '上官婉儿']
6 c = Counter(lst)
7 print(c.get('宝宝'))

三.字典

1.默认值字典

1 from collections import defaultdict
2 
3 dd = defaultdict(lambda: '胡辣汤')  # callable 可调用的, 字典是空的
4 
5 print(dd['张无忌'])  # 从字典向外拿数据. 字典是空的. key:callable()
6 print(dd['宝宝'])  # 这里的[] 和get() 不是一回事儿
7 print(dd)

2.有序字典

1 from collections import OrderedDict
2 
3 dic = OrderedDict()  # 有序字典
4 dic['a'] = '哈哈'
5 dic['b'] = '呵呵'
6 print(dic)
7 print(dic.get('a'))
8 print(dic.values())
9 print(dic['a'])

四.栈和队列

1.栈

特点:先进后出

 1 class StackFullException(Exception):
 2     pass
 3 
 4 class StackEmptyException(Exception):
 5     pass
 6 class Stack:
 7 
 8     def __init__(self,size):
 9         self.size = size 给定存放数据的长度
10         self.lst = []  # 存放数据的列表
11         self.top = 0  # 栈顶指针
12 
13     # 入栈
14     def push(self, el):
15         if self.top >= self.size:
16             raise StackFullException('your stack is full!!')
17         self.lst.insert(self.top, el)  # 放元素
18         self.top += 1  # 栈顶指针向上移动一下
19 
20 
21     # 出栈
22 
23     def pop(self):
24         if self.top == 0:
25             raise StackEmptyException('your stack is empty!!!')
26         self.top -= 1
27         el = self.lst[self.top]
28         return el
29 
30 s = Stack(6)
31 s.push('宝宝')
32 s.push('我还')
33 s.push('记得')
34 
35 print(s.pop())
36 print(s.pop())
37 print(s.pop())

2.单项队列

特点:先进先出

 1 import queue
 2 q = queue.Queue()
 3 q.put('李嘉诚1')
 4 q.put('李嘉诚2')
 5 q.put('李嘉诚3')
 6 q.put('李嘉诚4')
 7 q.put('李嘉诚5')
 8 
 9 print(q.get())
10 print(q.get())
11 print(q.get())
12 print(q.get())
13 print(q.get())

3.双向队列

特点:和单项一样

 1 from collections import deque
 2 
 3 d =deque()  #  创建双向队列
 4 d.append('宝宝')  # 在右侧添加
 5 d.append('no')
 6 d.append('way')
 7 d.append('哈哈')
 8 d.appendleft('娃哈哈')  # 在左边添加
 9 d.appendleft('爽歪歪')
10 d.appendleft('优酸乳')
11 
12 print(d.pop())  # 从右边拿数据
13 print(d.pop())  # 从右边拿数据
14 print(d.pop())  # 从右边拿数据
15 print(d.pop())  # 从右边拿数据
16 print(d.popleft())  # 从左边拿数据
17 print(d.popleft())  # 从左边拿数据
18 print(d.popleft())  # 从左边拿数据

五.time模块

1 # 时间戳: 从1970-01-01 00:00:00 开始计算. 未来存储的时候用时间戳
2 print(time.time())
1 # 格式化时间
2 print(time.strftime('%Y-%m-%d %H:%M:%S'))  # 用来显示的
1 # 结构化时间(python的时间)
2 t = time.localtime()
3 print(t.tm_year)
4 print(t.tm_mon)
5 print(t.tm_mday)
1 # 数据库里存储一个数字. 把它还原成我们的格式化时间
2 a = 847772281.0
3 # 先把这个时间戳转换成python中的结构化时间
4 t = time.localtime(a)  # 结构化时间括号里填的是秒 time.localtime(秒) # 本地化的东八区的时间
5 # t = time.gmtime(a)  # 格林尼治时间
6 
7 s = time.strftime('%Y-%m-%d %H:%M:%S', t)  # time.strftime(格式化格式, 传入结构化转化完的时间 t)
8 print(s)
# 让用户输入一个时间. 然后把时间转化成时间戳
strt = input('请输入一个时间:')
# 把字符串转化成结构化时间
t = time.strptime(strt, '%Y-%m-%d %H:%M:%S')
# 转化成时间戳
print(time.mktime(t))  # 847772281.0  # 本地化的东八区的时间

六.functools

1.wraps

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

2.reduce

1 def func(a, b):
2     return a + b # 0 + 1
3 
4 # 会把我们每一个数据交给func去执行, 把默认值作为第一个参数传递给函数
5 
6 ret = reduce(func, [1, 4, 7, 8, 6, 9],0)
7 print(ret)
8 print(reduce(lambda x, y: x+y, [i for i in range(101)]))

3.partial

1 from functools import partial
2 
3 def chi(zhushi, fushi):
4     print(zhushi, fushi)
5 
6 chi2 = partial(chi, fushi = "辣鸡爪")
7 chi2('大米饭')
8 chi2('小米饭')
9 chi2('黑米饭')

七.命名元组 namedtuple

1 p = namedtuple('Point', ["x", "y"])
2 
3 p1 = p(10, 20)
4 print(p1)
5 print(p1.x)
6 print(p1.y)

八.OS模块 系统操作 1.os

# 必须要记住. 很常用
os.makedirs('baby/安哥拉/特斯拉')  # 可以一次性创建多级目录

os.mkdir('baby/安哥拉/特斯拉/bb') # 上层文件夹必须存在

os.removedirs('baby/安哥拉/特斯拉/bb')  # 目录不是空, 不能删除  #可以帮我们删除当前这个目录级中的所有空文件夹

# 可以记住 一般不删数据
os.rmdir('baby/安哥拉/特斯拉')  # 指定文件夹删除

os.system('dir')
print(os.popen('dir').read())  # 执行shell脚本或者cmd命令

print(os.getcwd())  # 当前程序运行的文件夹 D:\python_workspace_s18\day 23 内置模块02

os.chdir('baby') 
 1 # os.path 和路径相关的内容
 2 print(os.path.abspath('baby'))  # 把相对路径改成绝对路径
 3 print(os.path.split(r'D:\python_workspace\内置模块\baby\1.txt'))  # 切割文件和文件路径
 4 
 5 print(os.path.dirname(r'D:\python_workspace\内置模块\baby\1.txt'))  
 6  # 文件路径
 7 print(os.path.basename(r'D:\python_workspace\内置模块\baby\1.txt'))  
 8 # 文件
 9 
10 print(os.path.existsr'D:\python_workspace\内置模块\baby\1.txt'))  
11 # 判断文件是否存在
12 print(os.path.abspath('1.txt'))

2.sys模块

1 import sys
2 
3 print(sys.path)  # 找到模块的. 必须要记住. 模块的搜索路径
4 sys.path.append(r'D:\python_workspace\内置常用模块')
5 print(sys.path)

九.自定义模块和包

import    

from xxx import xxxx    

一个表达式 -> 一条语句  -> 语句块  -> 函数 -> 类  -> 模块  -> 包  -> 项目        

包就是我们的文件夹, 包内可以写很多个模块.

查找路径是:sys.path, 随动. 跟着你的启动文件所在的位置变化        

不论使用绝对导入. 还是相对导入. 启动文件一定在最外面

 1.模块

写的一个py文件就可以称作一个模块

2.包

文件夹里装很多模块的就是包

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

推荐阅读

  • 远程办公经验为0,如何将日常工作平滑过度到线上?

    我是一名创业者,我的公司(深圳市友浩达科技有限公司)在2018年8月8日开始运营,现在还属于微型公司。这个春节假期,我一直十分关注疫情动向,也非常关心其对公司带来的影响。

    TVP官方团队
    TAPD 敏捷项目管理腾讯乐享企业邮箱企业编程算法
  • 数据中台,概念炒作还是另有奇效? | TVP思享

    作者简介:史凯,花名凯哥,腾讯云最具价值专家TVP,ThoughtWorks数据智能业务总经理。投身于企业数字化转型工作近20年。2000年初,在IBM 研发企业级中间件,接着加入埃森哲,为大型企业提供信息化架构规划,设计,ERP,云平台,数据仓库构建等技术咨询实施服务,随后在EMC负责企业应用转型业务,为企业提供云迁移,应用现代化服务。现在专注于企业智能化转型领域,是数据驱动的数字化转型的行业布道者,数据中台的推广者,精益数据创新体系的创始人,2019年荣获全球Data IQ 100人的数据赋能者称号,创业邦卓越生态聚合赋能官TOP 5。2019年度数字化转型专家奖。打造了行业第一个数据创新的数字化转型卡牌和工作坊。创建了精益数据创新方法论体系构建数据驱动的智能企业,并在多个企业验证成功,正在向国内外推广。

    TVP官方团队
    大数据数据分析企业
  • 扩展 Kubernetes 之 CRI

    使用 cri-containerd 的调用流程更为简洁, 省去了上面的调用流程的 1,2 两步

    王磊-AI基础
    Kubernetes
  • 扩展 Kubernetes 之 Kubectl Plugin

    kubectl 功能非常强大, 常见的命令使用方式可以参考 kubectl --help,或者这篇文章

    王磊-AI基础
    Kubernetes
  • 多种登录方式定量性能测试方案

    最近接到到一个测试任务,某服务提供了两种登录方式:1、账号密码登录;2、手机号+验证码登录。要对这两种登录按照一定的比例进行压测。

    八音弦
    测试服务 WeTest
  • 线程安全类在性能测试中应用

    首先验证接口参数签名是否正确,然后加锁去判断订单信息和状态,处理用户增添VIP时间事务,成功之后释放锁。锁是针对用户和订单的分布式锁,使用方案是用的redis。

    八音弦
    安全编程算法
  • 使用CDN(jsdelivr) 优化博客访问速度

    PS: 此篇文章适用于 使用 Github pages 或者 coding pages 的朋友,其他博客也类似.

    IFONLY@CUIT
    CDNGitGitHub开源
  • 扩展 Kubernetes 之 CNI

    Network Configuration 是 CNI 输入参数中最重要当部分, 可以存储在磁盘上

    王磊-AI基础
    Kubernetes
  • 聚焦【技术应变力】云加社区沙龙online重磅上线!

    云加社区结合特殊时期热点,挑选备受关注的音视频流量暴增、线下业务快速转线上、紧急上线防疫IoT应用等话题,邀请众多业界专家,为大家提供连续十一天的干货分享。从视野、预判、应对等多角度,帮助大家全面提升「技术应变力」!

    腾小云
  • 京东购物小程序购物车性能优化实践

    它是小程序开发工具内置的一个可视化监控工具,能够在 OS 级别上实时记录系统资源的使用情况。

    WecTeam
    渲染JavaScripthttps网络安全缓存

扫码关注云+社区

领取腾讯云代金券