python基础笔记(自用)

python学习记录

  • 1.关键字
  • 2导入模块
    • 2.1 导入模块练习
  • 3.数据类型
    • 3-1 数字
      • 3-1-1.整形--int
      • 3-1-2.浮点型--float
      • 3-1-3.复数类型--complex
      • 3-1-4. 布尔类型--bool( True &False)
  • 4.数据据类型的转换
    • 4.1隐式类型转换
    • 4.2显式类型转换
  • 5.运算符
    • 5.1算数运算符
    • 5.2比较运算符
    • 5.3逻辑运算符
    • 5.4位运算符
      • 5.4.1按位取反
    • 5.5赋值运算符
    • 5.6运算符优先级
  • 6. 程序流程控制
    • 6.1分支语句
      • 6.1.1 if结构
      • 6.1.2if-else 结构
      • 6.1.3 if-elif-else
    • 6.2循环语句
      • 6.2.1 while 循环
      • 6.2.2 for循环
    • 6.3跳转语句
      • 6.3.1 break语句
      • 6.3.2continue语句
  • 7.容器类型数据
    • 7.1序列--sequence
      • 7.1.1序列的索引操作
      • 7.1.2加和乘的操作
      • 7.1.3切片操作
      • 7.1.4成员测试
    • 7.2列表
      • 7.2.1列表的创建
      • 7.2.2 追加元素
      • 7.2.3插入元素
      • 7.2.4替换元素
      • 7.2.5删除元素
    • 7.3元组
      • 7.3.1创建元组--tuple
      • 7.3.2 元组拆包
    • 7.4集合--set
      • 7.4.1创建集合
      • 7.4.2修改集合
    • 7.5字典--dict
      • 7.5.1创建字典
      • 7.5.2修改字典
      • 7.5.3访问字典视图
  • 8.字符串
    • 8.1字符串的表示方式
      • 8.1.1普通字符串
      • 8.1.2原始字符串
      • 8.1.3长字符串
    • 8.2字符串与数字的互相转换
      • 8.2.1将字符串转化为数字
      • 8.2.2将数字转化为字符串
    • 8.3格式化字符串
      • 8.3.1占位符的使用
      • 8.3.2格式化控制符
    • 8.4操作字符串
      • 8.4.1字符串的查找
      • 8.4.2字符串替换
      • 8.4.3字符串分割
  • 9.函数
    • 9.1函数的定义
    • 9.2调用函数
      • 9.2.1使用位置参数调用函数
      • 9.2.2使用关键字参数调用函数
    • 9.3参数的默认值
    • 9.4可变参数
      • 9.4.1基于元组的可变参数(*可变参数)
      • 9.4.2基于字典的可变参数(**可变参数)
    • 9.5函数中变量的作用域
    • 9.6函数类型
      • 9.6.1理解函数类型
      • 9.6.2过滤函数filter()
      • 9.6.3映射函数map()
    • 9.7lambda函数(匿名函数)
  • 10.类与对象
    • 10.1面向对象
    • 10.2 定义类
    • 10.3创建对象
    • 10.4类的成员
      • 10.4.1实例变量
      • 10.4.2构造方法
      • 10.4.3实例方法
      • 10.4.4类变量
      • 10.4.5类方法
    • 10.5封装性(封装、继承、多态面向对现象三大特性)
      • 10.5.1私有变量
      • 10.5.2私有方法
      • 10.5.3使用属性(借此来简化get&set方法)
        • 10.5.3.1 python中属性的使用(get&set方法的定义和使用)
    • 10.6继承性(面向对象的三大特性:封装、继承、多态)
      • 10.6.1python中的继承
      • 10.6.2多继承(一个子类继承多个父类)
      • 10.6.3方法重写
    • 10.7多态性(面向对象的三大特性:封装、继承、多态)
      • 10.7.1继承与多态
      • 10.7.2鸭子类型测试与多态
  • 11.异常处理
    • 11.1第一个异常--除零异常
    • 11.2捕获异常
      • 11.2.1 try-except语句
      • 11.2.2多个except代码块
      • 11.2.3多重异常捕获
      • 11.2.4 try-except 语句嵌套
    • 11.3使用finally代码块释放资源
    • 11.4自定义异常类
    • 11.5 手动引发异常
  • 12.常用内置模块
    • 12.1数学计算模块--math
    • 12.2日期时间模块--datetime
      • 12.2.1datetime类
        • 12.2.1.1datetime类的常用方法
      • 12.2.2date类
      • 12.2.3 time类
      • 12.2.4计算时间跨度类 timedelta
      • 12.2.5将日期时间与字符串相互转换
    • 12.3正则表达式模块-re
      • 12.3.1正则表达式的字符串匹配
      • 12.3.2正则表达式字符串查找
      • 12.3.3字符串替换
      • 12.3.4字符串分割
  • 13.文件读写
    • 13.1 文件打开
      • 文件打开模式
      • 常用进行组合
      • 三种文件路径的表示
    • 13.2关闭文件
      • 13.2.1 在finally代码块中关闭文件
      • 13.2.2在with as 代码块中关闭文件(推荐写法)
    • 13.3 读写文本文件
    • 13.4 复制文本文件
    • 13.5 读写二进制文件
    • 13.6复制二进制文件
  • 14.图形用户界面
    • 14.1Python中的图形用户界面开发库
    • 14.2 安装wxPython
    • 14.3第一个wxPython程序
      • import wx引入wxPython模块失败问题处理
    • 14.4 自定义窗口类
    • 14.5 在窗口中添加控件
    • 14.6 事件处理
    • 14.7布局管理
      • 14.7.1 盒子布局管理器
        • 14.7.1.1创建盒子布局管理器对象
        • 14.7.1.2添加子窗口(或控件)到父窗口
          • flag对齐标志
          • flag边框标志
          • flag调整尺寸标志
    • 14.7.2重构事件处理示例
    • 14.7.3盒子布局管理器嵌套示例
    • 14.8控件
      • 14.8.1文本输入控件
      • 14.8.2复选框和单选按钮
      • 14.8.3列表
      • 14.8.4 静态图片控件
    • 14.9如何使用wxPython官方文档
  • 15.网络通信
    • 15.1基本的网络知识
      • 15.1.1 TCP/IP协议
      • 15.1.2IP地址
      • 15.1.3端口
      • 15.1.4 HTTP/HTTPS协议
    • 15.2 搭建web服务器
    • 15.3urllib.request模块
    • 15.3.1 发送GET请求
      • 15.3.2 发送POST请求
    • 15.4 JSON数据
      • 15.4.1 JSON文档的结构
      • Json的数据类型和python数据类型对比
      • 15.4.2 JSON数据的解码
    • 15.5练习下载图片
  • 16.访问数据库
    • 16.1 SQLite数据库
        • SQLite数据库和Oracle或MySQL数据库有什么不同
      • 16.1.1SQLite数据库类型
      • 16.1.2 Python数据类型与SQLite数据类型的映射
      • 16.1.3 使用GUI管理工具管理SQLite数据库
    • 16.2 数据库编程的基本操作过程
    • 16.3 sqlite3模块API
      • 16.3.1 数据库连接对象Connection
      • 16.3.2 游标对象Cursor
    • 16.4SQLite数据库的CURD操作
      • 16.4.1无条件查询
      • 16.4.2 有条件查询
      • 16.4.3 插入数据
      • 16.4.4 更新数据
      • 16.4.5 删除数据
    • 16.5 防止SQL注入攻击
  • 17. 多线程
    • 17.1 线程的相关知识
    • 17.1.1 进程
      • 17.1.2 线程
      • 17.1.3 主线程
    • 17.2 线程模块——threading
    • 17.3 创建子线程
      • 17.3.1 自定义函数实现线程体
      • 17.3.2 自定义线程类实现线程体
    • 17.4 线程管理
      • 17.4.1 等待线程结束
        • join()方法用法
      • 17.4.2 线程停止
    • 17.5 下载图片示例
  • 18. python常用模块使用
    • 18.1OS模块

