导图社区 Python语法基础一览
本思维导图总结了Python语法基础内容,各个主题之间有一定的链式关系,呈现了一个语法基础的相对完整框架。 当我们学完了语法的流程控制语句之后,就可以完成简单的面向过程编程。 接着,完成Python的函数学习,即可由“面向过程编程“过渡到“函数式编程”。这时,就已经足够我们去看第三方模块。 最后,当达到一定基础之后,再去学习“面向对象编程”,相较于“函数式编程”又是另一种的思维,但不会对“函数式编程”进行替代。 希望对大家有一定的帮助!
编辑于2022-09-19 10:35:07 四川省当运行程序时,数据会以变量、序列或者对象的形式,在程序中临时存储。但当程序运行结束之后,数据也随之消失。如果我们想长期保存数据,那么就需要将数据存储到磁盘文件中,这就需要通过Python读写文件,即I/O操作。I/O操作有三步:1、打开文件;2、文件读写;3、关闭文件(或者编写成with语句)。 本篇思维导图,即是围绕而操作的核心——文件对象(file_obj)来展开讲解,分为2个部分:一、file_obj的创建(open函数);二、file_obj的方法调用(读取文件、写入文件、文件指针以及最后的关闭文件)。 希望通过本篇思维导图,能帮助你对使用Python进行文件读写有更深的理解与认识!
Python数据类型,从整体来看,以数字、文本为基础,用列表、字典、元组、集合作为容器;以性质划分,又分为可变与不可变数据。 本篇思维导图为大家讲解的即是Python中作为基础数据的数字(包含整型、浮点型、复数)。 数字本身的内容不多,重点在其有多样的表现形式。然后,对数字的相关处理方式(运算 函数)。 值得注意的是,整型就是整数,但是,浮点型不等于小数,也表达不了分数。所有针对于小数及分数的运算,补充了Decimal类、Praction类的讲解部分。 最后,对于数字运算有重要关系的math模块,将相关的函数及特殊值进行汇总,希望对大家在用到数学运算的时侯带来帮助。 本篇导图逻辑清晰、内容完整,希望能对想要深入学习Python的您带来帮助!
Python数据类型,从整体来看,以数字、文本为基础,用列表、字典、元组、集合作为容器;以性质划分,又分为可变与不可变数据。 本篇思维导图为大家讲解的即是Python中作为基础数据的文本(即字符串),以“时间顺序”将内容拆解为"创建、引用、操作、输出"四个部分。 1、字符串由引号直接创建,一些特殊的内容需要用到转义字符;当然,还需特别注意引号前的字母,对字符内容存在一定的影响; 2、字符串的引用,同列表一样,即索引与切片;但其属于不可变数据类型,不支持就地更改; 3、字符串的操作按照操作方式,分为“运算、函数、方法”三种方式,其字符串的方法非常丰富,特别将方法进行详细的梳理归纳,以便我们能更好的使用。 4、字符串输出部分,重点讲格式化输出,并对字符呈现起着关键作用的spec字段详细讲解,以便我们的文字内容能够更好的呈现。 本篇导图逻辑清晰、内容完整,希望能对想要深入学习Python的您带来帮助!
社区模板帮助中心,点此进入>>
当运行程序时,数据会以变量、序列或者对象的形式,在程序中临时存储。但当程序运行结束之后,数据也随之消失。如果我们想长期保存数据,那么就需要将数据存储到磁盘文件中,这就需要通过Python读写文件,即I/O操作。I/O操作有三步:1、打开文件;2、文件读写;3、关闭文件(或者编写成with语句)。 本篇思维导图,即是围绕而操作的核心——文件对象(file_obj)来展开讲解,分为2个部分:一、file_obj的创建(open函数);二、file_obj的方法调用(读取文件、写入文件、文件指针以及最后的关闭文件)。 希望通过本篇思维导图,能帮助你对使用Python进行文件读写有更深的理解与认识!
Python数据类型,从整体来看,以数字、文本为基础,用列表、字典、元组、集合作为容器;以性质划分,又分为可变与不可变数据。 本篇思维导图为大家讲解的即是Python中作为基础数据的数字(包含整型、浮点型、复数)。 数字本身的内容不多,重点在其有多样的表现形式。然后,对数字的相关处理方式(运算 函数)。 值得注意的是,整型就是整数,但是,浮点型不等于小数,也表达不了分数。所有针对于小数及分数的运算,补充了Decimal类、Praction类的讲解部分。 最后,对于数字运算有重要关系的math模块,将相关的函数及特殊值进行汇总,希望对大家在用到数学运算的时侯带来帮助。 本篇导图逻辑清晰、内容完整,希望能对想要深入学习Python的您带来帮助!
Python数据类型,从整体来看,以数字、文本为基础,用列表、字典、元组、集合作为容器;以性质划分,又分为可变与不可变数据。 本篇思维导图为大家讲解的即是Python中作为基础数据的文本(即字符串),以“时间顺序”将内容拆解为"创建、引用、操作、输出"四个部分。 1、字符串由引号直接创建,一些特殊的内容需要用到转义字符;当然,还需特别注意引号前的字母,对字符内容存在一定的影响; 2、字符串的引用,同列表一样,即索引与切片;但其属于不可变数据类型,不支持就地更改; 3、字符串的操作按照操作方式,分为“运算、函数、方法”三种方式,其字符串的方法非常丰富,特别将方法进行详细的梳理归纳,以便我们能更好的使用。 4、字符串输出部分,重点讲格式化输出,并对字符呈现起着关键作用的spec字段详细讲解,以便我们的文字内容能够更好的呈现。 本篇导图逻辑清晰、内容完整,希望能对想要深入学习Python的您带来帮助!
Python 编程基础(框架)
一、Python环境配置
Python环境配置完成之后,按惯例输入并运行的第一句代码:print("Hello World!")
i. 安装python解释器
Python官网:https://www.python.org/
ii. 安装python代码编辑器(IDE)
1. 命令行模式编程
行命令模式编辑代码,可以一边编辑,一边运行代码,有很好的交互体验
Jupyter Notebook
推荐
2. 脚本文件编程
脚本模式编辑,在窗口中连续输入语句或函数,保存为py文件
Visual Studio Code
官网:https://code.visualstudio.com
Spyder
官网:https://www.spyder-ide.org/
Pycharm(付费/收费)
官网:https://www.jetbrains.com/pycharm/
二、Python数据类型
(1) 数据类型汇总
1. 标准数据类型
不可变数据类型
str,number(int,float, complex),tuple
可哈希
可变数据类型
list,dict,set
不可哈希
2. 其他数据类型
bool、None
(2) 数据类型转换
str(x)
other → str
int(x)
str → int
str,必须为整数形式的字符串
bool → int
True → 1
False → 0
float → int
只保留整数部分
bool(x)
0,空字符,空列表,空元组,空字典,空集合
→ False
除上面为空的其他元素
→ True
其他
list()、tuple()、dict()、set() …
(3) 数据拼接
str
+ (加号),str + str,连接字符串
*(乘号),str * int,字符串重复拼接
str + other
格式符,%
"格式符1,格式符2" % (值1, 值2)
格式符:%s → 字符串,%f → 浮点数,%d → 整数,...
格式化字符串,format()
"{},{}".format(值1, 值2)
f"{值1}{值2}"
python版本 ≥ 3.6
三、Python的变量
I. 常量
1. Python内置常量
内置常量有6个:True、False、None、NotImplemented、Ellipsis、__debug__
True\False
表示逻辑【真\假】,是布尔型变量的两个取值
None
表示对象为【空】,即对象缺失
2. Python无法自定义常量
当需要自定义常量时,可以将变量的字母全部大写来表示常量(本质还是变量)
II. 变量
(1) 变量的命名
1. 命名规则
1. 组成
数字(不能打头)
字母(区分大小写)
下画线
2. 变量命名不能是:Python 关键字、内置函数名称
查看Python关键字,可以用导入keyword模块: import keyword print(keyword.kwlist)
2. 命名方式
通过命名,可以赋予变量实际的意义。其实,用什么方式大可不必拘泥,根据个人习惯喜好即可,关键是自己能看懂变量表示的是什么,甚至让别人也可以看懂。
驼峰形式
UsedRange:用过的单元格区域
PEP 8
used_range:用过的单元格区域
(2) 变量的创建
1. 给变量赋值(=),也就创建了该变量
1||| 直接赋值
a=1
2||| 增强的赋值操作
a += 1 <=> a = a + 1
+=
-=
*=
/=
%=
**=
//=
3||| 链式赋值:将同一个值赋值给多个变量
a=b=1
4||| 多重赋值(解包操作)
a,b=1,2
_,b=1,2
a,b=[1,2]
a,*b = [1,2,3,4,5,6]
2. 删除变量
del a
(3) 变量的引用
Python对象三要素
存储(内存)地址
数据类型
值
传值 or 传址
不可变数据类型
将不可变数据赋值给变量,传入的是数据的值
可变数据类型
将可变数据赋值给变量,传入的是数据的引用(内存地址)
三、Python的表达式
I. Python的运算符
1. 算术运算符
+-*/
//
//:取整除,返回商的整数部分
%
%:取模,返回除法的余数
**
**:冥,返回x的y次冥
2. 位运算符
先将运算符两侧的数据转化为二进制,再通过对二进制的数位去进行比较
|、&、~、^、<<、>>
3. 关系(比较)运算符
==(等于)
!=(不等于)
>
<
>=
<=
只能用于整型、浮点型
4. 成员运算符
in/not in
5. 身份运算符
is/not is
6. 逻辑运算符
not(非)
and(且)
or(或)
II. 运算符的优先级
() 括号
x[i] 索引运算
x.attribute 属性/方法调用
** 指数
~ 取反
+,- (正负号)
算术运算符
*,/,//,%
+,-
位运算符
>>,<< 移位
& 与
^ 异或
| 或
关系(比较)运算符
==,!=,>,>=,<,<=
成员运算符
is,is not
身份运算符
in,not in
逻辑运算符
not
and
or
优先级的顺序:从上到下,从左到右(在同一主题里表示同级)
括号 → 索引 → 属性 → 指数 → 取反 → 正负 → 算术 → 位 → 关系 → 成员 → 身份 → 逻辑
四、Python流程控制语句
条件判断
if...语句、if...else...语句、if...elif...语句、if嵌套、三元操作
循环语句
for循环
for...in...
for...in...else
for循环嵌套
while循环
while...
while...else...
while嵌套
用于循环语句
break
终止当前循环,但不结束程序
continue
终止本次循环,开始下次循环
其他
pass
什么也没有执行,只为保持程序结构的完整性
注释
单行注释
#
多行注释
三引号字符串
语句拆分
在断句处,添加 \ ( 反斜杠)
语句合并
在语句之间添加 ; (分号)
五、Python函数
(1) 内置函数
Python内部自带函数
(2) 自定义函数
i. 自定义函数格式
def 函数名( 参数): "函数_文档字符串" function_suite return [expression]
I. 函数头
1||| def
定义函数(关键字)
2||| 函数名
遵循变量的命名规则
函数名后要添加,括号 ()
3||| 参数
函数的参数列表,放于括号中
II. 函数体(缩进)
第一行语句可以选择性地使用文档字符串,用于介绍函数功能
function_suite
函数的执行代码
III. 返回值
return,终止函数,并返回 expression(表达式)
如果函数省略return 或expression,则函数返回None
ii. 函数参数
根据函数定义/执行
形参(parameter)
定义函数
实参(argument)
执行函数
参数类型
参数
位置参数
关键字参数
默认参数
可变(动态)参数
*args
**kwargs
iii. 函数的作用域
1. 作用域以函数划分
函数内
局部作用域
局部变量,局部作用域定义的变量(包含函数名)
函数外
全局作用域
全局变量,全局作用域定义的变量(包含函数名)
2. 变量的作用范围
局部变量,不能在全局作用域内或其他局部作用域使用
全局变量,可以在局部作用域中读取(但变量值不能修改)
3. global 关键字
局部变量 → 全局变量
(3) 匿名函数
1. 匿名函数,则是基于lambda表达式实现定义一个可以没有名字的函数
2. 函数格式
lambda 参数: 参数的表达式
六、Python文件读写
I. Python的编码方式
ascii编码
ascii规定使用1个字节来表示字母与二进制的对应关系。
gb-2312编码
gb-2312编码,由国家信息标准委员会制作(1980年)。
1个字节
gbk编码,对gb2312进行扩展,包含了中日韩等文字(1995年)。
2个字节
unicode
unicode也被称为万国码,为全球的每个文字都分配了一个码位(二进制表示)。
unicode的应用:在文件存储和网络传输时,不会直接使用unicode,而在内存中会unicode
utf-8编码
包含所有文字和二进制的对应关系,全球应用最为广泛的一种编码
本质上:utf-8是对unicode的压缩,用尽量少的二进制去与文字进行对应。
II. 文件读写:打开文件 → 操作文件 → 关闭文件
(1) 打开文件
open(file,mode='r',encoding=None)
参数
file
文件名称(路径)
encoding
编码方式:utf-8,gbk,unicode,...
mode,文件打开模式
mode,由三部分组成
读:r 写:w、x、a
t:文本模式 b:二进制模式
+(加号,表示读写)
返回值
返回一个file对象
(2) 操作文件
读
读取全部
file.read()
读取一行
file.readline()
读取所有行
file.readlines()
写
file.write(text)
file.writelines(lines)
(3) 关闭文件
file.close()
七、Python模块
(1) 包与模块
模块(module)
一个py文件
包(package)
含多个py文件的文件夹
(2) 模块类别
内置模块
Python自带模块,无需另行安装
import math,cmath,random,time,datetime...
第三方模块
需要另行安装
pip install numpy/pandas/matplotlib...
自定义模块
用户自行编写的Python文件
(3) 模块导入方式
import xxx
模块级别
import mod
导入当前工作目录的py文件
import pkg.mod
导入下一级目录的py文件
import pkg.mod as alias
导入一个py文件,并取个别名
包级别
import pkg
导入文件夹
from xxx import xxx,一般适用于多层嵌套和导入模块中某个成员的情况。
成员级别
from mod import func/cls/var
模块级别
from pkg import mod
包级别
from pkg import subpkg
相对导入
.
当前目录的mod
..
上一级目录的mod
通过 as 取别名
import mod as m
八、面向对象编程
类的定义
class ClassName( ): def func(self): pass
关键字:class
类名称:首字母大写&驼峰式命名
在类中编写的函数,称为方法,默认第一个参数self
实例化一个对象
类名+括号
obj = ClassName()
成员
变量
实例变量
__init__,中定义的变量,通过实例化生成的变量
实例变量,属于对象,只能通过对象调用。
类变量
方法
绑定方法
绑定方法,属于类,通过对象调用 或 通过类调用。
通过类的实例化,调用实例化对象中的方法
类方法
通过类调用函数
静态方法
属性
绑定方法 + 特殊装饰器
三大特性
封装
将同一类方法封装到了一个类中
将数据封装到了对象中,
在实例化一个对象时,可以通过__init__初始化方法在对象中封装一些数据
以便后续使用
继承
父类 → 子类
将类中的公共的方法提取到基类中去实现。
基类 → 派生类
增强代码的重用性
要注意代码执行的顺序
子类中执行方法时,优先于父类,在子类中寻找方法
多继承
class Subcls(Cls1,Cls2)
继承的优先顺序
从左向右:Cls1 → Cls2
执行对象.方法时,优先去当前对象所关联的类中找,没有的话才去她的父类中查找。
Python支持多继承:先继承左边、再继承右边的。
多态
在程序设计中,鸭子类型(duck typing)是动态类型的一种风格。在鸭子类型中,关注点在于对象的行为,能作什么;而不是关注对象所属的类型,例如:一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟可以被称为鸭子。
Python默认支持多态(这种方式称之为鸭子类型)
异常处理
常见的异常
Exception
表示所有异常
异常捕获
单分支的情况
try ... except <异常名 > ...
多分支的情况
try ... except (<异常名1>,<异常名2>,...) ...
try ... except <异常名1>... except <异常名2>...
try...except...else...
没有捕获到错误时,会执行else语句
try...finally...
无论是否发生异常,都会执行finally语句
-----------------------------End-------------------------------
在Python编辑器中编辑程序,再交由Python解释器去执行文件