zoukankan      html  css  js  c++  java
  • 第十九天模块调用的讲解:

    1.怎么在re模块中使用search给要输出的内容进行命名:(?p<name>正则表达式)

    import re
    ret=re.search('d(?P<name>w+)','1jdkfjjdfkjjfdj')
    print(ret.group('name'))
    结果为
    jdkfjjdfkjjfdj
    View Code

    2.可以利用分组中的的形式给分组进行起名字:(?P<name>)

    import re
    ret=re.search('<(?P<tag_name>w+)>w+</(?P=tag_name)>','<h1>hello</h11>')
    print(ret.group('tag_name'))#如果前后的tag_name不一致则会报错
    print(ret.group())
    结果为
      File "D:/python练习程序/第十七天/第十九天.py", line 10, in <module>
        print(ret.group('tag_name'))
    AttributeError: 'NoneType' object has no attribute 'group'
    
    
    import re
    ret=re.search('<(?P<tag_name>w+)>w+</(?P=tag_name)>','<h1>hello</h1>')
    print(ret.group('tag_name'))#如果前后的tag_name不一致则会报错
    print(ret.group())
    结果为
    h1
    <h1>hello</h1>
    View Code

    3.如果不给分组中起名字也可以通过序号来找到对应的组:

    import re
    ret = re.search(r"<(w+)>w+</1>","<h1>hello</h1>")
    print(ret.group(1))
    print(ret.group())
    结果为
    h1
    <h1>hello</h1>
    View Code

    4.寻找计算字符串中的整数:

    import  re
    ret=re.findall(r'd+.d+|(d+)','1-2*(60+(-40.35/5)-(-4*3))')
    print(ret)
    ret.remove('')
    print(ret)
    结果为
    ['1', '2', '60', '', '5', '4', '3']
    ['1', '2', '60', '5', '4', '3']
    View Code

    5.如果要把数字里的符号带着:

    import  re
    ret=re.findall(r'-?d+.d+|(-?d+)','1-2*(60+(-40.35/5)-(-4*3))')
    print(ret)
    ret.remove('')
    print(ret)
    结果为
    ['1', '-2', '60', '', '5', '-4', '3']
    ['1', '-2', '60', '5', '-4', '3']
    View Code

    6.flag的许多用法:

     7.匹配一段文本中的每行的邮箱:

    import re
    ret=re.findall(r'(?P<email>w+://w+.w+.w*?/)','http://blog.csdn.net/make164444332/artciel/5444')
    print(ret)
    结果为
    ['http://blog.csdn.net/']
    View Code

    8.正则表达式的一些题目

     9.模块的讲解:collections 、random、序列化、os、时间模块、

    10.1collectios模块:python中的扩展数据类型:

      10.1namedtuple :生成的名字可以访问元素的tuple

    from collections import namedtuple
    Point=namedtuple('point',['x','y','z'])
    p1=Point(1,3,5)
    p2=Point(2,3,6)
    print(p1)
    print(p1.x)
    print(p2.z)
    结果为
    point(x=1, y=3, z=5)
    1
    6
    View Code

      10.2deque:双端队列,可以快速的从另外一端追加和推出对象:使用列表进行数据存储时如果按照索引进行元素访问时,就会很快,但是插入和删除元素就会很慢,因为list时线

    性存储而队列是链性存储

        10.21队列:满足先进先出的原则:FIFO

    import queue
    q=queue.Queue()
    q.put([1,3,5])
    q.put(3)
    q.put((1,4))
    print(q.get())
    print(q.get())
    print(q.get())
    print(q.get())#当值取完之后在操作不会报错会进行堵塞不会进行接下来的操作
    q.put(3)
    print(q.get())
    结果为
    [1, 3, 5]
    3
    (1, 4)
    View Code

        10.22双端队列指的是数据既可以从前面、后面或者插入的方式进行数据的放入和读取:

    from collections import deque
    dq=deque([1,3])
    dq.append('a')#在队列的最后添加元素
    dq.appendleft('b')#在队列的最前面添加元素
    dq.insert(3,4)#在队列的最4个位置添加元素
    print(dq)
    print(dq.pop())#取出最后一个元素
    print(dq.popleft())#取出第一个元素
    结果为
    deque(['b', 1, 3, 4, 'a'])
    a
    b
    View Code

      10.3有序字典:就是按照key的顺序进行输出:常用于购物车或者一些有序的场景下,但是有序字典比无序字典占的内存大:

    from collections import  OrderedDict
    od=OrderedDict([('a',1),('b',4),('c',5)])
    for i in od:
        print(i)
    结果为
    a
    b
    c
    View Code

      10.4带默认值的字典:

    from collections import  defaultdict
    d=defaultdict(lambda:5)#必须是一个callable类型
    print(d['k'])
    结果为
    5
    View Code
    from collections import defaultdict
    values=[11,33,55,66,77,99,134,43]
    my_dict=defaultdict(list)
    for value in values:
        if value>66:
            my_dict['k1'].append(value)
        else:
            my_dict['k2'].append(value)
    print(my_dict)
    结果为
    defaultdict(<class 'list'>, {'k2': [11, 33, 55, 66, 43], 'k1': [77, 99, 134]})
    View Code

    11.time模块:

    在python中又三种方式来表示时间分别是时间戳、元组(strct_time)、格式化字符串

      11.1时间戳(struct_stamp):通常来说,时间戳就是从1970年1月1号开始·计算时间的偏移量,类型是浮点型(float)

    import time
    ret=time.time()
    print(ret)
    结果为
    1582203205.305226
    View Code

      11.2格式化的·时间字符串:formatstirng

    import time
    print(time.strftime('%Y-%m-%d %H:%M:%S'))#year month day hour minute second
    结果为
    2020-02-20 20:56:56
    View Code

      11.3元组(struct_time)里面共有9个元素(年月日时分秒一年中第几周,一年中第几天)

     

    import time
    struct_time=time.localtime()
    print(struct_time)
    print(struct_time.tm_yday)
    结果为
    time.struct_time(tm_year=2020, tm_mon=2, tm_mday=20, tm_hour=21, tm_min=4, tm_sec=1, tm_wday=3, tm_yday=51, tm_isdst=0)
    51
    View Code

     11.4 3种格式的转换:

         11.31时间戳和结构化时间的转换:

    import time
    t=time.time()
    print(t)
    print(time.localtime(t))
    结果为
    1582204284.5429978
    time.struct_time(tm_year=2020, tm_mon=2, tm_mday=20, tm_hour=21, tm_min=11, tm_sec=24, tm_wday=3, tm_yday=51, tm_isdst=0)
    View Code
    import time
    t=time.localtime()
    print(t)
    print(time.mktime(t))
    结果为
    time.struct_time(tm_year=2020, tm_mon=2, tm_mday=20, tm_hour=21, tm_min=13, tm_sec=24, tm_wday=3, tm_yday=51, tm_isdst=0)
    1582204404.0
    View Code

      11.34时间格式化和时间结构化之间的转换:

    import time
    ret=time.strftime('%Y-%m-%d %H:%M:%S')
    print(time.strptime(ret,'%Y-%m-%d %H:%M:%S'))
    结果为
    time.struct_time(tm_year=2020, tm_mon=2, tm_mday=20, tm_hour=21, tm_min=24, tm_sec=14, tm_wday=3, tm_yday=51, tm_isdst=-1)
    View Code
    print(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime()))
    结果为
    2020-02-20 21:25:41
    View Code

       11.35

    import time
    t=time.time()
    print(time.localtime(t))
    print(time.ctime(t))
    结果为
    time.struct_time(tm_year=2020, tm_mon=2, tm_mday=21, tm_hour=8, tm_min=58, tm_sec=6, tm_wday=4, tm_yday=52, tm_isdst=0)
    Fri Feb 21 08:58:06 2020
    View Code

    12random模块:

      12.1随机整数模块:raindint

    import random
    ret=random.randint(1,5)#大于等于1小于等于5之间的数
    print(ret)
    ret=random.randint(1,5)
    print(ret)
    结果为
    3
    4
    View Code

      12.2随机的范围randrange

    import random
    ret=random.randrange(1,12,2)#大于等于1小于等于5之间的数
    print(ret)
    
    
    结果为
    3
    View Code

      12.3随机选则一个返回:

    import random
    ret=random.choice((1,12,['fjkj'],23))#里面可以是元组和列表
    print(ret)
    结果为
    ['fjkj']
    View Code   

      12.4随机多个值进行返回,返回的个数又第二个参数确定:

    import random
    ret=random.sample((1,12,['fjkj'],1,344,'fff',555,23),2)#里面可以是元组和列表
    print(ret)#以列表的形式返回
    结果为
    [555, 23]
    View Code

      12.5打乱顺序

    import random
    item=[1,3,5,7,9]
    random.shuffle(item)
    print(item)
    结果为
    [9, 1, 3, 7, 5]
    View Code

    13.os操作:和操作系统相关:

      13.1获取文件的当前文件目录:getcwd

    import os
    print(os.getcwd())
    结果为
    D:python练习程序第十七天
    View Code

       13.2改变脚本当前的目录:chdir

    # print(ret)
    import os
    os.chdir('D:python练习程序')
    print(os.getcwd())
    结果为
    D:python练习程序
    View Code

      133返回当前的目录:os.curdir

    import os
    print(os.curdir)
    print(os.getcwd())
    结果为
    .
    D:python练习程序第十七天
    View Code

      13.4返回上一层目录:pardir

    import os
    ret=os.pardir
    print(ret)
    print(os.getcwd())
    结果为
    ..
    D:python练习程序第十七天
    View Code

      13.5可以生成多层递归目录:

    import os
    os.makedirs('dirmake1/dirmake2')
    print(os.getcwd())
    结果为
    你可以在文件栏看到新创建的文件如果新创建的文件存在则会报错
    View Code
    import os
    os.removedirs('dirmake1/dirmake2')#会进行递归删除文件知道文件不为空才停止
    View Code

      13.6生成单极目录:mkdir

    import os
    os.mkdir('dirmake1')#生成单层目录
    结果为
    View Code

      13.7删除单层目录:rmdir

    import os
    os.rmdir('dirmake1')#删除单层目录
    View Code

      13.8列出指定目录下的所有文件和子目录:

    import os
    ret=os.listdir('D:/')#删除单层目录
    print(ret)
    结果为
    ['$RECYCLE.BIN', '-VISO', '1223', '4', '66', 'a72b0ed27408eb954ae4ad848795504e26b34ea2.pdf', 'addd', 'BaiduNetdiskDownload', 'cad', 'caj', 'Config.Msi', 'dd', 'dnf', 'DNF1', 'Dosame', 'gxworks2', 'HLMJ', 'idm下载', 'matalab', 'matytype', 'MSOCache', 'notepad', 'pagefile.sys', 'Program Files (x86)', 'PSAutoRecover', 'ps软件', 'pycharm5.0.3', 'python', 'python 程序', 'python11', 'python3.5', 'python练习程序', 'pyton视频', 'QLDownload', 'QLDownloadGame', 'QQ', 'QQLive', 'qq文件', 'qq游戏', 'start', 'System Volume Information', 'test1.txt', 'test2.docx', 'test2.txt', 'test3.txt', 'test4.txt', 'test6,txt', 'test6.txt', 'test7.txt', 'tgp', 'ThunderX_28775', 'tuppy', 'untitled', 'u盘东西', 'viso保存', 'viso图形包', 'winr', 'word保存文件', 'Youku Files', '下载', '中国机长.ts', '优秀软件', '优酷截屏文件', '优酷文件下载', '冰点文库下载器', '图库资源', '好听歌曲下载', '好的软件', '思维导图', '搞笑.ts', '新建文件夹', '新建文件夹 (2)', '欧阳孟可.doc', '歌曲下载', '爱奇艺', '电影', '电视', '百度云', '知乎', '神奇脑波', '腾讯视频缓存', '英语6级', '蛋蛋VIP视频全网解析_5.ts', '街机游戏', '视频录制', '解密软件', '资料', '迅雷', '酷我下载', '酷我缓存', '金山打字法', '金山打字法.exe', '镇魂街.txt', '镇魂街1.txt', '麻将', '鼠标驱动']
    View Code

      13.8给文件重新命名;rename

    import os
    ret=os.rename('file','file.bak')#前面是旧的,后面是新的
    print(ret)
    View Code

      13.9os.path

    import os.path
    ret=os.getcwd()
    print(os.path.abspath('第十九天.py'))
    print(os.path.split(ret))
    结果为
    D:python练习程序第十七天第十九天.py
    ('D:\python练习程序', '第十七天')
    View Code

      13.10判断是否是相对路径:

    import os.path
    ret=os.getcwd()
    ret1=os.path.abspath('第十九天.py')
    print(os.path.isabs(ret1))
    结果为
    True
    View Code

      13.11判断文件是否为文件夹:

    import os
    ret=os.getcwd()
    ret1=os.path.abspath('第十九天.py')
    print(os.path.isdir('c1'))
    结果为
    True
    View Code

      13.12将多个路径进行组合后返回:

    import os
    ret=os.getcwd()
    print(os.path.getsize('file1'))
    结果为
    41
    View Code
    import os
    ret=os.getcwd()
    print(ret)
    ret1=os.path.join('D:','python练习程序','第十七天','file1')
    print(ret1)
    结果为
    D:python练习程序第十七天
    D:python练习程序第十七天file1
    View Code

       13.13文件的目录读取:

    import os
    ret=os.popen('dir').read()
    print(ret)
    结果是
    2020/02/21  18:44    <DIR>          .
    2020/02/21  18:44    <DIR>          ..
    2020/02/21  18:43    <DIR>          .idea
    2020/02/21  11:36    <DIR>          c1
    2020/02/18  19:14               369 file.bak
    2020/02/21  11:42                41 file1
    2020/02/18  20:59                 0 file1.txt
    2020/02/18  19:17           169,579 websize
    2020/02/21  13:07             4,254 作业.py
    View Code

    14.sys操作:

      14.1电脑版本的判别:

    import sys
    print(sys.platform)
    结果为
    win32
    View Code

      14.2判断·python的型号:

    import sys
    print(sys.version)
    结果为
    3.6.3 |Anaconda, Inc.| (default, Oct 15 2017, 03:27:45) [MSC v.1900 64 bit (AMD64)]
    View Code

      14.3返回文件的搜索路径,初始化时使用pythonpath的环境变量的值:

    import sys
    print(sys.path)
    结果为
    ['D:\python练习程序\第十七天', 'D:\python练习程序\第十七天', 'C:\pycharm\python36.zip', 'C:\pycharm\DLLs', 'C:\pycharm\lib', 'C:\pycharm', 'C:\pycharm\lib\site-packages', 'C:\pycharm\lib\site-packages\Babel-2.5.0-py3.6.egg', 'C:\pycharm\lib\site-packages\win32', 'C:\pycharm\lib\site-packages\win32\lib', 'C:\pycharm\lib\site-packages\Pythonwin']
    View Code

      14.4可以在命令框进行操作:argv

  • 相关阅读:
    安装补丁“此更新不适用于你的计算机”解决办法
    spanning-tree portfast什么意思?
    Win10离线安装.NET Framework 3.5的方法
    逐帧轮播图效果实现
    纯css实现同一页面下选择之后更换内容效果
    纯html+css中实现静态选座位效果技巧(input+label使用小技巧)
    js中实现杨辉三角
    用css实现html中单选框样式改变
    下划线hover下动态出现技巧
    CSS样式整理
  • 原文地址:https://www.cnblogs.com/ab461087603/p/12337560.html
Copyright © 2011-2022 走看看