重修课程day18(模块2)

一 collections模块 :数据类型模块

 namedtuple:可命名元组

p=collections.namedtuple(‘p‘,[‘x‘,‘y‘])
a=p(1,2)
print(a.x+a.y)

 deque:双端队列 1 append:后添加;2 appendleft:前添加;3 pop:从后向前取值;4   popleft:从前到后取值

q=collections.deque([1,2,3,4])
q.append(5)  #后面添加
q.appendleft(7)  #第一个位置添加
q.pop()     #最后一个位置读取
q.popleft()    #第一个把位置开始读取
print(q)

 ordereddict:创建有序的字典

# d=collections.OrderedDict([(‘a‘,1),(‘b‘,2),(‘d‘,3)])
# for i in d.items():print(i)

 defaultdict:默认字典的value值

# values = [11, 22, 33,44,55,66,77,88,99,90]
# dic=collections.defaultdict(list)
# for l in values:
#     if l>66:
#         dic[‘k1‘].append(l)
#     else:
#         dic[‘k2‘].append(l)
# print(dic)

 counter计算字符出现的次数

print(collections.Counter(‘asasfewruvs‘))

二 time模块:时间模块

 time.time():当前时间戳   (计算机识别的时间)   从1970年1月1日00:00:00开始计算

# print(time.time(

 time.strftime():时间字符串  结构化时间转成字符串时间   #(人类识别的时间)

# print(time.strftime(‘%Y-%m-%d‘))

 time.localtime():结构化时间(计算国内时间)   时间戳装成结构化时间(计算国内时间)

# print(time.localtime())

 time.gmtime():结构化时间(计算国际时间)   时间戳转换成结构化时间(计算国际时间)

# print(time.gmtime())

 time.mktime():结构化时间转成时间戳   (机器识别的时间)

# print(time.mktime(time.localtime()))

 time.strptime():字符串时间转成结构化时间 (计算时间)

# time_1=time.strftime(‘%Y-%m-%d‘)
# print(time.strptime(time_1,"%Y-%m-%d"))

 time.asctime():结构化时间转成字符串时间(转换后有固定的格式)

# print(time.asctime())

 time.ctime():时间戳转成字符串时间(转换后有固定的格式)



# print(time.ctime())

计算时间差:



# import time
# end=time.time()
# start=time.mktime(time.strptime(‘2017-09-11 08:30:00‘,‘%Y-%m-%d %H:%M:%S‘))
# end_start=end-start
# cha_time=time.localtime(end_start)
# print(‘已经过去了%s年%s月%s天%s小时%s分种%s秒‘%(cha_time.tm_year-1970,cha_time.tm_mon-1,cha_time.tm_mday-1,cha_time.tm_hour-0,cha_time.tm_min-1,cha_time.tm_sec-0))
 
时间日期格式化符合

 %y:两位数的年份

 %Y:四位数的年份

 %m:月份

 %d:天

 %H:24进制的小时

 %I:12进制的小时

 %M:分钟

 %S:秒

 %a:本地简化星期名称

 %A:本地完整星期名称

 %b:本地简化的月份名称

 %B:本地完整的月份名称

 %c:本地相应的日期和时间的表示

 %j:年内的一天

 %p:本地AM或者PM的等价符

 %U:一年中的星期数,星期天为星期的开始

 %w:星期(0-6),星期天为开始

 %W:一年中的星期数,星期一为开始

 %x:本地相应的时间表示

 %X:当前时期的名称

 %%:%本身

三 random模块:随机模块

 random:0到1之间的小数

print(random.random())

 uniform:自定义小数范围

print(random.uniform(1,4))

 randint:自定义随机整数的范围(取头取尾)

print(random.randint(1,10))

 randrange:自定义随机整数的范围(取头不取尾)还可以定义步长取

print(random.randrange(1,20,2))

 choice:随机返回一个值

print(random.choice([1,2,3,44,(2,4,6)]))

 sample:随机返回多个值,自定义返回值的个数

print(random.sample([1,2,3,44,(2,4,6)],3))

 shuffle:打乱顺序

l=[1,2,3,4,5,6,7,8,9]
random.shuffle(l)
print(l)

随机验证码

# import random
# def yan(n):
#     ll=‘‘
#     for num in range(n):
#         i=random.randint(0,9)
#         j=chr(random.randint(65,90))
#         z=chr(random.randint(97,122))
#         l=random.choice([str(i),j,z])
#         ll+=l
#     print(ll)
# yan(6)

