• 常用标准库


    1、常用标准库
      builtins        | 内建函数默认加载     
      math            | 数学库              
      random          | 生成随机数           
      time            | 时间                 
      datetime        | 日期和时间           
      calendar        | 日历                 
      hashlib         | 加密算法             
      copy            | 拷贝                
      functools       | 常用的工具       reduece()   wraps()     
      os              | 操作系统接口     与文件相关的    
      re              | 字符串正则匹配       
      sys             | Python自身的运行环境  解释器相关的变量或函数名
      multiprocessing | 多进程               
      threading       | 多线程               
      json            | 编码和解码 JSON 对象 
      logging         | 记录日志,调试       
    
    2、re模块 (regular expression)
    import re
    
    	obj = re.match(pattern,string,flags)   
    	#pattern是正则规则,string是要匹配的字符串,flasgs是一些参数,如忽略大小写等。 
    	match()     从头开始匹配,匹配不成功返回None,obj.group()是匹配的内容,obj.span()是匹配	  内容的位置,obj.start() 匹配内容的开始下标
    	fullmatch() 从头到尾,整个字符串都跟pattern进行匹配,匹配不成功返回None,
    	search()  扫描整个字符串查找匹配正则格式的内容,找到返回match对象,可以调用.group()
    	findall()   查找所有匹配的内容,返回值是一个列表,列表元素是匹配内容
    	
    	
    
    	
    
    import re
    # 通过re模块的compile函数,返回一个pattern对象
    pattern = re.compile('abc')
    # 通过pattern对象进行 match search  findall  split ...
    match_obj = pattern.match('abcdef')
    print(match_obj)  # 匹配对象
    # 匹配对象调用group获取匹配的内容
    g = match_obj.group()
    print(g)
    
    match_obj = re.fullmatch('abc', 'xyzABCdef', re.I)
    print(match_obj)
    
    match_obj = re.search('abc', 'xyzABCdef', re.I)
    print(match_obj)
    print(match_obj.group())  # 匹配的内容
    print(match_obj.span())   # 匹配内容的位置
    print(match_obj.start())
    
    s=' i am a boy'
    s = re.sub(r's+','#',s) #空白用#替换 #i#am#a#good#boy#
    
    
    
    s = 'xiaohua=20 xiaoming=21 xiaohong=19'
    def change(mobj):
        content = mobj.group()
        result = str(int(content) + 1)
        return result
    
    s = re.sub(r'd+', change, s)
    print(s)    #xiaohua=21 xiaoming=22 xiaohong=20
    
    s = 'hello25hi8kitty980world'
    result = re.split(r'd+',s)
    print(result)  # ['hello', 'hi', 'kitty', 'world']
    
    
    字符    功能
    .       匹配任意1个字符(除了
    )
    []      匹配[]中列举的字符
    d      匹配数字,也就是0-9
    D      匹配非数字,也就是匹配不是数字的字符
    s      匹配空白符,也就是 空格	ab
    S      匹配非空白符,s取反
    w      a-z, A-Z, 0-9, _
    W      w取反
    	匹配边界字符
    已知一句话: 'I am a good boy , a handsome boy',提取这句话中的所有单词
    s = 'I am a good boy , a handsome boy'
    words = re.findall(r'[a-z]+', s, re.I)
    print(words)
    
    表示数量的规则# 已知一句话: 'I am a good boy , a handsome boy',提取这句话中的所有单词
    s = 'I am a good boy , a handsome boy'
    words = re.findall(r'[a-z]+', s, re.I)
    print(words)
    *       可有可无
    +       最少一次
    ?      	0 或 1
    {m}     匹配前一个字符出现m次
    {m,}    匹配前一个字符至少出现m次
    {m,n}   匹配前一个字符出现m到n次
    
    分组操作 () 表示的是一组  |  或者关系
    s = 'hi linda'
    m_obj = re.search('(hi|hello) (Jack|Tom|Lucy|Linda)', s, re.I)  #
    print(m_obj.group()) #hi linda
    print(m_obj.group(1)) #hi
    print(m_obj.group(2))  #linda
    
  • 相关阅读:
    2016huasacm暑假集训训练四 递推_A
    2016huasacm暑假集训训练三 G
    2016huasacm暑假集训训练三 F
    今年暑假不AC
    Who's in the Middle
    The Suspects
    食物链
    抓牛问题
    士兵队列训练问题
    H
  • 原文地址:https://www.cnblogs.com/-min/p/12833250.html
Copyright © 2020-2023  润新知