码迷,mamicode.com
首页 > 其他好文 > 详细

five day --模块

时间:2018-05-07 22:51:44      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:地址   多次   建模   poi   整数   隐藏文件   none   aaa   长度   

常用模块(记忆力)
re模块
collections模块
时间模块
random模块 随机数、打乱顺序
os模块 操作系统
sys模块 python解释器相关的模块
引入:模块 py文件  是写好了,但不直接使用的功能
    内置模块:安装完python自带的
    扩展模块:jagal    爬虫、自动化测试、AI,数据挖掘等   https://pypi.org/网址有所有模块;或在论坛上查看
    自定义模块:自己写的模块

一、collections模块

collections:
    ordereddict 有序字典  重点!小例子
    counter计算出现的次数,无实际使用作用   了解即可
    defaultdict  默认这个字典的value是一个空列表  随便写key不报错  了解即可  小例子
    namedtuple 可命名元组   重要!!例子1. p=(x,y)  p.x  2.card  流畅的python!书籍
    deque 双端队列  不常用    insert  pop(n) 少写

  

技术分享图片
 1 # import collections
 2 # d = collections.OrderedDict()
 3 # print(d)
 4 #
 5 # d[电脑] = 10000
 6 # d[苹果] = 10
 7 # print(d)
 8 # for i in d:
 9 #     print(i,d[i])
10 # print(d[电脑])
collections.OrderedDict
技术分享图片
 1 # l= [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
 2 # my_dict = {}
 3 # for value in  l:
 4 #     if value>66:
 5 #         if my_dict.has_key(k1):
 6 #             my_dict[k1].append(value)
 7 #         else:
 8 #             my_dict[k1] = [value]
 9 #     else:
10 #         if my_dict.has_key(k2):
11 #             my_dict[k2].append(value)
12 #         else:
13 #             my_dict[k2] = [value]
14 # import time
15 # time.sleep()
16 # from time import sleep
17 # sleep()
18 
19 # from collections import defaultdict
20 # values = [11, 22, 33,44,55,66,77,88,99,90]
21 # my_dict = defaultdict(list)
22 # for value in  values:
23 #     if value>66:
24 #         my_dict[k1].append(value)
25 #     else:
26 #         my_dict[k2].append(value)
27 # 默认这个字典的value是一个空列表
28 # d = {}
29 # print(my_dict)
30 # my_dict[a].append(1)
31 # my_dict[b].append(2)
32 # my_dict[c] = 10
33 # print(my_dict)
defaultdict
技术分享图片
1 from collections import namedtuple
2 # Point = namedtuple(Point,[x,y])
3 # p = Point(1,2)
4 # print(p.x)
5 # print(p.y)
6 # Card = namedtuple(card,[rank,suit])
7 # c = Card(2,红心)
8 # print(c.rank,c.suit)
namedtuple
技术分享图片
 1 # from collections import deque
 2 # q = deque()
 3 # q.append(1)
 4 # q.append(2)
 5 # q.append(3)
 6 # q.append(3)
 7 # print(q)
 8 # print(q.pop())   
 9 # print(q)      
10 # q.appendleft(a)
11 # q.appendleft(b)
12 # q.appendleft(c)
13 # print(q)
14 # print(q.popleft())
15 # print(q.popleft())
16 
17 结果:
18 deque([1, 2, 3, 3])
19 3
20 deque([1, 2, 3])
21 deque([c, b, a, 1, 2, 3])
22 c
23 b
deque

二、time模块

时间模块:
    1.time.time()  时间戳时间 英国伦敦时间 1970 1 1 00:00:00
                                北京       1970 1 1 08:00:00
    2.格式化时间--用字符串表示的时间
    time.strftime(%Y-%m-%d  %H:%M:%S) 年月日时分秒   %x时间  %c日期+时间
    3.结构化时间--是时间戳(机器)转化成格式化时间(人)的桥梁
    time.localtime()    可类似于namedtuple取值   夏令时:调节时间,现在不用
    转化方式---图
    思考:1.能否拿到当前时间的月初1号的0点的时间戳时间            ?格式化-结构化-时间戳
        2.计算时间差--任意两个时间之间经历了多少年月日时分秒     ??
    datetime 同time

小结:时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

几种格式之间的转换

技术分享图片

技术分享图片
#时间戳-->结构化时间
#time.gmtime(时间戳)    #UTC时间,与英国伦敦当地时间一致
#time.localtime(时间戳) #当地时间。例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间 
>>>time.gmtime(1500000000)
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=14, tm_hour=2, tm_min=40, tm_sec=0, tm_wday=4, tm_yday=195, tm_isdst=0)
>>>time.localtime(1500000000)
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)