1.关键字

python基础笔记(自用)_第1张图片

2导入模块

python基础笔记(自用)_第2张图片
python基础笔记(自用)_第3张图片

2.1 导入模块练习

在这里插入图片描述
python基础笔记(自用)_第4张图片

3.数据类型

python基础笔记(自用)_第5张图片

3-1 数字

3-1-1.整形–int

python基础笔记(自用)_第6张图片

3-1-2.浮点型–float

python基础笔记(自用)_第7张图片

3-1-3.复数类型–complex

python基础笔记(自用)_第8张图片
在计算机中用a+bj来表示复数。

复数相加
在这里插入图片描述
python基础笔记(自用)_第9张图片

3-1-4. 布尔类型–bool( True &False)

1. 布尔类型属于整数类型,属于证书类型的子类。
2. 0和1不能表示bool类型。
python基础笔记(自用)_第10张图片
python基础笔记(自用)_第11张图片

4.数据据类型的转换

4.1隐式类型转换

python基础笔记(自用)_第12张图片

4.2显式类型转换

python基础笔记(自用)_第13张图片
python基础笔记(自用)_第14张图片

5.运算符

5.1算数运算符

python基础笔记(自用)_第15张图片
python基础笔记(自用)_第16张图片

5.2比较运算符

python基础笔记(自用)_第17张图片
python基础笔记(自用)_第18张图片

5.3逻辑运算符

python基础笔记(自用)_第19张图片

5.4位运算符

x&y 相同位都是1则为1,有一个是0则为0。
x|y 相同位有一个是1则为1。

python基础笔记(自用)_第20张图片
python基础笔记(自用)_第21张图片
python基础笔记(自用)_第22张图片

5.4.1按位取反

python基础笔记(自用)_第23张图片

5.5赋值运算符

python基础笔记(自用)_第24张图片

5.6运算符优先级

python基础笔记(自用)_第25张图片
python基础笔记(自用)_第26张图片

6. 程序流程控制

6.1分支语句

python基础笔记(自用)_第27张图片

6.1.1 if结构

python基础笔记(自用)_第28张图片
python基础笔记(自用)_第29张图片

6.1.2if-else 结构

python基础笔记(自用)_第30张图片

6.1.3 if-elif-else

python基础笔记(自用)_第31张图片

6.2循环语句

6.2.1 while 循环

python基础笔记(自用)_第32张图片
python基础笔记(自用)_第33张图片

6.2.2 for循环

python基础笔记(自用)_第34张图片
python基础笔记(自用)_第35张图片
python基础笔记(自用)_第36张图片

6.3跳转语句

python基础笔记(自用)_第37张图片

6.3.1 break语句

python基础笔记(自用)_第38张图片
python基础笔记(自用)_第39张图片

6.3.2continue语句

python基础笔记(自用)_第40张图片
python基础笔记(自用)_第41张图片

7.容器类型数据

python基础笔记(自用)_第42张图片

7.1序列–sequence

在这里插入图片描述
python基础笔记(自用)_第43张图片

7.1.1序列的索引操作

python基础笔记(自用)_第44张图片
python基础笔记(自用)_第45张图片
python基础笔记(自用)_第46张图片
python基础笔记(自用)_第47张图片

7.1.2加和乘的操作

python基础笔记(自用)_第48张图片
python基础笔记(自用)_第49张图片

