• 【python】


    1、re.match 和 re.search

    re.match(pattern, string)
    从string的起始位置按pattern匹配
    re.search(pattern, string)
    匹配整个字符串
    re.findall
    re.sub

    2、.lstrip 和 .rstrip

    .lstrip
    .rstrip
    .strip

    >>> import re
    >>> b = '10010000001010000'
    >>> r = re.search('1(.*?)1', b)
    >>> print(r.group())
    1001
    >>> str = '  2 3    45      '
    >>> print(str)
      2 3    45
    >>> print(str.lstrip())  # 删除左边的空格
    2 3    45
    >>> print(str.rstrip())  # 删除右边的空格
      2 3    45
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    3、dict.update 和 dict.get

    dict.update
    dict.get

    >>> dic = {'name': '李白',}
    >>> print(dic['name'])
    李白
    >>> print(dic.get("name"))
    李白
    >>> print(dic['stu'])
    Traceback (most recent call last):
      File "", line 1, in <module>
    KeyError: 'stu'
    >>> print(dic.get('stu'))
    None
    >>> print(dic.get('stu', 'myr'))
    myr
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    4、.* 和 .*?

    .* 贪婪匹配
    .*? 最小匹配

    # re.search  .*
    >>> import re
    >>> b = '10010000001010000'
    >>> r = re.search('1(.*)1', b)
    >>> print(r)
    <re.Match object; span=(0, 13), match='1001000000101'>
    >>> print(r.group())
    1001000000101
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    # re.search  .*?
    >>> import re
    >>> b = '10010000001010000'
    >>> r = re.search('1(.*?)1', b)
    >>> print(r.group())
    >>> 1001
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    5、selenium八大定位方式

    selenium八大定位方式
    find_element(By.ID,“id”)
    find_element(By.CLASS_NAME,“classname”)
    find_element(By.CSS,“#id”)
    find_element(By.XPATH,“//div[@name=‘csdn’]”)
    find_element(By.LINK_TEXT,“text”)
    find_element(By.PARTIAL_LINK,“partialtext”)
    find_element(By.NAME,“name”)
    find_element(By.TAG_NAME,“input”)

    get_attribute(‘class’, xxxx)

    6、cmd下执行ping命令

    cmd ping ip, true false
    subprocess.run()

    7、python文件转为.exe文件

    (1)生成.exe文件
    windows powershell中执行 pyinstaller -F -w clean_log.py
    -F: 只生成一个.exe文件
    -w:执行时不弹窗
    clean_log.py为待转为.exe的python文件
    (2)创建定时任务
    cmd下执行taskschd.msc——任务计划程序库——创建基本任务——设置自动运行时间
    (3)执行
    1)每天自动运行
    2)双击.exe文件手动运行

    8、join append

    join

    >>> print(a.join('1234'))
    1abcde2abcde3abcde4
    >>> print(a.join(['1','2','3','4']))
    1abcde2abcde3abcde4
    
    • 1
    • 2
    • 3
    • 4
    >>> i = 'abc'
    >>> j = '123'
    >>> i.join(j)
    '1abc2abc3'
    >>> k = ['1', '2', '3']
    >>> i.join(k)
    '1abc2abc3'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    append

    >>> a = ['1', '2']
    >>> print(a.append(['1']))
    None
    >>> print(a)
    ['1', '2', ['1']]
    
    • 1
    • 2
    • 3
    • 4
    • 5

    9、深拷贝、浅拷贝、赋值

    (1)赋值

    list1 = [1, 2, 3]
    list2 = list1
    print(id(list1))
    print(id(list2))
    list2.remove(3)
    print(list1)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    输出:

    2039818539968
    2039818539968
    [1, 2]
    
    • 1
    • 2
    • 3

    直接赋值,拷贝的是内存地址,相当于起别名。
    list1和list2指向同一个内存空间。

    (2)浅拷贝

    list1 = [1, 2, 3, ['a', 'b', 'c']]
    list2 = list1.copy()  # 浅拷贝
    print(id(list1))
    print(id(list2))
    del list1[3][0]
    print(list1)
    print(list2)
    del list1[0]
    print(list1)
    print(list2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    输出:

    2021744034624
    2021744034816
    [1, 2, 3, ['b', 'c']]
    [1, 2, 3, ['b', 'c']]
    [2, 3, ['b', 'c']]
    [1, 2, 3, ['b', 'c']]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    list1浅拷贝为list2后,会另开辟一段内存空间存储list2。
    一级目录深拷贝(list2的值不随list1变),二级目录浅拷贝(list1变,list2则变)。
    具体来说,list1 = [1, 2, 3, [‘a’, ‘b’, ‘c’]],list1删除1,2,3时,list2不会变,list1删除 [‘a’, ‘b’, ‘c’]中的’a’或’b’或’c’时,list2会变。
    操作list1时,list2的现象也一样。
    (3)深拷贝
    list1深拷贝为list2后,无论list1如何变,list2都不变。

  • 相关阅读:
    LabVIEW设计程序框图
    【java技术路线】1.1 java语言环境与基本数据类型
    【Spring】@RequestBody的实现原理
    ModStartCMS v5.3.0 任务调度记录,模块市场优化
    FPGA - 7系列 FPGA SelectIO -08- 高级逻辑资源之OSERDESE2
    2.7 Time Series
    Flutter Web 在《一起漫部》的性能优化探索与实践
    数据中台、BI业务访谈(二):组织架构梳理的坑
    智慧工地安全管理大屏UX/UI设计的触控感——从交互体验角度的产品思考
    Python的asyncio到底在做什么?
  • 原文地址:https://blog.csdn.net/weixin_43442758/article/details/133323287