#结构化时间-->时间戳 
#time.mktime(结构化时间)
>>>time_tuple = time.localtime(1500000000)
>>>time.mktime(time_tuple)
1500000000.0
技术分享图片
技术分享图片
#结构化时间-->字符串时间
#time.strftime("格式定义","结构化时间")  结构化时间参数若不传,则现实当前时间
>>>time.strftime("%Y-%m-%d %X")
‘2017-07-24 14:55:36‘
>>>time.strftime("%Y-%m-%d",time.localtime(1500000000))
‘2017-07-14‘

#字符串时间-->结构化时间
#time.strptime(时间字符串,字符串对应格式)
>>>time.strptime("2017-03-16","%Y-%m-%d")
time.struct_time(tm_year=2017, tm_mon=3, tm_mday=16, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=75, tm_isdst=-1)
>>>time.strptime("07/24/2017","%m/%d/%Y")
time.struct_time(tm_year=2017, tm_mon=7, tm_mday=24, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=0, tm_yday=205, tm_isdst=-1)
技术分享图片

 

技术分享图片

技术分享图片
#结构化时间 --> %a %b %d %H:%M:%S %Y串
#time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串
>>>time.asctime(time.localtime(1500000000))
‘Fri Jul 14 10:40:00 2017‘
>>>time.asctime()
‘Mon Jul 24 15:18:33 2017‘

#时间戳 --> %a %d %d %H:%M:%S %Y串
#time.ctime(时间戳)  如果不传参数,直接返回当前时间的格式化串
>>>time.ctime()
‘Mon Jul 24 15:19:07 2017‘
>>>time.ctime(1500000000)
‘Fri Jul 14 10:40:00 2017‘ 
技术分享图片

 

三、random模块

random模块    随机数、打乱顺序
    1.使用情景:发红包    数学建模问题  ??自己考虑
    2.验证码:例子 数字 字母(65,90)A-Z (97-122)a-z  0-9数字
        某一位字母或数字也是随机 random.choice()  注意强转str  练习!!
技术分享图片
 1 # import random
 2 # s = ‘‘
 3 # for i in range(4):
 4 #     s += str(random.randint(0,9))
 5 # print(s)
 6 
 7 # 数字 字母
 8 # print(chr(98))   # (65,90)A (97,122)a
 9 # import random
10 # num = random.randint(65,90)
11 # print(chr(num))
12 # num = random.randint(97,122)
13 # print(chr(num))
14 
15 # 某一位 到底是一个字母 还是一个数字的事儿也是随机的
16 # import random
17 # id = ‘‘
18 # for i in range(6):
19 #     num = random.randint(65,90)
20 #     alpha1 = chr(num)
21 #     num = random.randint(97,122)
22 #     alpha2 = chr(num)
23 #     num3 = str(random.randint(0,9))
24 #     print(alpha1,alpha2,num3)
25 #     s = random.choice([alpha1,alpha2,num3])
26 #     id+=s
27 # print(id)
例子

 

四、sys模块

sys模块    python解释器相关的模块
    1.sys.path  重要!  作用:讲模块时详细讲
        一个模块是否能够被导入,全看在不在sys.path列表所包含的路径下
        模块名字不能乱起
    2.sys.argv 脚本执行   重要! 当前文件的文件路径
    在执行python脚本的时候,可以传递一些参数进来   在命令行执行可 多传参数 ![路径 ,user ,name]
    mysql输入例子
    3. sys.modules   了解  放了所有在解释器运行的过程中导入的模块名   作用:讲模块时讲
    4.sys.exit()  了解 解释器退出   程序结束
技术分享图片
 1 import sys  # python解释器
 2 # sys.exit()   # 解释器退出 程序结束
 3 # print(**10)    #**********
 4 # print(sys.path)
 5 # 一个模块是否能够被导入 全看在不在sys.path列表所包含的路径下
 6 # print(sys.modules)  # 放了所有在解释器运行的过程中导入的模块名
 7 
 8 # print(sys.argv)
 9 # if sys.argv[1] == alex and sys.argv[2] == alex3714:
10 #     print(可以执行下面的n行代码)
11 # else:
12 #     sys.exit()
13 # 在执行python脚本的时候,可以传递一些参数进来
14 # mysql username password
View Code

 