7.1.3切片操作

python基础笔记(自用)_第50张图片
python基础笔记(自用)_第51张图片
python基础笔记(自用)_第52张图片

7.1.4成员测试

python基础笔记(自用)_第53张图片
python基础笔记(自用)_第54张图片

7.2列表

python基础笔记(自用)_第55张图片
**

列表内可存放不同类型的数据

**

7.2.1列表的创建

两种方式
python基础笔记(自用)_第56张图片
python基础笔记(自用)_第57张图片

7.2.2 追加元素

追加单个元素 list.append()
追加多个元素:
(1)list=list+t
(2) list.extend(t)

python基础笔记(自用)_第58张图片
python基础笔记(自用)_第59张图片

7.2.3插入元素

insert(i,x)
i参数表示插入位置
x参数表示插入元素

python基础笔记(自用)_第60张图片
python基础笔记(自用)_第61张图片

7.2.4替换元素

python基础笔记(自用)_第62张图片
python基础笔记(自用)_第63张图片

7.2.5删除元素

python基础笔记(自用)_第64张图片
存在两个相同元素,remove()方法删除的是第一个元素。
python基础笔记(自用)_第65张图片

7.3元组

在这里插入图片描述

一个元组内可存放不同的数据类型

7.3.1创建元组–tuple

两种方式:
1.小括号创建,小括号可省略
2.tuple() 函数创建

python基础笔记(自用)_第66张图片
python基础笔记(自用)_第67张图片

t=1, //创建只有一个元素的元组

7.3.2 元组拆包

python基础笔记(自用)_第68张图片
python基础笔记(自用)_第69张图片

7.4集合–set

python基础笔记(自用)_第70张图片
**

三点:
1.可迭代
2.无序
3.不包含重复元素

**

7.4.1创建集合

python基础笔记(自用)_第71张图片
python基础笔记(自用)_第72张图片

7.4.2修改集合

python基础笔记(自用)_第73张图片
python基础笔记(自用)_第74张图片

7.5字典–dict

python基础笔记(自用)_第75张图片

7.5.1创建字典

python基础笔记(自用)_第76张图片
python基础笔记(自用)_第77张图片
python基础笔记(自用)_第78张图片
在这里插入图片描述
python基础笔记(自用)_第79张图片
python基础笔记(自用)_第80张图片
python基础笔记(自用)_第81张图片

7.5.2修改字典

在这里插入图片描述
字典增删改查
python基础笔记(自用)_第82张图片

7.5.3访问字典视图

python基础笔记(自用)_第83张图片
python基础笔记(自用)_第84张图片

8.字符串

python基础笔记(自用)_第85张图片

8.1字符串的表示方式

python基础笔记(自用)_第86张图片

8.1.1普通字符串

在这里插入图片描述

常用转义符

python基础笔记(自用)_第87张图片
python基础笔记(自用)_第88张图片

8.1.2原始字符串

python基础笔记(自用)_第89张图片
python基础笔记(自用)_第90张图片python基础笔记(自用)_第91张图片

8.1.3长字符串

用三个单引号或三个双引号括起来,会保留原来排版的格式

python基础笔记(自用)_第92张图片
python基础笔记(自用)_第93张图片

8.2字符串与数字的互相转换

python基础笔记(自用)_第94张图片

8.2.1将字符串转化为数字

在这里插入图片描述
python基础笔记(自用)_第95张图片

8.2.2将数字转化为字符串

python基础笔记(自用)_第96张图片
python基础笔记(自用)_第97张图片

8.3格式化字符串

在这里插入图片描述

8.3.1占位符的使用

{} 就是占位符

python基础笔记(自用)_第98张图片
python基础笔记(自用)_第99张图片
在这里插入图片描述
在这里插入图片描述

8.3.2格式化控制符

在占位符中格式化控制符

python基础笔记(自用)_第100张图片python基础笔记(自用)_第101张图片

8.4操作字符串

在这里插入图片描述

8.4.1字符串的查找

python基础笔记(自用)_第102张图片
python基础笔记(自用)_第103张图片

8.4.2字符串替换

python基础笔记(自用)_第104张图片
将”空格“替换为”竖线“,指定count参数为2则前两个被替换。
python基础笔记(自用)_第105张图片

8.4.3字符串分割

python基础笔记(自用)_第106张图片
使用”空格“分割字符串,返回值为一个list列表,maxsplit指定分割次数,默认全部分割。
python基础笔记(自用)_第107张图片

9.函数

python基础笔记(自用)_第108张图片
python基础笔记(自用)_第109张图片

9.1函数的定义

python基础笔记(自用)_第110张图片
python基础笔记(自用)_第111张图片
python基础笔记(自用)_第112张图片

9.2调用函数

9.2.1使用位置参数调用函数

python基础笔记(自用)_第113张图片
python基础笔记(自用)_第114张图片

9.2.2使用关键字参数调用函数

python基础笔记(自用)_第115张图片
python基础笔记(自用)_第116张图片

9.3参数的默认值

python中无函数的重载,存在为函数指定默认参数。
python基础笔记(自用)_第117张图片
python基础笔记(自用)_第118张图片

9.4可变参数

python基础笔记(自用)_第119张图片

9.4.1基于元组的可变参数(*可变参数)

python基础笔记(自用)_第120张图片

9.4.2基于字典的可变参数(**可变参数)

python基础笔记(自用)_第121张图片

9.5函数中变量的作用域

python基础笔记(自用)_第122张图片
1.此时输出的全部为全局变量的20
python基础笔记(自用)_第123张图片
在这里插入图片描述

