zoukankan      html  css  js  c++  java
  • day19模块

    # 正则表达式
    # 字符组 [字符]
    # 元字符
    # w d s
    # W D S
    # . 除了换行符以外的任意字符
    #
    # 
    # ^ $ 匹配字符串的开始和结束
    # () 分组 是对多个字符组整体量词约束的时候用的
    #re模块:分组是有优先的
    # findall
    # split
    # | 从左到右匹配,只要匹配上就不继续匹配了。所以应该把长的放前面
    # [^] 除了字符组内的其他都匹配
    # 量词
    # * 0~
    # + 1~
    # ? 0~1
    # {n} n
    # {n,} n~
    # {n,m} n~m

    # 转义的问题
    # import re
    # re.findall(r'\s',r's')

    # 惰性匹配
    # 量词后面加问号
    # .*?abc 一直取遇到abc就停

    # re模块
    # import re
    # re.findall('d','awir17948jsdc',re.S)
    # 返回值:列表 列表中是所有匹配到的项

    # ret = search('d(w)+','awir17948jsdc')
    # ret = search('d(?P<name>w)+','awir17948jsdc')
    # 找整个字符串,遇到匹配上的就返回,遇不到就None
    # 如果有返回值ret.group()就可以取到值
    # 取分组中的内容 : ret.group(1) / ret.group('name')

    # match
    # 从头开始匹配,匹配上了就返回,匹配不上就是None
    # 如果匹配上了 .group取值

    # 分割 split
    # 替换 sub 和 subn
    # finditer 返回迭代器
    # compile 编译 :正则表达式很长且要多次使用

    import re

    # ret = re.search("<(?P<tag_name>w+)>w+</(?P=tag_name)>","<h1>hello</h1>")
    # #还可以在分组中利用?<name>的形式给分组起名字
    # #获取的匹配结果可以直接用group('名字')拿到对应的值
    # print(ret.group('tag_name')) #结果 :h1
    # print(ret.group()) #结果 :<h1>hello</h1>

    # ret = re.search(r"<(w+)>w+</1>","<h1>hello</h1>")
    # #如果不给组起名字,也可以用序号来找到对应的组,表示要找的内容和前面的组内容一致
    # #获取的匹配结果可以直接用group(序号)拿到对应的值
    # print(ret.group(1))
    # print(ret.group()) #结果 :<h1>hello</h1>

    import re

    # ret=re.findall(r"d+.d+|(d+)","1-2*(60+(-40.35/5)-(-4*3))")
    # print(ret) #['1', '2', '60', '40', '35', '5', '4', '3']
    # ret.remove('')
    # print(ret)
    # ret=re.findall(r"-?d+.d*|(-?d+)","1-2*(60+(-40.35/5)-(-4*3))")
    # print(ret) #['1', '-2', '60', '', '5', '-4', '3']
    # ret.remove("")
    # print(ret) #['1', '-2', '60', '5', '-4', '3']

    # 首先得到一个字符串
    # 去空格
    # 没有空格的字符串
    # 先算最里层括号里的 : 找括号 ,且括号里没有其他括号
    # 得到了一个没有括号的表达式 :只有加减乘除 从左到右先找到第一个乘除法 —— 重复
    # 所有的乘除法都做完了
    # 计算加减 —— 加减法
    # 只有一个数了 就可以结束了

    #列表、元祖
    #字典
    #集合、frozenset
    #字符串
    #堆栈 : 先进后出
    #队列 :先进先出 FIFO

    # from collections import namedtuple
    # Point = namedtuple('point',['x','y','z'])
    # p1 = Point(1,2,3)
    # p2 = Point(3,2,1)
    # print(p1.x)
    # print(p1.y)
    # print(p1,p2)

    #花色和数字
    # Card = namedtuple('card',['suits','number'])
    # c1 = Card('红桃',2)
    # print(c1)
    # print(c1.number)
    # print(c1.suits)

    #队列
    # import queue
    # q = queue.Queue()
    # q.put([1,2,3])
    # q.put(5)
    # q.put(6)
    # print(q)
    # print(q.get())
    # print(q.get())
    # print(q.get())
    # print(q.get()) # 阻塞
    # print(q.qsize())

    # from collections import deque
    # dq = deque([1,2])
    # dq.append('a') # 从后面放数据 [1,2,'a']
    # dq.appendleft('b') # 从前面放数据 ['b',1,2,'a']
    # dq.insert(2,3) #['b',1,3,2,'a']
    # print(dq.pop()) # 从后面取数据
    # print(dq.pop()) # 从后面取数据
    # print(dq.popleft()) # 从前面取数据
    # print(dq)

    #有序字典
    # from collections import OrderedDict
    # od = OrderedDict([('a', 1), ('b', 2), ('c', 3)])
    # print(od) # OrderedDict的Key是有序的
    # print(od['a'])
    # for k in od:
    # print(k)

    # from collections import defaultdict
    # d = defaultdict(lambda : 5)
    # print(d['k'])

    #计算时间差
    import time
    true_time = time.mktime(time.strptime('2019-06-11 09:30:00','%Y-%m-%d %H:%M:%S'))
    now_time = time.mktime(time.strptime('2019-06-12 12:00:00','%Y-%m-%d %H:%M:%S'))
    print(true_time,now_time)
    dif_time = now_time - true_time
    struct_time = time.gmtime(dif_time)
    stf_time = time.strftime('%Y-%m-%d %H:%M:%S',struct_time)
    print(stf_time)
    print('过去了%d年%d月%d天%d小时%d分钟%d秒'%(struct_time.tm_year-1970,struct_time.tm_mon-1,
    struct_time.tm_mday-1,struct_time.tm_hour,
    struct_time.tm_min,struct_time.tm_sec))
    #生成随机验证码
    import time,random
    def choice():
    code = ''
    for i in range(5):
    R = random.randint(0,9)
    S = chr(random.randint(65,90))
    add = random.choice([R,S])
    code = "".join([code,str(add)])
    return code
    print(choice())


    import os
    # print(os.getcwd())
    # os.chdir(r'C:UsersAdministratorPycharmProjects')
    # print(os.getcwd())

    # os.chdir('..')
    # print(os.getcwd())
    # os.makedirs('dirname1/dirname2')
    # os.removedirs('dirname1/dirname2')

    # os.mkdir('dirname1/dirname')

    # print(os.listdir(r'C:/Users/Administrator/PycharmProjects/s9'))

    # print(os.stat('1.复习.py'))

    # print(os.sep) # python代码跨平台 :linux windows
    # /user/bin/

    # os.system("dir")
    # ret = os.popen("dir").read()
    # print(ret)

    # print(os.environ)

    # print(os.getcwd())
    # print(os.path.split(os.getcwd()))

    # print(os.path.join(r'C:UsersAdministrator','user','local'))
    # print(os.getcwd())
    # print(os.path.getsize(os.path.join(os.getcwd(),'1.复习.py')))

    import sys
    # print(sys.platform)
    # print(sys.version)


    # print(sys.path.clear())


    ret = sys.argv
    name = ret[1]
    pwd = ret[2]
    if name == 'alex' and pwd == 'alex3714':
    print('登陆成功')
    else:
    print("错误的用户名和密码")
    sys.exit()
    print('你可以使用计算器了')



  • 相关阅读:
    docker在Linux环境下的安装
    docker在Windows环境下的安装
    tcpdump和windump
    Centos7下安装Elasticsearch 5.6.6
    使用concurrent.futures模块并发,实现进程池、线程池
    Nginx配置Gzip
    linux常用命令
    Linux下文档与目录结构
    快速读取大文件的几种方式
    linux 将大文件分解为多个小文件
  • 原文地址:https://www.cnblogs.com/Murraya/p/11026464.html
Copyright © 2011-2022 走看看