五、os模块

 1 os模块     操作系统   运维比较常用
 2     1.代码执行删除不可恢复,慎重使用
 3     2.分类:和文件相关    和工作目录相关 getcwd  表现操作系统差异的 os.pathsep 例子
 4     os.system  win gbk  pycharm utf-8  会有乱码  #exec 执行字符串中代码,无返回值  慎用
 5         加上.read()  不乱码
 6         os.system("bash command")  运行shell命令,直接显示
 7         os.popen("bash command).read()  运行shell命令,获取执行结果
 8     path系列
 9         r 转义  取消所有的转义符的转义
10         split===basename+dirname (目录)
11         os.path.join 路径的拼接  重要!
12         os.path.getsize(path) 返回path的大小 注: 文件大小的时候才有效 文件夹的大小4096
13             计算文件夹下所有文件的总大小:递归、堆栈思想    小例子 !面试题!!!

 

技术分享图片

技术分享图片
 1 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
 2 os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
 3 os.curdir  返回当前目录: (.)
 4 os.pardir  获取当前目录的父目录字符串名:(..)
 5 os.makedirs(dirname1/dirname2)    可生成多层递归目录
 6 os.removedirs(dirname1)    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
 7 os.mkdir(dirname)    生成单级目录;相当于shell中mkdir dirname
 8 os.rmdir(dirname)    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
 9 os.listdir(dirname)    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
10 os.remove()  删除一个文件
11 os.rename("oldname","newname")  重命名文件/目录
12 os.stat(path/filename)  获取文件/目录信息
13 os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
14 os.linesep    输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
15 os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:
16 os.name    输出字符串指示当前使用平台。win->nt; Linux->posix
17 os.system("bash command")  运行shell命令,直接显示
18 os.popen("bash command).read()  运行shell命令,获取执行结果
19 os.environ  获取系统环境变量
20 
21 
22 os.path
23 os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素 os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。
24                         即os.path.split(path)的第二个元素
25 os.path.exists(path)  如果path存在,返回True;如果path不存在,返回False
26 os.path.isabs(path)  如果path是绝对路径,返回True
27 os.path.isfile(path)  如果path是一个存在的文件,返回True。否则返回False
28 os.path.isdir(path)  如果path是一个存在的目录,则返回True。否则返回False
29 os.path.join(path1[, path2[, ...]])  将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
30 os.path.getatime(path)  返回path所指向的文件或者目录的最后访问时间
31 os.path.getmtime(path)  返回path所指向的文件或者目录的最后修改时间
32 os.path.getsize(path) 返回path的大小
33 ‘‘‘
View Code

 

六、re模块

 1 re模块 非常重要!!!
 2     1.引入:手机号码
 3     2.正则表达式:字符串匹配相关的操作的时候,用到的一种规则
 4         在线测试工具 http://tool.chinaz.com/regex/
 5         正则表达式规则
 6             字符组:一个字符组只代表一个字符  范围:一个范围段的是正序的
 7                 [0-9a-fA-F]   可以匹配数字,大小写形式的a~f,用来验证十六进制字符
 8             元字符:有一个表copy一下 ^ $非常重要  $字符串的最后 一个结果  | 匹配第一个就返回,不判断第二个
 9             量词:[1-9][0-9]{10}   一次,10次    *  +  ? {n}   {n,}   {n,m}
10                 特别原则:正则表达式中的所有量词,都会尽量多的为你匹配    解释:回溯算法
11                 例子:匹配整数和小数  \d+\.?\d*  1.\.转义  2.每一个元字符后都可以接量词
12         总结:。。。。
13         ?写在量词后面   惰性匹配
14             注:.*x  贪婪匹配 ,回溯算法    .*?x  惰性匹配,先检测?后的字符  就是取前面任意长度的字符,直到一个x出现
15         转义:测试工具写好后,加r16 
17         分组:匹配整数和小数  \d+(\.\d+)?   1  2.2
18             身份证号:最后两个写法正确      书籍:正则指引
19         常用方法:。。
20             re.search()   与findall 匹配所有例子  内存地址 group
21                 search找第一个
22                 返回的值不是一个直接的结果,而是一个内存地址,需要使用.group()取值
23                 如果匹配不上,返回None,,就不能group了 if ret:print(ret.group())
24             match   在search基础上 给每一条正则都加上了一个^25             。。
26             最后两个 了解即可
27             注意:1.加?:  2.find不常用   看四个练习题
28 
29         正则表达式本身也和python没有什么关系,就是匹配字符串内容的一种规则。
30         使用python中的re模块去操作正则表达式
# 元字符 对一个字符的匹配创建的一些规则
# 这些规则是在正则表达式中有着特殊意义的符号
# 如果要匹配的字符刚好是和元字符一模一样 那么需要对这个元字符进行转义

# 量词 量词跟在一个元字符的后面 约束某个字符的规则能够重复多少次

# 正则表达式默认 贪婪匹配 会在当前量词约束的范围内匹配最多的次数

字符:

 
元字符
 
匹配内容
匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\n 匹配一个换行符
\t 匹配一个制表符
\b 匹配一个单词的结尾
^ 匹配字符串的开始
$ 匹配字符串的结尾
\W
匹配非字母或数字或下划线
\D
匹配非数字
\S
匹配非空白符
a|b
匹配字符a或字符b
()
匹配括号内的表达式,也表示一个组
[...]
匹配字符组中的字符
[^...]
匹配除了字符组中字符的所有字符

 

量词:

量词
用法说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次

five day --模块

标签:地址   多次   建模   poi   整数   隐藏文件   none   aaa   长度   

原文地址:https://www.cnblogs.com/lijie123/p/9005060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!