2.此时函数中输出的为10,全局变量输出的为20。
python基础笔记(自用)_第124张图片
在这里插入图片描述
3.关键字global将函数中局部变量X升级成同名的全局变量,此时全输出为10。
python基础笔记(自用)_第125张图片
在这里插入图片描述

9.6函数类型

在这里插入图片描述

9.6.1理解函数类型

python基础笔记(自用)_第126张图片
python基础笔记(自用)_第127张图片
python基础笔记(自用)_第128张图片

9.6.2过滤函数filter()

filter第一个参数是函数类型(提供过滤规则),第二个参数是可迭代对象。
python基础笔记(自用)_第129张图片
filter()函数返回值是一个可迭代对象,此处将其转换为列表。
python基础笔记(自用)_第130张图片
在这里插入图片描述

9.6.3映射函数map()

python基础笔记(自用)_第131张图片
map()函数返回值是一个可迭代对象,此处将其转化为列表。
python基础笔记(自用)_第132张图片
在这里插入图片描述

9.7lambda函数(匿名函数)

python基础笔记(自用)_第133张图片
lambda函数中“:”后函数体只能写一行,若想写多行课将其他内容封装成函数在此调用
python基础笔记(自用)_第134张图片

10.类与对象

python基础笔记(自用)_第135张图片

10.1面向对象

python基础笔记(自用)_第136张图片

10.2 定义类

此处pass保证代码完整性,实际开发中类有主体不用加pass。
“(object)”可以省略,默认继承object类。
python基础笔记(自用)_第137张图片

10.3创建对象

python基础笔记(自用)_第138张图片

10.4类的成员

python基础笔记(自用)_第139张图片

      a、全局变量:在模块内、在所有函数外面、在class外面,这就是全局变量。
      
      b、局部变量:在函数内、在class的方法内(未加self修饰的),这就是局部变量。

      c、 静态变量:在class内的,但不在class的方法内的,这就是静态变量。

      d、 实例变量:在class的方法内的,用self修饰的变量,这就是实例变量。

实例变量:属于某个具体的类(类实例化后生成的对象)的变量。
类变量:属于类的变量。

类变量是指一个类的变量,通常为静态变量,而实例变量通常是动态的 类变量实例变量的区别在于:类变量是所有对象共有,其中一个对象将它值改变,其他对象得到的就是改变后的结果;而实例变量则属对象私有,某一个对象将其值改变,不影响其他对象。
实例方法:属于类实例化后具体对象的方法。
类方法:属于类本身的方法。

10.4.1实例变量

self表示当前对象,即类实例化的每个实例本身。
对象实例化时,调用构造方法将类名后括号内的参数传给每个实例的属行(self.name),self.name中的name就是实例变量。
python基础笔记(自用)_第140张图片

10.4.2构造方法

python不同于java,python不需要在类中专门声明成员变量,在构造方法中定义成员变量。例:self.name。
python基础笔记(自用)_第141张图片

10.4.3实例方法

在这里插入图片描述
1. 实例方法调用时通过对象名.方法名来调用。
2. 类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。self 的名字并不是规定死的,也可以使用 this,但是最好还是按照约定使用 self。
3. 构造方法也是一种实例方法。
python基础笔记(自用)_第142张图片

10.4.4类变量

此处利率为类变量,不特属于单个实例。
类变量位于构造方法之外。
类变量同过类名.类变量来调用。

python基础笔记(自用)_第143张图片

10.4.5类方法

类方法的定义需要在方法名上加装饰器@classmethod
cls表示当前类,类似于self。
当前类cls调用类变量interest_fate。

python基础笔记(自用)_第144张图片

10.5封装性(封装、继承、多态面向对现象三大特性)

python基础笔记(自用)_第145张图片

10.5.1私有变量

1.成员变量前加两个下划线_ _声明成为私有变量。
2.实例变量和类变量都可以声明成私有变量
3.私有变量只能在类的内部访问,类的实例化对象在类外部不可访问。

python基础笔记(自用)_第146张图片

python基础笔记(自用)_第147张图片
python基础笔记(自用)_第148张图片

10.5.2私有方法

在这里插入图片描述

python基础笔记(自用)_第149张图片

10.5.3使用属性(借此来简化get&set方法)

python基础笔记(自用)_第150张图片
python基础笔记(自用)_第151张图片
1.在类中声明set和get方法。
python基础笔记(自用)_第152张图片
2.在类外通过对象来调用set和get方法访问类中的私有成员变量。
python基础笔记(自用)_第153张图片

此方式类似java中的get和set方法的定义,但是一个私有的成员变量需要定义两个公有的方法(get&set方法)来访问它,比较麻烦所以python定义属性来简化这一操作。

10.5.3.1 python中属性的使用(get&set方法的定义和使用)

定义
python基础笔记(自用)_第154张图片
使用python基础笔记(自用)_第155张图片

10.6继承性(面向对象的三大特性:封装、继承、多态)

python基础笔记(自用)_第156张图片

10.6.1python中的继承

python基础笔记(自用)_第157张图片
python基础笔记(自用)_第158张图片

10.6.2多继承(一个子类继承多个父类)

很多语言不支持多继承,例如java,但python支持。
python基础笔记(自用)_第159张图片

若子类继承的多个父类有同名方法,继承顺序:从左到右。

python基础笔记(自用)_第160张图片
python基础笔记(自用)_第161张图片

在这里插入图片描述

10.6.3方法重写

子类中根据子类需要重写重写父类的方法。
python基础笔记(自用)_第162张图片
python基础笔记(自用)_第163张图片
在这里插入图片描述

10.7多态性(面向对象的三大特性:封装、继承、多态)

python属于动态类型语言,实现多态比较复杂。
python基础笔记(自用)_第164张图片

10.7.1继承与多态

