第五天课程

# 模块,python文件   写好了但不直接使用的功能
#import time /os/sys
#为什么这些模块提供的方法,不能直接使用,需要先导入?
#常用的和某个操作相关的分成不同的模块
# 模块种类:内置模块 拓展模块 自定义模块
# collections
# 1.namedtuple: 生成可以使用名字来访问元素内容的tuple
#>>> from collections import namedtuple
# from collections import namedtuple
# p = (1, 2)
# Point = namedtuple('Point', ['x', 'y'])
# p = Point(1, 2)
# print(p.x)
# print(p.y)
# 2.deque: 双端队列,可以快速的从另外一侧追加和推出对象
## pop 选取值只能从两边取值,appendleft左加
# appendright 右加
# 3.Counter: 计数器,主要用来计数
# 计算字符串中相应字符个数
# 4.OrderedDict: 有序字典
#
# 5.defaultdict: 带有默认值的字典
# from collections import defaultdict
#
# values = [11, 22, 33,44,55,66,77,88,99,90]
#
# my_dict = defaultdict(list)#默认为空列表
# 时间模块
# import time
# print (time.time())时间戳时间 英国时间
# 1)时间戳(timestamp) :通常来说,时间戳表示的是从1970年1月1日00:00:00
# 开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
# 格式化时间
# 1.time.strftime("%Y-%m-%d %H-%M-%S")
# '2017-07-24 13-55-04'
# 结构化时间
# import time
# print(time.localtime())#时间戳可以转化为格式化时间的桥梁
# time.localtime(155255)时间戳时间转格式化时间
#结构化时间-->时间戳 
#time.mktime(结构化时间)
# 1.拿到当前时间的月初一号0点的时间戳
# 2.计算任意时间段之间,相差的时间年月日时分秒
# random模块
# >>> import random
# #随机小数
# >>> random.random() # 大于0且小于1之间的小数
# 0.7664338663654585
# >>> random.uniform(1,3) #大于1小于3的小数
# 1.6270147180533838
# #随机整数
# >>> random.randint(1,5) # 大于等于1且小于等于5之间的整数
# >>> random.randrange(1,10,2) # 大于等于1且小于10之间的奇数
# 取数字
# import random
# s=""
# for i in range(4):
# s+=str(random.randint(0,9))
# print(s)
#随机选择一个返回
# >>> random.choice([1,'23',[4,5]]) # #1或者23或者[4,5]
# #随机选择多个返回,返回的个数为函数的第二个参数
# >>> random.sample([1,'23',[4,5]],2) # #列表元素任意2个组合
# # #随机选择一个返回
# import random
# s=""
# for i in range(4):
# num=random.randint(65,90)
# alf=chr(random.randint(65,90))
# num3=str(random,randint(0,9))


# >>> random.choice([1,'23',[4,5]]) # #1或者23或者[4,5]
# #随机选择多个返回,返回的个数为函数的第二个参数
# >>> random.sample([1,'23',[4,5]],2) # #列表元素任意2个组合
# [[4, 5], '23']
# sys模块
# sys.path sys.argv脚本执行
# sys.exit()解释器结束,程序结束
# sys.modules 放了所有在解释器的导入的所有的模块
# sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
# 一个模块是否可以导入,都决定于sys.path所含的路径下
# sys.argv脚本执行
# 在执行python脚本的时候,可以传递一些参数进来
# os模块
# 与文件操作有关
# 多目录
# os.makedirs('dirname1/dirname2') 可生成多层递归目录
# os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
# 单目录
# os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname
# os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
# 单目录
# os.remove() 删除一个文件
# os.rename("oldname","newname") 重命名文件/目录
# 与路径有关
# os.path
# os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回
# os.path.dirname(path) 返回path的目录。退回一级返回 其实就是os.path.split(path)的第一个元素
# os.path.basename(path) 返回path最后的文件名。
# r取消所有的转义,一般加r
# print(r"\n ")
# 如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素
# os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False
# os.path.isabs(path) 如果path是绝对路径,返回True
# os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False
# os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False
# os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
# os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间
# os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间
# os.path.getsize(path) 返回path的大小
# re模块
# 正则表达式 字符串匹配相关的操作的时候用到的一种规则
# 正则表达式的规则 辅助软件http://tool.chinaz.com/regex/
# 使用python中的re模块操作正则
# 字符组 : [字符组]
# 在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示
# 字符分为很多类,比如数字、字母、标点等等。
# 假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
# 一个字符组只代表一个字符
# 元字符
#只能匹配单个字符
# 匹配内容
# . 匹配除换行符以外的任意字符
# \w 匹配字母或数字或下划线
# \s 匹配任意的空白符
# \d 匹配数字
# \n 匹配一个换行符
# \t 匹配一个制表符
# \b 匹配一个单词的结尾
# ^ 匹配字符串的开始
# $ 匹配字符串的结尾
# \W
# 匹配非字母或数字或下划线
# \D
# 匹配非数字
# \S
# 匹配非空白符 a| b
# 匹配字符a或字符b
# ()
# 匹配括号内的表达式,也表示一个组
# [...]
# 匹配字符组中的字符
# [ ^ ...]
# 匹配除了字符组中字符的所有字符
# 量词跟在元字符后面约束某个字符重复次数
# 正则表达式默认贪婪匹配,会在当前量词范围内匹配最多
# 用法说明
# * 重复零次或更多次
# + 重复一次或更多次
# ? 重复零次或一次
# {n} 重复n次
# {n,} 重复n次或更多次
# {n,m} 重复n到m次
# \d{1,6}+? ?跟在量词后表示最少匹配次数 惰性匹配
# .*? 非贪婪匹配 走到第一个就结束
# re模块
# import re#获得内存地址 找寻第一个符合条件的 如果匹配不上会返回None
# 不可以group()
# ret = re.search('a', 'eva egon yuan').group()
# print(ret)
# match 默认在正则条件前加''^''
# ret = re.match('a', 'abc').group() # 同search,不过尽在字符串开始处进行匹配
# print(ret)

猜你喜欢

转载自www.cnblogs.com/buyiyangyanhuo/p/9027845.html