导图社区 python
这是一篇关于python的思维导图,python 又叫胶水语言,是因为他可以跨平台使用其他语言创建的功能连接到一起。
编辑于2024-02-07 16:31:17入门篇
pip
安装
命令
pip install 软件包
案例
pip install pymql
第一章 初识Python
本章概述
python 是一款跨平台 免费 开源 解释型 编程语言
python概述
python 又叫胶水语言,是因为他可以跨平台使用其他语言创建的功能连接到一起
python 的应用领域
web端开发
大数据处理
人工智能
云计算
游戏开发
python的版本
初学者版本的选择
市场上主流的现在应该是python3 但是现在也有2的老代码,需要兼容一下
1.2搭建python 开发环境
下载 然后配置环境 没什么特别的跟Java差不多
第一个python程序
控制台 打入 python 进入python
print('要输入出的内容');
回车 机会输出了
退出python
quit()
1.3 python 开发工具
官方自带的
IDEL
第三方的
Pycharm
VS
EP
第二章 python语言基础
2.1 python语法特点
2.1.1 注释
1 单行注释
#
2 多行注释
”’内容‘”
一对三引号
3 文件编码声明注释
默认是 UTF-8
如果不想用默认的在文件第一行加上 # coding=gbk
2.1.2 代码缩进
python 采用代码缩进 或者; 来区分层次
同一层级的代码块缩进必须一致 否则会抛出异常
2.1.3 编码规范
编写规则
import 每次️倒入一个模块
不要在尾部添加;
建议没行不超过80个字符,如果超过80个字符可以通过()链接
命名规范
模块名称尽量短小并且使用全拼 用下划线拼接单词
包名 规范与Java一致
类名称采用驼峰
函数和类 采用小写全拼下划线
常量 大写全拼下划线
2.2 保留字与标识符
2.2.1 保留字
展示所有保留字
import keyword keyword.kwlist
2.2.2 标识符
标识符就是Java的变量 不能使用保留字 不能以数字开头,不能包含空格和特殊字符,并且区分大小写
2.3 变量
2.3.1 理解Python中的变量
与Java一样 就是一个存储数据的对象变量
2.3.2 变量的定义和使用
变量名是一个有效的标识符
变量名不能使用保留字符
应给见名知意
python 是一个动态类型语言 也就是说 变量的值是什么 他就可以是什么类型随时更改
type() 会返回变量类型
id() 获取变量存储的内存地址
如果更换值 内存地址会变化
2.4 基本数据类型
2.4.1 数字类型
整数
自动适应长度,不能是0开头
浮点
进行计算的时候可能会出现小数点多位的情况,可以忽略小数点
如果想要数字类型和字符串类型拼接 需要使用str(key) 先把数据类型专程字符串类型
复数
2.4.2 字符串类型
如果变量值是一行 那么可以使用单引号或者双引号
如果包含换行 则使用三引号 一个双引号+一个单引号
2.4.3 布尔类型
2.4.4 数据类型转换
常用的类型转换
int()
float()
complex
创建一个复数
chr()
将整数装换成一个字符
ord()
将一个字符转换成对应的整数
hex()
整数转换成16进制
oct()
整数转换为8进制
bin()
整数转换成2进制
round(x[,ndigits])
整数四舍五入专程值指定位数
2.5 运算符
2.5.1 算术运算符
加
+
减
-
乘
*
除
/
除数不能未0
求余
%
取整除
//
取整数
幂
**
2**4 2的4次方
2.5.2 赋值运算符
=
赋值
+=
加赋值
-=
减赋值
*=
乘赋值
/=
除赋值
%=
余赋值
//=
整除赋值
**=
幂赋值
2.5.3 比较关系运算符
>
大余
<
小余
=
等于
>=
大于等于
<=
小于等于
2.5.4 逻辑关系运算符
and
与
or
或
not
非
2.5.5 位运算符
2.5.6 运算符的优先级
2.6 基本的输入和输出
2.6.1 使用 input()函数输入
username=input("请输入名字:");
控制台会提示 然后开始输入名称
age=int(input("请输入年龄"))
控制台输入的都是str 如果想转换需要int 一下 专程自己想要的类型
2.6.2使用print()函数输出
输入内容到到控制台
如果想要输出两个内容 并且不换行
print(a,b)
第三章 流程控制语句
3.1 程序结构
顺序结构
选择结构
if 判断 分支
循环结构
for 循环那种
3.2 选择语句
3.2.1 最简单的if语句
print(age) if 1==age: print("123")
3.2.2 if else 语句
if 1==age: print("true") else: print("false")
3.2.3 if elif else 语句
if 1==age: print("if") elif 2==age: print("elif") else: print("false")
3.2.4 if 语句嵌套
if 表达式 if 表达式
3.3 条件表达式
r = a if b==c else 4
如果 b==c 那么 r =a 否则 r =4
3.4 循环表达式
3.4.1 while 循环
none =True while none:
3.4.2 for 循环
break
结束循环
for i in range(101):
i 迭代变量 in 要循环的对象
3.4.3 循环嵌套
两个循环嵌套使用
3.5 跳转语句
3.5.1 break
结束循环
3.5.2 contiue
跳过本次循环
3.6 pass 空语句
没有用 就是占位的 方便 好看
第四章 序列的作用
序列 应该就是数组
4.1 序列
4.1.1 索引
序列中每一个元素的编号
4.1.2 切片
是访问数据的一种方式
sname[start:end:step]
sname
集合
start
启示索引
end
结束索引
缺省 为最易后一个
step
步长
缺省 1
4.1.3 序列相加
用加号拼接就行
4.1.4 乘法
序列可以通过*与数字相乘 就等于这个序列编程了原来的n倍
4.1.5 检查某个元素是否是序列成员
value in sname
value 是否在 sname 里 返回布尔
4.1.6 计算序列的长度 最大值 最小值
长度
len()
最大值
max()
只能对数字进行操作
最小值
min()
只能对数字进行操作
4.2 列表
4.2.1 列表的创建和删除
使用赋值运算创建列表
saaa=[a,a,s,sf]
创建空列表
saasas=[]
创建数值列表
list(函数)
list(range(10,20,2))
删除列表
del sadad
4.2.2 访问列表元素
list[1]
4.2.3循环
for i in list
for + enu
for index,value in enumerate(nba):
index 索引
value 值
nba 列表
4.2.4 添加 删除 修改列元素
添加
nba.append(s)
修改
nba[2]=sds
删除
del nab[2]
4.2.5 对列表统计和计算
单个元素出现的个数
nba.count(1)
获取元素首次出现的下标
nab.index(a)
统计数值列表的元素和
sum(nab)
4.2.6 对列表进行排序
nba.sort(reverse=True)
默认是升序
reverse
true
生序
false
降序
key
str.lower
不区分大小写
原列表的排序进行改变
使用内置方法 sorted()
sorted(nba,key=str.lower(),reverse=True)
NBA
列表
reverse
true
生序
false
降序
key
str.lower
不区分大小写
4.2.7 列表推导示
[random.randint(0,100) for i in range(10)]
在0,100 的随机数种 生成十次
4.2.8 二纬列表的使用
1 直接定义
ar=[[1,2,],[2,3]]
使用嵌套for循环创建
使用列表推倒式创建
4.3 元组
概论
元祖是一种不可变的序列,也成为不可变列表
操作方式基本和列表相同 但是因为定长所以好多方法是没有的
关键符号
()
4.3.1 元组的创建和删除
4.3.2 访问元组要素
4.3.3 修改元祖要读
4.4 字典
概述
字典类似于map 是一个无序,可变的序列,通过key来访问
特点
通过键 而不是索引查询
字典是任意字段的无序集合
字典中键必须唯一
字典的键不可变
4.4.1 字典的创建和删除
直接创建
testMap = {'a': 'a1', 'b': 'b1'}
创建空的字典
testmap={}
testmap=dict()
dict()
创建空也可以通过已有的创建字典
通过映射函数创造字典
dict(zip(list1,list2))
zip 是可以把两个列表或者两个元组组成一个字典
两个元组或者列表 组合出来的 按少的长度为基础
通过特定的键制对来创造字典
dict(key1=vluae1,key2=value2)
创建一个有key 的字典
map=dict.formkeys(list1)
删除 字典
del map
4.4.2 通过key value 访问
map['key']
4.4.3 遍历字典
for item in testMap.items():
返回每一个字典
for key,value in testMap.items(): print(key,value)
4.4.4 字典的添加,删除,修改
修改|添加
map['s']=s
删除
del map['s']
4.4.5 字典推导式
distmap={i:random.randint(0,20) for i in range(1,5)}
生成一个字典 key 是i 用range 生成 value 为随机数据
4.5 集合
4.5.0 概述
集合分两种
可变集合 set
是无序的
下边案例讲的都是可变集合
不可变集合 fozenset
集合本身每个元素是不可以重复得
集合中元素的类型没有要求
{} 代表集合
4.5.1 集合的创建
{}直接用大括号判断
set(a)
可以把元祖,序列,列表专成集合
4.5.2 集合的添加和删除
添加
add
删除
del
clear 删除
4.5.3 集合的交集,并集,差级运算
&
返回两个集合都存在的数
|
返回两个集合的并集
a-b
返回a 有 b 没有的差集
4.6 列表,元组,字典,集合的区别
第五章 字符串及正则表达式
5.1 字符串常用操作
5.1.1 拼接字符串
+
str+str
5.1.2 计算字符串长度
len(str)
5.1.3 截取字符串
str[0:7:2]
从0开始截取到第七个,步频率是2
5.1.4 分割合并字符串
1 分割字符串
split(q1,-1)
第一个参数
默认是none 换行符 空字符串切割
第二个参数
默认是-1 切割所有的, 如果是1,只切割一次,2切割两次
2 合并字符串
str.join(str1)
5.1.5 检索字符串
查询次数
str.count('%')
查询字符串所在的下表
str.find('%').
不存在返回-1
str.index('%')
不存在 跑异常
判断是否是某个自负开头
startswith
是否结尾
endswitch
5.1.6 字符串大小写转换
lower()
字符串中如果有大写转换成小写
upper()
转换成大写
5.1.7 去除掉空格和特殊字符串
去除两端
str.strip('1')
去除右侧
str.rstrip('1')
去除左侧
str.lstrip('1')
5.1.8 格式化字符串
耗时较高
5.2 字符串编码转换
5.2.1 使用encode() 编码
str1.encode(encoding="utf-8")
编码集为utf-8 编写成二进制
5.2.2 使用decode()解码
erjiz内置.encode(encoding="utf-8")
把二进制解码成字符串
5.3 正则表达式
5.3.1 行定位符
^
^s
表示以S开头
$
s$
表示以s结尾
5.4 使用re模块 完成正则表达式操作
5.4.1 匹配字符串
使用match() 方法进行匹配
使用search() 进行搜索
使用findall() 进行查询
5.4.2 替换字符串
5.4.3使用正则表达式切割字符串
进阶篇
第六章 函数
6.1 函数的创建和调用
6.1.1 创建一个函数
def methodName(par1,par2)
如果在同一个文件里 调用放要在这个下面
6.1.2 调用函数
6.2 函数的传递
6.2.1 了解形式参数和实际参数
形式参数
定义方法中的参数
实际参数
调用方法中传递的参数
6.2.2 位置参数
1 调用好 参数必须与函数定义的个数一致
2 调用方 参数必须与函数定义的参数位置一致
6.2.3 关键字参数
3 如果调用方给参数的时候给定每个参数的key=value 那么位置一个可以不一致
6.2.4 为参数设置默认值
methodName(str1,str2 ,str3='zhangsan')
调用方如果不传递第三个参数那么就使用这个默认值
6.2.5 可变参数
methodNmae(*str)
表示传递的是一个可变参数 可以类似于
6.3 返回值
return
可以返回一个,也可以返回多个,如果是多个 就是元组
6.4 变量的作用域
6.4.1 局部变量
6.4.2 成员变量
6.5 匿名函数(lambda)
第七章 面向对象程序设计
7.1 面向对象概述
7.1.1 对象
对象有两部分
静态
对象的属性 比如人的性别
动态
对象的行为,比如王探去尿尿
7.1.2 类
类是封装对象属性和行为的载体
相同属性和行为的一类实体被称为类
7.1.3 面向对象程序设计的特点
1 封装
是面向对象编程的核心思想,其载体就是类,对调用方隐藏了内部的实现细节,保证类内部完整性,提高了程序的可维护性
2 继承
继承是重复利用的手段,子类通过继承属性和方法基础上还可以添加自己的属性和方法
3 多态
子类实现父类不同的属性和方法 并且能够实现不同的效果就叫多态
7.2 类的定义和使用
7.2.1 定义类
关键子 class A
class User:
7.2.2 创建类的实例
User()
7.2.3 创建 _init_(self) 方法
类似于 Java的构造方法 创建对象的时候就会执行该方法
self
是执行这个类的参数,必须是第一个 ,但是不需要传递
还可以自定参数 必须在self后边
7.2.4 创建类的成员并且访问
1. 创建实例方法并访问
创建方法 其实与 _init_ 方法一样
调用 需要类创建的对象进行调用
2 创建数据成员并且访问
创建 与Java 类变量一致 在类里创建变量就行了
用类 和对象都可以访问
注意
成员变量 其实如果给了默认值 对象可以改变这个数值 不影响类中原有的变量,相反一样,也就是说对象创建以后 这个值等于copy 单独使用 没有影响了
类上叫类属性 创建对象以后的就叫实例属性了
7.2.5 访问限制
__
双下滑线
只可以同一个类里的方法调用不可用类或者对象调用
如果非要调用 user._ClassName.method()
类似于 Java priate
7.3 属性
7.3.1 创建用于计算的属性
@property
使用
在方法上使用该注解 那么这个方法就可以当成对象的属性来使用了 不用()
调用
必须使用对象调用
7.3.2 为属性添加保护机制
@property
那么该方法有返回值 就不可以更改了,
也就是说该注解可以把简单的方法编程属性,但是不可以set值
7.4 继承
7.4.1 继承的基本语法
语法
class sun(p)
类明后添加括号,把父类放进去
7.4.2 方法重写
与Java 一样 当父类的方法不试用的试用 重写一下就行了
7.4.3 派生类继承父类的__init__() 方法
super()
表示获取父类
第八章 模块
8.1 模块概述
8.2 自定义模块
8.3 以主程序的形式执行
8.4 Python中的包
8.5 引用其他模块
第九章 异常处理及程序调试
第十章 文件及目录
第十一章 使用python 操作数据库