Python学习笔记-3

Python笔记

今天机器学习最大的收获:要具体,不要模(han)糊!
python哲学中有这一项。

错误异常处理

错误类型

  • 语法错误
  • 语义错误
  • 逻辑错误

异常处理

  • try:有可能出现异常代码
  • except异常类型as实例:捕获特定异常
  • finally:不论是否遇到异常均会执行
  • else:未遇到异常时执行
  • raise:手动抛出异常在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

测试

测试级别

  • 单元测试

    • 对代码最基本单元(函数、方法)的测试
    • 给予特定条件判断结果是否符合预期
    • 相对整个程序的测试,单元测试简化了测试任务
    • unittest模块
  • 集成测试

  • 系统测试

  • 验收测试

  • 回归测试
    在这里插入图片描述在这里插入图片描述

代码组织

  • 断言

    • assertEqual(值,表达式) 是否相等
    • assertTrue() 是否为真
    • assertIn( ) 是否包含
    • assertAlmostEqual( ) 是否约等于
    • assertIs( ) 是否为同引用
    • assertIsNone( ) 是否为空
    • assertIsInstance( ) 是否某类型实例
    • assertGreater( ) 是否大于
  • 装置

    • 测试用例类继承自 unittest.TestCase
    • test_定义功能测试函数名
    • setUp() 函数定义准备初始化代码
    • tearDown( ) 函数执行清理工作

数值与日期

数值

  • 格式化
  • 小数位的处理在这里插入图片描述在这里插入图片描述

随机数

  • random.choice() 序列中随机选择一个值
  • random.sample() 获取指定数目的序列
  • random.shuffle() 打乱顺序
  • random.randint() 生成范围内的随机整数
  • random.random() 生成随机浮点数
  • random.getrandbits() 生成指定bit位数的随机数
    在这里插入图片描述在这里插入图片描述