python基础笔记(自用)_第165张图片
python基础笔记(自用)_第166张图片
在这里插入图片描述

10.7.2鸭子类型测试与多态

1.动态类型语言都支持鸭子类型测试,例如python,静态类型语言不支持鸭子类型测试,例如java。
2.python通过鸭子类型测试来实现广泛的多态,不只局限于子类和父类之间,不同的类之间也可实现多态,只要这些类之间有相同的方法。
python基础笔记(自用)_第167张图片
不同的类之间实现多态测试:
python基础笔记(自用)_第168张图片
运行输出:
python基础笔记(自用)_第169张图片

11.异常处理

python基础笔记(自用)_第170张图片

11.1第一个异常–除零异常

python基础笔记(自用)_第171张图片
python基础笔记(自用)_第172张图片

11.2捕获异常

python基础笔记(自用)_第173张图片

11.2.1 try-except语句

[异常类型]可省,省略后默认捕获所有异常。
python基础笔记(自用)_第174张图片
python基础笔记(自用)_第175张图片
as e :将捕获的异常赋予变量e。
python基础笔记(自用)_第176张图片
在这里插入图片描述

11.2.2多个except代码块

python基础笔记(自用)_第177张图片
python基础笔记(自用)_第178张图片
除零异常:
在这里插入图片描述
非数字异常:
在这里插入图片描述

11.2.3多重异常捕获

python基础笔记(自用)_第179张图片

11.2.4 try-except 语句嵌套

并不是所有异常都能嵌套,所嵌套的异常要具有一定包含关系。
python基础笔记(自用)_第180张图片

11.3使用finally代码块释放资源

不论发不发生异常都会经过finally代码块。
python基础笔记(自用)_第181张图片

python基础笔记(自用)_第182张图片
正常结束:在这里插入图片描述

发生异常结束:在这里插入图片描述

11.4自定义异常类

1.写一个自定义的异常类,继承自python官方异常类Exception。
2.写构造方法也要继承exception的构造方法。
python基础笔记(自用)_第183张图片

11.5 手动引发异常

python基础笔记(自用)_第184张图片
python基础笔记(自用)_第185张图片
有点问题,先记录一下!
python基础笔记(自用)_第186张图片

12.常用内置模块

python基础笔记(自用)_第187张图片

12.1数学计算模块–math

python基础笔记(自用)_第188张图片
使用前应先导入math模块
python基础笔记(自用)_第189张图片

12.2日期时间模块–datetime

python基础笔记(自用)_第190张图片

12.2.1datetime类

datetime.datetime(参数)创建了一个时间对象。
python基础笔记(自用)_第191张图片
python基础笔记(自用)_第192张图片

12.2.1.1datetime类的常用方法

python基础笔记(自用)_第193张图片
python基础笔记(自用)_第194张图片

12.2.2date类

date类只能表示日期。
python基础笔记(自用)_第195张图片
python基础笔记(自用)_第196张图片

12.2.3 time类

python基础笔记(自用)_第197张图片

12.2.4计算时间跨度类 timedelta

参数表示间隔的时间。
python基础笔记(自用)_第198张图片

12.2.5将日期时间与字符串相互转换

简记:
strftime()—string format time 将时间对象转化为字符串
dateptime()–date pass time 将字符串类型日期转化为时间对象

python基础笔记(自用)_第199张图片
python基础笔记(自用)_第200张图片
python基础笔记(自用)_第201张图片

12.3正则表达式模块-re

在这里插入图片描述
python基础笔记(自用)_第202张图片

12.3.1正则表达式的字符串匹配

\w:匹配任何字符
+:字符数量>=1
\.:表示 .
在这里插入图片描述

python基础笔记(自用)_第203张图片

12.3.2正则表达式字符串查找

python基础笔记(自用)_第204张图片
span(16,45)表示找到的第一个字符串的下标。
python基础笔记(自用)_第205张图片

12.3.3字符串替换

python基础笔记(自用)_第206张图片
python基础笔记(自用)_第207张图片

12.3.4字符串分割

python基础笔记(自用)_第208张图片
python基础笔记(自用)_第209张图片

13.文件读写

python基础笔记(自用)_第210张图片

13.1 文件打开

python基础笔记(自用)_第211张图片

文件打开模式

python基础笔记(自用)_第212张图片

常用进行组合

python基础笔记(自用)_第213张图片
在这里插入图片描述
python基础笔记(自用)_第214张图片

三种文件路径的表示

python基础笔记(自用)_第215张图片

13.2关闭文件

在这里插入图片描述

13.2.1 在finally代码块中关闭文件

OSError和操作系统相关的异常。
python基础笔记(自用)_第216张图片

13.2.2在with as 代码块中关闭文件(推荐写法)

在这里插入图片描述
python基础笔记(自用)_第217张图片

13.3 读写文本文件

文件内的内容可以是ASCII码的,这种文件我们往往直接可以阅读,叫文本文件。
python基础笔记(自用)_第218张图片
flush() 为提高写入效率、减少IO操作次数,每次写文件并不是将数据真正写入文件中,而是先写到缓冲区中,文件关闭时会自动刷新缓冲区将缓冲区内容写入文件,flush()强制刷新缓冲区,在文件未关闭时将缓冲区内容写入文件。

13.4 复制文本文件

python基础笔记(自用)_第219张图片
python基础笔记(自用)_第220张图片

13.5 读写二进制文件

有的文件(如程序、视频、图片、或一些电子书等等),计算机是直接用二进制的0和1记录的,我们无法直接阅读。甚至根本无法读。这种文件叫二进制文件。
python基础笔记(自用)_第221张图片

13.6复制二进制文件

python基础笔记(自用)_第222张图片