四 os模块

  os.getcwd:获取当前的工作目录

 os.chdir:改变当前脚本的工作目录

 os.curdir:返回当前目录

 os.pardir:获取当前目录的父目录字符串名

 os.makedirs:可生成多层递归目录

 os.removedirs:递归删除上一级的空目录

 os.mkdir:生成单层目录

 os.rmdir:删除单级空的目录

 os.listdir:列出指定目录下的所有的文件和子目录

 os.remove:删除一个文件

 os.rename:修改文件名/目录名

 os.stat:获取文件/目录信息

 os.sep:输出操作系统特定的路劲分割符

 os.linesep:输出当前平台的行终止符

 os.pathsep:输出用于分割文件路径的字符串

 os.name:输出字符串指示的当前平台

 os.system:运行shell命令直接显示

 os.popen:运行shell命令,获取执行结果

 os.environ:获取系统的环境变量

 os.path.abspath:返回path规范化的绝对路径

 os.path.exists:如果path存在,返回True;相反返回False

 os.path.isabs:如果path是绝对路径返回True

 os.path.isfile:如果是是一个存在的文件返回True

 os.path.isdir:如果是一个存在的目录返回True

 os.path.join:路径拼接

 os.path.getatime:返回所指向文件或者目录最后的访问时间

 os.path.getmtime:返回所指文件或者目录的最后修改时间

 os.path.getsize:返回文件或者目录的大

五 sys模块

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

 sys.exit:退出程序

 sys.version:获取python解释器的版本信息

 sys.path:返回模块的 搜索路径

 sys.platform:返回操作系统平台名称

六 序列化模块

 什么叫做序列化:将原本的数据类型转换成字符串的过程就叫做序列化;相反将字符串转为非字符串的数据类型就叫做反序列化

 序列化的好处:1以某种存储形式使自定义对象持久化;2 将对象从一个地方传送到另一个地方;3 使程序更具有维护性

 序列化的几个模块:json模块:用于各种开发语言之间的,只能在基本的数据类型上使用

          pickle模块:只能用于python开发中,不过可以对特殊的数据类型进行操作

          shelve模块:只有open一个方法,直接就可以对文件句柄操作。读取的内容是以存入的类型读取的。

json和pickle的四种功能:dump和dumps:序列化,转成字符串,dump用于文件操作;dumps用于网络传输。

            load和loads:反序列化,转换成非字符串(内容中假如要用引号,必须用双引号)。load用于文件操作,loads用于网络传输。

json:

import json
# a={‘fan‘:123,‘jie‘:321}
# with open(‘a‘,‘w‘,encoding=‘utf-8‘)as f:
#     json.dump(a,f)  #序列化写入文件
#
# with open(‘a‘)as f:
#     print(json.load(f))  #反序列化读取

# print(type(json.dumps({‘fan‘:123,‘jie‘:321})))  #序列化
# print(type(json.loads(‘{"fan":123,"jie":321}‘)))   #反序列化

pickle:

# import pickle
# a={‘fan‘:123,‘jie‘:321}
# with open(‘a1‘,‘wb‘)as f:
#     pickle.dump(a,f)  #序列化写入文件
#
# with open(‘a1‘,‘rb‘)as f:
#     print(pickle.load(f))  #反序列化读取
#
#
# print(type(pickle.dumps({‘fan‘:123,‘jie‘:321})))  #序列化
# print(type(pickle.loads(pickle.dumps(‘{"fan":123,"jie":321}‘))))   #反序列化

shelve:

# import shelve
# with shelve.open(‘a2‘)as f:
#     f[‘k1‘]={"fan":123,"jie":321}            直接对文件句柄操作,就可以存入数据
#     f[‘k2‘] = {"fang": 1234, "jie": 3210}          直接对文件句柄操作,就可以存入数据
#     f1=f[‘k2‘]              #取出数据的时候也只需要直接用key获取即可,但是如果key不存在会报错
#     print(f1)
#     print(f[‘k1‘])        #取出数据的时候也只需要直接用key获取即可,但是如果key不存在会报错
时间: 2024-10-24 14:47:07

重修课程day18(模块2)的相关文章

重修课程day25(面向对象6之模块与包)