日期时间

  • datetime

    • date

    • time

    • datetime

      • year
      • month
      • day

      • 在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    • 格式转换

      • 字符串到日期时间 datetime.datetime.strptime(‘txt’ , '格式‘ )

      • 日期时间到字符串 datetime.datetime.strftime( '格式’)

      • 占位符

        • %Y 四位年份
        • %y 二位年份
        • %m 二位月份
        • %d 二位日期
        • %H 二位小时
        • %M 二位分钟
        • %S 二位秒数
        • %f 微妙
        • %w 星期数,0…6
    • 时间差 timedelta

      • days
      • seconds
      • hours
        在这里插入图片描述

对象持久化

扁平文件

  • 文本文件
    在这里插入图片描述

pickle

  • pickle

    • 序列化为字符串

      • .dumps(obj) :将对象序列为字符串
      • .load(s) :从字符串反序列化对象
    • 序列化对象文件

      • .dump(obj,file)
      • .load(file)
        在这里插入图片描述在这里插入图片描述在这里插入图片描述

shelve

  • shelve

    • .open(‘dbfile’)
    • .close()
    • db[‘key’] = obj
    • len(db)
    • del db[‘key’]
      在这里插入图片描述在这里插入图片描述在这里插入图片描述

数据库

ORM

字符串

概述

  • 类型

    • str 字符串
    • bytes 字节
    • bytearray 字节数组
  • 字符编码架构

    • 字符集:赋值一个编码到某个字符,以便在内存中表示
    • 编码 Encoding:转换字符到原始字节形式
    • 解码 Decoding: 依据编码名称转换原始字节到字符的过程
  • 字符串存储

    • 编码只作用于文件存储或中间媒介转换时
    • 内存中总是存储解码以后的文本

字符编码

  • ASCII

    • 存储在一个Byte 0-127
  • latin-1

    • 存储在一个人Byte 128-255
  • UTF-8

    • 可变字节

      • 0-127 使用单字节
      • 128-2047 双字节存储
      • 2047 3-4Byte

      • 每Byte使用 128-255
  • UTF-16

    • 2 Byte存储字符 (另外2Byte作为标识)
  • UTF-32

    • 4 Byte

内置函数

  • ord() 获取字符代码点
  • chr() 获取代码点对应字符
  • str.encode(‘编码’) 将待定字符编码
  • bytes.decode(‘编码’) 将字符编码解码为字符文本在这里插入图片描述

类型转换

  • bytes

    • 手动声明 b’ ’
    • 字符串编码 str.encode()
    • 构造函数 bytes()
  • bytearray

    • bytearray(‘字符’,‘编码’)
    • .decode() 解码为字符串
      在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

BOM 处理

  • open(‘data.txt’,‘w|r’,encoding = ‘utf-8-sig’)
    在这里插入图片描述

正则表达式

概述

  • 概念

    • Regular Expression
    • 一种文本模式,描述在搜索文本时要匹配的一个或多个字符串
  • 典型场景

    • 数据验证
    • 文本扫描
    • 文本提取
    • 文本替换
    • 文本分割
  • 语法

    • 字面值

      • 普通字符

      • 需转义

        • \
        • ^
        • $
        • .
        • |
        • ?
        • ()
        • []
        • {}
    • 元字符

  • 匹配

    • 单字,预定义元字符

      • . 除\n外的所有字符
      • \d 数字,等同于[0-9]
      • \D 非数字,等同于[^0-9]
      • \s 空白字符 \t\n\r\f\v
      • \S 非空白字符[^\t\n\r\f\v]
      • \w 字母数字字符[a-zA-Z0-9_]
      • \W 非字母数字[^a-zA-Z0-9_]
        在这里插入图片描述在这里插入图片描述
    • 批量备选

      • | yes|no
    • 量词(字符、元字符,字符集如何重复)

      • ? 0或1次

        • 0或多次
        • 1或多次
      • 特定

        • {n,m} 范围次数
        • {n} n次
        • {n,} 至少n次
    • 贪婪与非贪婪

      • 贪婪(默认):尽量匹配最大范围结果

      • 非贪婪

        • 尽量匹配最小的范围结果

        • 方法:量词后追加 ?

        • 例:

          • ??
          • *?
          • +?
    • 边界匹配

      • ^ 行首
      • $ 行尾
      • \b 单词边界
      • \B 非单词边界
      • \A 输入开头
      • \Z 输入结尾
      • 注:或因上下文差异有不同表现
        在这里插入图片描述

Python 正则

  • 模块

    • import re
  • RegexObject 正则对象

    • 模式对象,表现编译后的正则表达式(编译为字节码并缓存)

    • 编译

      • re.compile(r’模式‘)
        在这里插入图片描述
    • .findall()

      • 查找所有非重叠匹配项
      • 返回list
        在这里插入图片描述在这里插入图片描述
    • .match(string[,pos[,endpos]])

      • 匹配,仅从起始位置
      • 返回 MatchObject
        在这里插入图片描述在这里插入图片描述
    • .search(string[,[pos[,endpos]])

      • 任意位置搜索
      • 返回 MatchObject
    • .finditer()

      • 查找所有匹配项
      • 返回包括MatchObject元素的迭代器
        在这里插入图片描述
  • MatchObject 匹配对象

    • 表现被匹配的模式

    • .group()

      • 参数为0或空返回整个匹配
      • 有参时返回特定分组匹配细节
      • 参数也可以是分组名称
    • .groups()

      • 返回包含所有子分组的元组
    • .start()

      • 返回特定分组的起始索引
    • .end()

      • 返回特定分组的终止索引
    • .span()

      • 返回特定分组的起止索引分组
    • .groupdict()

      • 以字典表形式返回分组名及结果
        在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • Group 编组

    • 场景

      • 从匹配模式中提取信息
      • 创建子正则以应用量词
      • 限制备选项范围
      • 重用正则模式中提取的内容
    • 声明

      • (模式)
      • (?P模式)
    • 引用

      • 匹配对象内 m.group(‘name’)
      • 模式内 (?P=name)
      • 表现内 \g
        在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 应用

    • 字符串操作

      • .split(string,maxsplit=0)

        • 分割字符串
      • .sub(repl,string,count=0)

        • 替换字符串
      • .subn(repl,string,count=0)

        • 替换并返回替换数量
          在这里插入图片描述在这里插入图片描述在这里插入图片描述
    • 编译标记

      • 改变正则的默认行为
      • re.I 忽略大小写
      • re.M 匹配多行
      • re.S 指定“.” 匹配所有字符,包括\n

      • 在这里插入图片描述HJld19fX0E=,size_16,color_FFFFFF,t_70)
    • 模块级别操作

      • re.purge() 清理正则缓存
      • re.escape() 逃逸字符
        在这里插入图片描述

系统工具

概念

  • 命令行工具
  • Shell脚本
  • 系统管理

系统模块

  • sys

    • 提供一组功能映射Python运行时的操作系统
  • os

    • 提供跨平台可移植的操作系统编程接口
    • os.path 提供文件及目录工具的可移植编程接口

sys

  • 平台与版本

    • sys.platform
    • sys.version
    • sys.path
    • sys.modules
      在这里插入图片描述
      在这里插入图片描述
  • 观察异常细节

    • sys.exc_info() 获取最后一次异常细节
    • traceback.print_tb(sys.exc_info()[2])
      在这里插入图片描述在这里插入图片描述
  • 命令行参数

    • sys.argv
      在这里插入图片描述在这里插入图片描述
  • 标准流

    • sys.stdin 标准输入流 默认等同于 iput()
    • sys.stdout 标准输出流
    • sys.stderr 标准错误流
      在这里插入图片描述

os

  • shell变量

    • os.environ
  • 管理工具

    • .getcwd()获取当前工作目录
    • .listdir(path) 列举目录内容
    • .chdir(path) 改变工作目录
    • .getpid() 获取当前进程ID
    • .getppid() 获取当前父进程ID
      在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 运行shell命令

    • .system() Python脚本中运行shell命令
    • .popen() 运行命令并连接输入输出流
  • 文件处理

    • .mkdir('目录名‘) 创建目录
    • .rmdir('目录名’) 删除目录
    • .rename(‘旧名’,‘新名’) 改名
    • .remove('文件名‘) 删除文件
  • 可移植工具

    • .sep 分隔符
    • .pathsep 路径分隔符
    • .curdir 相对当前目录符号
    • .pardir 相对上级目录符号
      在这里插入图片描述
  • 路径模块 .path

    • .isdir(path) 是否目录
    • .isfile(path) 是否文件
    • .exits(path) 是否存在
    • .split(path) 拆分路径
    • .splitext(path) 拆分路径扩展名
    • .join() 连接路径
      在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述博客做的熟练点了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值