14.图形用户界面

python基础笔记(自用)_第223张图片

14.1Python中的图形用户界面开发库

python基础笔记(自用)_第224张图片
wxPython比Tkinter强大,比PyQt操作简便,这里学习wxPython。

14.2 安装wxPython

python基础笔记(自用)_第225张图片
在这里插入图片描述

14.3第一个wxPython程序

wx.app()是模块导入的用法,详情在#2。
python基础笔记(自用)_第226张图片

import wx引入wxPython模块失败问题处理

我用Pycharm输入以上代码,在已经安装wxpython请境况下,import wx引入模块失败,于是重新安装了下就可正常使用了,如下。
python基础笔记(自用)_第227张图片
python基础笔记(自用)_第228张图片

14.4 自定义窗口类

自定义窗口类,以便功能扩展。
python基础笔记(自用)_第229张图片

14.5 在窗口中添加控件

python基础笔记(自用)_第230张图片
python基础笔记(自用)_第231张图片
面板panel中可放面板,可放控件。
panel中的parent=self,表示父容器为MyFram对象.

python基础笔记(自用)_第232张图片
python基础笔记(自用)_第233张图片

14.6 事件处理

python基础笔记(自用)_第234张图片
python基础笔记(自用)_第235张图片
EVT_BUTTON是常量,表示此为wx一个按钮类型。
python基础笔记(自用)_第236张图片

14.7布局管理

python基础笔记(自用)_第237张图片

14.7.1 盒子布局管理器

python基础笔记(自用)_第238张图片

14.7.1.1创建盒子布局管理器对象

python基础笔记(自用)_第239张图片

14.7.1.2添加子窗口(或控件)到父窗口

window 表示子窗口,盒子布局管理器所属哪个容器。
proportion 表示权重。
flag 标志,下文介绍。
border 如果在flag中指定有边框,可通过此标签设置边框宽度。
python基础笔记(自用)_第240张图片
在这里插入图片描述

flag对齐标志

python基础笔记(自用)_第241张图片

flag边框标志

python基础笔记(自用)_第242张图片

flag调整尺寸标志

python基础笔记(自用)_第243张图片

14.7.2重构事件处理示例

python基础笔记(自用)_第244张图片
python基础笔记(自用)_第245张图片
python基础笔记(自用)_第246张图片

14.7.3盒子布局管理器嵌套示例

button1和button2水平布局。
button1、button2和单击按钮垂直布局。

python基础笔记(自用)_第247张图片
python基础笔记(自用)_第248张图片
在这里插入图片描述

14.8控件

wxPython的所有控件都继承自wx.Control类。之前的示例已经使用了静态文本和按钮,本节重点介绍文本输入控件、单选按钮、复选框、列表和静态图片控件。

python基础笔记(自用)_第249张图片

14.8.1文本输入控件

文本输入控件(wx.TextCtrl)是可以输入文本的控件。
python基础笔记(自用)_第250张图片
python基础笔记(自用)_第251张图片

14.8.2复选框和单选按钮

多选控件是复选框(wx.CheckBox),复选框(wx.CheckBox)有时也能单独使用,能提供两种状态的开和关。
单选控件是单选按钮(wx.RadioButton),同一组的多个单选按钮应该具有互斥性,就是当一个按钮按下时,其他按钮一定释放。

python基础笔记(自用)_第252张图片
python基础笔记(自用)_第253张图片
指定为wx.RB_GROUP一个组后两个radio互斥。
python基础笔记(自用)_第254张图片
python基础笔记(自用)_第255张图片

14.8.3列表

对列表控件可以进行单选或多选,列表控件类是wx.ListBox。
python基础笔记(自用)_第256张图片
python基础笔记(自用)_第257张图片
python基础笔记(自用)_第258张图片
wx.LB_SINGLE:单选。
wx.LB_MULTIPLE:多选。
wx.LB_EXTENDED:多选,但是需要在按住Ctrl或Shift键时选择项目。
wx.LB_SORT:对列表选择项进行排序。

14.8.4 静态图片控件

静态图片控件用于显示一张图片,图片可以是wx.Python所支持的任意图片格式,静态图片控件类是wx.StaticBitmap。

python基础笔记(自用)_第259张图片python基础笔记(自用)_第260张图片

python基础笔记(自用)_第261张图片

14.9如何使用wxPython官方文档

1 打开wxPython官网页面。
python基础笔记(自用)_第262张图片
2 打开官方API帮助文档。
python基础笔记(自用)_第263张图片
3 使用API帮助文档。
python基础笔记(自用)_第264张图片

15.网络通信

python基础笔记(自用)_第265张图片

15.1基本的网络知识

python基础笔记(自用)_第266张图片

15.1.1 TCP/IP协议

python基础笔记(自用)_第267张图片

15.1.2IP地址

python基础笔记(自用)_第268张图片

15.1.3端口

python基础笔记(自用)_第269张图片

15.1.4 HTTP/HTTPS协议

对互联网的访问大多基于HTTP/HTTPS,HTTP/HTTPS是TCP/IP的一种协议。
1 HTTP
HTTP(Hypertext Transfer Protocol,超文本传输协议)属于应用层协议,其简捷、快速的方式适用于分布式超文本信息传输。HTTP是无连接协议,即在每一次请求时都建立连接,服务器在处理完客户端的请求后,会先应答客户端,然后断开连接,不会一直占用网络资源。
HTTP/1.1共定义了8种请求方法:OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE和CONNECT。GET和POST方法最常用。
2 HTTPS
HTTPS(Hypertext Transfer Protocol Secure,超文本传输安全协议)是超文本传输协议和SSL的组合,用于提供加密通信及对网络服务器身份的鉴定。简单地说,HTTPS是加密的HTTP。