一 模块 1  什么叫做模块:一个py文件就是一个模块 模块的分类:内置模块,第三方模块和自定义模块 内置模块:在python产生是就有的模块叫做内置模块,我们只管拿来调用即可 第三方模块:别人已经定义好了的模块,我们只管下载安装一下就可以调用 自定义模块:自己定义的模块叫做自定义模块,根据自己设置的调用方式调用 2 导入模块的顺序:内置模块:第三方模块:自定义模块 导入模块的规则是:建议不在同一行导入多个模块 模块的命名空间:模块有模块的命名空间,存在于当前模块的py文件里     在导入模块

重修课程day17(正则表达式)

一 正则表达式和re模块 1 什么叫做正则表达式:这则表达式是字符串的一种筛选规则 2 正则表达式的好处:1,1匹配:检测字符串是否符合正则表达式的规则,否则返回False. 1,2 切割:按照一定的规则将字符串分割成多个字符串. 1,3替换:将字符串中的字符替换成指定的字符. 1,4获取:获取与规则子符相符的字符: 步骤:① 将正则封装成正则:② 正则表达式和要操作的字符相关联,获得匹配对象:③ 获取正则表达式的匹配引擎:④ 通过引擎对福和规格的字符进行操作. 正则里的一些常用操作: 1 字符

重修课程day15(函数之内置函数一)

什么是内置函数:别人已经定义好了的函数,我们只管拿来调用就好 locals:局部作用域中的变量 globals:全局作用域中的变量 这两者在全局执行,结果一样:在局部中locals表示函数内的名字,返回的是一个字典,globals始终不变 # def func(): # a=123 # print(locals()) # func() # print(locals()) # # print(globals()) # def func(): # a=123 # print(globals()) #

重修课程day45(mysql九之完结篇)

一 视图 什么是视图:视图就是一张虚拟表.方便查看. 创建视图:create view 起名 as sql语句 注意sql语句不能包括子查询. 修改视图:alter view 视图名称 as sql语句 删除视图:drop view 视图名 二 触发器 什么是触发器:由一个行为触发了某一个行为.也就是用户对于表的增删改的操作前后的行为. 创建触发器: # 插入前 CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH

重修课程day45(mysql之练习题二)

准备表: create table class(cid int primary key auto_increment, caption char(5) not null unique); INSERT into class(caption)values('三年二班'),('一年三班'),('三年一班'); CREATE table student(sid int primary key auto_increment, sname char(6) not null, gender enum('男'

重修课程day61(django之补充)

一 QuerySet类型 QuerySet类型:只和orm有关,如果一涉及数据库,就会有QuerySet类型的出现. QuerySet切片操作:QuerySet是支持切片操作的,不过不能放负数.查询集的切片会返回一个新的查询集,不会执行查询. Entry.objects.all()[:5] # (LIMIT 5) Entry.objects.all()[5:10] # (OFFSET 5 LIMIT 5) QuerySet遍历操作: # for book in bookList: # print

重修课程day7(python基础4之基础补充)

一 bit,和bytes的关系 bit:就是计算机的最小的表示单位. bytes:就是计算机的最小的储存单位. 1  字节(bytes) = 8 位(bit) 格式: print(bytes('字符',encoding='utf-8')) 文件默认读取文件 二 strip的其他功能 strip去掉两边的空格,换行符,制表符等等,还可以指定删除字符 a=' dsad ' print(a.strip()) b='\ndsfsadagh\t' print(b.strip()) print(123) c

重修课程day1(python基础1)

一 什么是计算机 1 计算机就是由一堆硬件组成的一个机器. 2 硬件的分类: CPU:犹如人类的大脑,运行着需要运行的程序. 内存:将 CPU要运行的内容从硬盘中读取出来,然后CPU在内存里拿内容,只是一个短暂性的存储,加入突然关机,数据会丢失. 硬盘:硬盘相当于人的笔记本,长期可以存储数据,永久性的存储.关机数据也不会丢失. 他们三者之间是由操作系统来操作的. 3 什么使操作系统:操作系统本身就是一个软件,而它是建立在硬件之上,他控制着每一硬件的运行,是硬件的运行有序化. 4 什么是应用程序:

重修课程day24(面向对象5之封装)

type:是所有类的类型,所有类的类型默认是type. 一 封装 1 什么叫做封装:就是将自己想要隐藏起来的内容给隐藏起来. 封装的原则:1.1将不需要对外提供的内容隐藏起来:1,2将属性隐藏起来,提供公共方法对其访问. 2 私有属性:self.__属性名 3 私有的静态属性:__静态属性名 4 私有方法:def  __函数名(self): # class Teacher: # __zhiwei='laoshi' #创建私有静态属性 # def __init__(self,name,pwd):