Python技术分享

深入浅出学习Python

线程简介

  • 在一个进程中,若想做多个子任务,我们把这些子任务称为线程。
  • 线程可以理解为轻量级的进程。
  • 进程之间的数据是独立的,而一个进程下的线程数据是共享的。
  • 线程是CPU分配的最小单位。 进程和线程的调度都是操作系统的事。
  • 一个进程默认有一个线程,我们称为主线程。
阅读全文 »

进程简介

  • 进程(任务)
    • 在计算机中,其实进程就是一个任务。
    • 在操作系统中,进程是程序执行和资源分配的基本单元。
  • 单核CPU实现多任务
    • 只是将CPU的时间快速的切换和分配到不同的任务上。
    • 主频足够高,切换足够快,人的肉眼无法分辨而已。
  • 多核CPU实现多任务
    • 如果任务的数量不超过CPU的核心数,完全可以实现一个核心只做一个任务。
    • 在操作系统中几乎是可能的,任务的数量往往远远大于核心数。
    • 同样的采用轮询的方式,轮流执行不同的任务,只是做任务的“人”有多个而已。
阅读全文 »

转义字符

  • 在 Python 的正则表达式中,转义字符用来表示那些在字符串中有特殊意义的字符。如果你想要匹配这些字符本身,而不是它们在正则表达式中的特殊功能,你需要在它们前面加上反斜杠(\)来进行转义。
  • 当你使用 Python 字符串时,也可能需要对反斜杠进行转义。例如,为了匹配一个字面上的反斜杠,你可能需要在正则表达式字符串中写两个反斜杠 \\ 来对其进行转义。因为在Python字符串中,一个反斜杠已经用来转义了。所以,要匹配一个反斜杠,正则表达式字符串通常是 '\\\\'。但是,如果你使用了Python的原始字符串(在字符串前加上 rR),就不需要这么做了,比如 r'\\'
阅读全文 »

应用场景

  • 数据验证:检查字符串是否符合特定的格式,如电子邮件地址、电话号码、URL、IP地址、日期格式等。
  • 数据抽取:从文本中提取所需的信息,如提取日志文件中的日期、错误代码或者提取网页中的链接。
  • 文本替换:在文本编辑器中进行查找和替换操作,或者在编程中对字符串进行复杂的替换,如大小写转换、删除多余空格等。
  • 文本分割:使用复杂的分隔符或模式对字符串进行分割,得到字符串数组。
  • 字符串解析:解析复杂格式的字符串,如解析自定义的配置文件内容。
  • 语法高亮:在编程开发环境中,对代码进行语法高亮显示。
  • 自然语言处理:在自然语言文本中识别句子、单词、短语的模式,如词干提取、词性标注等。
  • Web爬虫:从网页源码中提取所需的数据,如图片链接、特定的文本信息等。
  • 文件重命名:在文件管理中,对大批量文件进行基于模式的重命名操作。
  • 日志分析:提取、分析服务器日志文件中的关键信息,以便进行故障排除、性能监控等。
阅读全文 »

  • Python 异常处理是一种机制,用于在程序执行过程中处理和管理错误或异常情况。当程序出现错误或异常时,可以使用异常处理来捕获并处理这些异常,以避免程序崩溃或产生不可预料的结果。
  • 在 Python 中,异常是指在程序执行期间发生的错误或异常情况。当异常发生时,程序会抛出一个异常对象,可以通过异常处理来捕获并对其进行处理。
阅读全文 »

内置方法(一)

  • 当对对象按照字典操作时,会自动触发相关方法
  • 示例:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    class Person:
    # 当对象按照字典设置键值对时,会自动触发该方法
    def __setitem__(self, key, value):
    # print(key, value)
    self.__dict__[key] = value

    # 当对象按照字典操作根据键获取值时,会自动触发该方法
    def __getitem__(self, item):
    print(item)
    return self.__dict__[item]

    # 当做字典操作,删除键值对时,会自动触发该方法
    def __delitem__(self, key):
    del self.__dict__[key]


    p = Person()

    p['name'] = 'xiaoming'
    print(p.name)
    # 通过字典方式添加的键值对,可以通过属性的方式获取
    # print(p['name'])
    # print(p.__dict__)

    del p['name']
    # print(p.name)
阅读全文 »

面向对象

  • 与面向过程相比:二狗子准备结婚,需要盖房子

    • **面向过程:**数学逻辑的映射,学会做个好员工
    • **面向对象:**生活逻辑的映射,学会做个好领导
  • 生活实例

    • 类: 人 手机 电脑
    • 对象: 习大大、小杰 小杰的T2手机、小明的iPhone X 小杰的Mac、小李的华硕
阅读全文 »

eval

  • 将一个有效的Python代码字符串执行一遍
  • 示例1:
    1
    2
    3
    4
    5
    6
    a = 10
    b = 20

    s = 'a+b'
    # 打印的结果是30
    print(eval(s))
阅读全文 »

shutil

  • 拷贝普通文件

    1
    2
    3
    4
    5
    6
    # 拷贝普通文件
    import shutil

    shutil.copy('123.py', 'test.py')
    shutil.copy('123.py', 'c')
    shutil.copy('123.py', 'c/test.py')
阅读全文 »

目录管理(os)

  • system:执行系统命令

    1
    2
    # 执行系统命令
    os.system('cls')
  • name:获取操作系统名称

    1
    2
    # 操作系统的名称,nt代表Windows,posix代表Unix
    print(os.name)
阅读全文 »
0%