HTTPS与HTTP的区别是:HTTPS使用https://代替http://,HTTPS使用端口443,而HTTP使用端口80与TCP/IP通信。
python基础笔记(自用)_第270张图片
1) GET方法:用于向指定的资源发出请求,被发送的信息“显式”地跟在URL后面。它一般只用于读取数据,例如静态图片等。GET方法有点像使用明信片给别人写信,将“信的内容”写在外面,接触到的人都可以看到,因此是不安全的。

python基础笔记(自用)_第271张图片

2) POST方法:用于向指定的资源提交数据,请求服务器进行处理,例如提交表单或者上传文件等。数据被包含在请求体中。POST方法像是把“信的内容”装入信封中,接触到该信封的人都看不到信的内容,因此是相对安全的。
python基础笔记(自用)_第272张图片

15.2 搭建web服务器

1.下载tomcat
tomcat官网 https://tomcat.apache.org/
python基础笔记(自用)_第273张图片

选择合适版本下载,此下载tomcat9。
2.解压
python基础笔记(自用)_第274张图片
3.运行服务
将自己的代码放入webapps文件夹下,进入bin目录找到startup.bat双击运行。
python基础笔记(自用)_第275张图片
启动成功。在这里插入图片描述
打开浏览器,在地址栏中输入http://localhost:8080/后回车。
python基础笔记(自用)_第276张图片
关闭tomcat双击在这里插入图片描述

15.3urllib.request模块

在这里插入图片描述

15.3.1 发送GET请求

python基础笔记(自用)_第277张图片
python基础笔记(自用)_第278张图片
在这里插入图片描述

15.3.2 发送POST请求

在这里插入图片描述
python基础笔记(自用)_第279张图片
在这里插入图片描述

15.4 JSON数据

python基础笔记(自用)_第280张图片

在这里插入图片描述

15.4.1 JSON文档的结构

构成JSON文档的两种结构为:JSON对象(object)和JSON数组(array)。

python基础笔记(自用)_第281张图片
python基础笔记(自用)_第282张图片

Json的数据类型和python数据类型对比

python基础笔记(自用)_第283张图片

15.4.2 JSON数据的解码

python基础笔记(自用)_第284张图片
我们使用json模块提供的loads(str)函数进行JSON数据的解码,参数str是JSON字符串,返回Python数据。
python基础笔记(自用)_第285张图片
在这里插入图片描述

15.5练习下载图片

python基础笔记(自用)_第286张图片
python基础笔记(自用)_第287张图片
注意:下载网络上的图片要找到网络上的图片地址,url拦上的有时不全是图片的url,因此会导致下载的图片打不开。

16.访问数据库

python基础笔记(自用)_第288张图片

16.1 SQLite数据库

python基础笔记(自用)_第289张图片

SQLite数据库和Oracle或MySQL数据库有什么不同

python基础笔记(自用)_第290张图片

16.1.1SQLite数据库类型

SQLite是无数据类型的数据库,在创建表时不需要为字段指定数据类型。但从编程规范上讲,我们应该指定数据类型,因为数据类型可以表明这个字段的含义,便于我们阅读和理解代码。
SQLite支持的常见数据类型如下。

python基础笔记(自用)_第291张图片

16.1.2 Python数据类型与SQLite数据类型的映射

在使用Python访问SQLite数据库时,会经常涉及数据类型的互相转换。它们的映射关系如下表所示。
python基础笔记(自用)_第292张图片

16.1.3 使用GUI管理工具管理SQLite数据库

python基础笔记(自用)_第293张图片
1 安装和启动DB Browser for SQLite
官网下载:http://www.sqlitebrowser.org/dl/
csdn资源下载:https://download.csdn.net/download/qq_37356556/20679425
下载后直接解压。

2 创建数据库、创建表
python基础笔记(自用)_第294张图片
python基础笔记(自用)_第295张图片
3.执行SQL语句
python基础笔记(自用)_第296张图片
4.浏览数据
python基础笔记(自用)_第297张图片

16.2 数据库编程的基本操作过程

数据库编程主要分为两类:查询(Read)和修改(C插入、U更新、D删除)。
python基础笔记(自用)_第298张图片
1 查询数据
查询数据时需要6步,在查询过程中需要提取数据结果集,最后释放资源,即关闭游标和数据库。
2 修改数据
修改数据时如上图所示,最多需要6步,在修改过程中如果执行SQL操作成功,则提交数据库事务;如果失败,则回滚事务。最后释放资源,关闭游标和数据库。
python基础笔记(自用)_第299张图片

16.3 sqlite3模块API

Python官方提供了sqlite3模块来访问SQLite数据库。

16.3.1 数据库连接对象Connection

数据库访问的第一步是进行数据库连接。
我们可以通过connect(database)函数建立数据库连接参数database是SQLite数据库的文件路径,如果连接成功,则返回数据库连接对象Connection。
Connection对象有如下重要的方法。

python基础笔记(自用)_第300张图片

16.3.2 游标对象Cursor

一个Cursor游标对象表示一个数据库游标,游标暂时保存了SQL操作所影响到的数据。游标是通过数据库连接创建的。

一个游标对象简单理解为从数据库返回的数据集合,一个临时的表。

python基础笔记(自用)_第301张图片
**execute(sql[,parameters]):**执行一条SQL语句,sql是SQL语句,parameters是为SQL提供的参数,可以是序列或字典类型。返回值是整数,表示执行SQL语句影响的行数。
**executemany(sql[,seq_of_params]):**执行批量SQL语句,sql是SQL语句,seq_of_params是为SQL提供的参数,seq_of_params是序列。返回值是整数,表示执行SQL语句影响的行数。
在通过execute()和executemany()方法执行SQL查询语句后,还要通过提取方法从查询结果集中返回数据,相关提取方法如下。
**fetchone():**从结果集中返回只有一条记录的序列,如果没有数据,则返回None。
**fetchmany(size=cursor.arraysize):**从结果集中返回小于等于size记录数的序列,如果没有数据,则返回空序列,size在默认情况下是整个游标的行数。
fetchall():从结果集中返回所有数据。

16.4SQLite数据库的CURD操作

python基础笔记(自用)_第302张图片
对之前建立的数据库表student增加性别和生日字段。
python基础笔记(自用)_第303张图片

16.4.1无条件查询

无条件查询最为简单,没有WHERE子句。
python基础笔记(自用)_第304张图片
python基础笔记(自用)_第305张图片
其中result_set的数据类型是列表类型:
在这里插入图片描述

16.4.2 有条件查询

有条件查询带有WHERE子句,WHERE子句是查询条件。
python基础笔记(自用)_第306张图片
python基础笔记(自用)_第307张图片
python基础笔记(自用)_第308张图片

16.4.3 插入数据

数据插入操作SQL语句是INSERT。
python基础笔记(自用)_第309张图片
数据插入成功,可以使用DB Browser for SQLite浏览数据。

python基础笔记(自用)_第310张图片
python基础笔记(自用)_第311张图片

16.4.4 更新数据

数据更新操作SQL语句是UPDATE。
python基础笔记(自用)_第312张图片

16.4.5 删除数据

数据删除操作SQL语句是DELETE。
python基础笔记(自用)_第313张图片

16.5 防止SQL注入攻击

python基础笔记(自用)_第314张图片
python基础笔记(自用)_第315张图片
python基础笔记(自用)_第316张图片

17. 多线程

如果想让我们的程序同时执行多个任务,就需要使用多线程技术了。到目前为止,我们编写的程序都是单线程的,在运行时一次只能执行一个任务。
python基础笔记(自用)_第317张图片

17.1 线程的相关知识

python基础笔记(自用)_第318张图片

17.1.1 进程

在这里插入图片描述
一个进程就是一个正在执行的程序,每一个进程都有自己独立的一块内存空间、一组系统资源。在进程的概念中,每一个进程的内部数据和状态都是完全独立的。
在Windows操作系统中,一个进程就是一个exe或者dll程序,它们相互独立,相互也可以通信。

windows 中的进程
python基础笔记(自用)_第319张图片

17.1.2 线程

python基础笔记(自用)_第320张图片
在一个进程中可以包含多个线程,多个线程共享一块内存空间和一组系统资源。所以,系统在各个线程之间切换时,开销要比进程小得多,正因如此,线程被称为轻量级进程。

17.1.3 主线程

python基础笔记(自用)_第321张图片

Python程序至少有一个线程,这就是主线程,程序在启动后由Python解释器负责创建主线程,在程序结束后由Python解释器负责停止主线程。
在多线程中,主线程负责其他线程的启动、挂起、停止等操作。其他线程被称为子线程。

17.2 线程模块——threading

Python官方提供的threading模块可以进行多线程编程。threading模块提供了多线程编程的高级API,使用起来比较简单。
在threading模块中提供了线程类Thread,还提供了很多线程相关的函数,这些函数中常用的如下。

python基础笔记(自用)_第322张图片
python基础笔记(自用)_第323张图片
运行输出:
python基础笔记(自用)_第324张图片

17.3 创建子线程

python基础笔记(自用)_第325张图片

17.3.1 自定义函数实现线程体

python基础笔记(自用)_第326张图片
python基础笔记(自用)_第327张图片
python基础笔记(自用)_第328张图片
运行输出:
python基础笔记(自用)_第329张图片
python基础笔记(自用)_第330张图片

17.3.2 自定义线程类实现线程体

在这里插入图片描述
python基础笔记(自用)_第331张图片
python基础笔记(自用)_第332张图片
推荐两处改动更容易理解多线程的运行原理:
python基础笔记(自用)_第333张图片

17.4 线程管理

python基础笔记(自用)_第334张图片

17.4.1 等待线程结束

有时,一个线程(假设是主线程)需要等待另外一个线程(假设是t1子线程)执行结束才能继续执行。
python基础笔记(自用)_第335张图片

join()方法用法

参数timeout用于设置超时时间,单位是秒。如果没有设置timeout,则可以一直等待,直到结束。
python基础笔记(自用)_第336张图片
python基础笔记(自用)_第337张图片
python基础笔记(自用)_第338张图片
从运行结果来看,在子线程t1结束后,主线程才输出变量value的内容,这说明主线程被阻塞了。
如果尝试将t1.join()语句注释掉,则输出结果如下:
此时主线程未中途停止。
python基础笔记(自用)_第339张图片

17.4.2 线程停止

python基础笔记(自用)_第340张图片

python基础笔记(自用)_第341张图片
python基础笔记(自用)_第342张图片
运行示例:
python基础笔记(自用)_第343张图片

17.5 下载图片示例

python基础笔记(自用)_第344张图片
这个网络爬虫程序每隔一段时间都会执行一次下载图片任务,在下载任务完成后,休眠一段时间再执行。这样反复执行,直到爬虫程序停止。
示例参考代码如下:

python基础笔记(自用)_第345张图片

以上所有课程来自b站:https://www.bilibili.com/video/BV1Fh411h7WM

18. python常用模块使用

18.1OS模块

(1)获取图片列表中每一个图片的名称
python基础笔记(自用)_第346张图片
(2拼接路径
python基础笔记(自用)_第347张图片

你可能感兴趣的:(python)