Python语法全面详解(从基础到深入,新手必看)
前言:Python作为一门简洁、易读、高效的编程语言,广泛应用于数据分析、人工智能、Web开发、自动化测试等多个领域。其语法简洁易懂,入门门槛低,但深入学习后会发现其蕴含丰富的特性和技巧。本文将从基础语法入手,逐步深入到高级特性,结合实例代码,帮助新手快速掌握Python语法,同时为有一定基础的开发者梳理知识点、查漏补缺。
一、Python基础语法(入门必备)
1.1 第一个Python程序
第一个Python程序(Hello World):

运行结果:Hello World!
注意:Python对大小写敏感,print不能写成Print,否则会报错。

1.2 注释语法
注释用于解释代码,不参与程序执行,分为单行注释和多行注释。

1.3 变量与数据类型
1.3.1 变量定义
Python中变量无需声明类型,直接赋值即可,语法:变量名 = 值。
变量命名规则:
-
只能由字母、数字、下划线组成,且不能以数字开头。
-
不能使用Python关键字(如if、for、while、class等)。
-
区分大小写(如name和Name是两个不同变量)。
-

1.3.2 常用数据类型
Python有5种常用基础数据类型,可通过type()函数查看变量类型。
|
数据类型 |
说明 |
示例 |
|---|---|---|
|
字符串(str) |
文本类型,用单引号、双引号或三引号包裹 |
|
|
整数(int) |
正整数、负整数、0 |
|
|
浮点数(float) |
带小数点的数字 |
|
|
布尔值(bool) |
只有True(真)和False(假)两个值 |
|
|
NoneType(None) |
表示空值,不同于0和空字符串 |
|

1.4 运算符
Python支持多种运算符,按功能可分为算术运算符、赋值运算符、比较运算符、逻辑运算符、成员运算符等。
1.4.1 算术运算符
|
运算符 |
说明 |
示例 |
结果 |
|---|---|---|---|
|
+ |
加法 |
10 + 5 |
15 |
|
- |
减法 |
10 - 5 |
5 |
|
* |
乘法 |
10 * 5 |
50 |
|
/ |
除法(结果为浮点数) |
10 / 5 |
2.0 |
|
// |
整除(取整数部分) |
10 // 3 |
3 |
|
% |
取余 |
10 % 3 |
1 |
|
** |
幂运算 |
2 ** 3 |
8 |

1.4.2 赋值运算符
赋值运算符用于给变量赋值,常用的有=、+=、-=、*=、/=等。

1.4.3 比较运算符
比较运算符用于比较两个值的大小,返回布尔值(True/False)。
|
运算符 |
说明 |
示例 |
结果 |
|---|---|---|---|
|
== |
等于 |
10 == 10 |
True |
|
!= |
不等于 |
10 != 5 |
True |
|
> |
大于 |
10 > 5 |
True |
|
< |
小于 |
10 < 5 |
False |
|
>= |
大于等于 |
10 >= 10 |
True |
|
<= |
小于等于 |
10 <= 5 |
False |

1.4.4 逻辑运算符
逻辑运算符用于连接布尔值,常用的有and(与)、or(或)、not(非)。

1.4.5 成员运算符
成员运算符用于判断一个元素是否在某个容器(如字符串、列表、元组等)中,常用in(在)和not in(不在)。

1.4.6 位运算符
位运算符用于对整数的二进制位进行操作,适用于底层开发、性能优化等场景,常用位运算符如下,操作时会先将整数转换为二进制,再进行对应运算,最终返回十进制结果。
|
运算符 |
说明 |
示例 |
结果(二进制→十进制) |
|
& |
按位与:对应位都为1,结果为1,否则为0 |
3 & 5 |
011 & 101 = 001 → 1 |
|
| |
按位或:对应位有一个为1,结果为1,否则为0 |
3 | 5 |
011 | 101 = 111 → 7 |
|
^ |
按位异或:对应位不同为1,相同为0 |
3 ^ 5 |
011 ^ 101 = 110 → 6 |
|
~ |
按位非:对二进制位取反(0变1,1变0),结果为-(x+1) |
~3 |
~011 = -100 → -4 |
|
<< |
左移:将二进制位向左移动n位,右边补0,等价于x*2ⁿ |
3 << 1 |
011 <<1 = 110 → 6(3*2¹) |
|
>> |
右移:将二进制位向右移动n位,左边补符号位,等价于x//2ⁿ |
5 >> 1 |
101 >>1 = 010 → 2(5//2¹) |
1.4.7 身份运算符
身份运算符用于判断两个变量是否指向同一个内存地址(即是否为同一个对象),常用的有is和is not,注意与比较运算符==区分(==判断值是否相等,is判断地址是否相同)。
|
运算符 |
说明 |
示例 |
结果 |
|
is |
判断两个变量指向同一个对象,是则返回True,否则返回False |
a is b |
True/False |
|
is not |
判断两个变量不指向同一个对象,否则返回True,是则返回False |
a is not b |
True/False |
1.4.8 运算符优先级(从高到低)
Python中不同运算符的执行优先级不同,优先级高的运算符先执行,优先级相同的按从左到右(除赋值运算符外,赋值运算符从右到左)的顺序执行。以下是常用运算符的优先级排序(从高到低),结合前文讲解的所有运算符,重点标注核心类别,方便记忆和实战应用。
|
优先级 |
运算符类别 |
具体运算符 |
说明 |
|
1(最高) |
括号 |
() |
可以改变运算符的默认优先级,优先执行括号内的表达式 |
|
2 |
幂运算 |
** |
优先级高于算术运算符,如2 + 3**2 先算3**2=9,再算2+9=11 |
|
3 |
位非运算符 |
~ |
唯一优先级为3的位运算符,单独执行取反操作 |
|
4 |
算术运算符(乘除类) |
*, /, //, % |
优先级高于加减类算术运算符,同优先级从左到右执行 |
|
5 |
算术运算符(加减类) |
+, - |
同优先级从左到右执行,如10 - 5 + 3 先算10-5=5,再算5+3=8 |
|
6 |
位运算符(移位类) |
<<, >> |
左移、右移操作,优先级低于算术加减,高于其他位运算符 |
|
7 |
位运算符(逻辑类) |
& |
按位与,优先级低于移位运算,高于按位或、异或 |
|
8 |
位运算符(逻辑类) |
^ |
按位异或,优先级介于按位与和按位或之间 |
|
9 |
位运算符(逻辑类) |
| |
按位或,优先级低于按位异或 |
|
10 |
比较运算符 |
==, !=, >, <, >=, <= |
判断值的大小或相等性,同优先级从左到右执行 |
|
11 |
身份运算符 |
is, is not |
判断变量是否指向同一内存地址,优先级低于比较运算符 |
|
12 |
成员运算符 |
in, not in |
判断元素是否在容器中,优先级低于身份运算符 |
|
13 |
逻辑运算符(非) |
not |
逻辑取反,优先级高于逻辑与、或 |
|
14 |
逻辑运算符(与) |
and |
逻辑与,优先级低于not,高于or |
|
15(最低) |
逻辑运算符(或)+ 赋值运算符 |
or, =, +=, -=, *=, /= 等 |
赋值运算符从右到左执行,逻辑or优先级最低 |
关键注意点:1. 括号是改变优先级的核心,优先执行括号内的表达式;2. 赋值运算符优先级最低,需等其他运算执行完毕后再赋值;3. 逻辑运算符中,not优先级最高,and次之,or最低;4. 位运算符的优先级需注意区分(非>移位>与>异或>或)。
1.5 输入与输出
1.5.1 输出函数print()
print()是Python中最常用的输出函数,可输出单个或多个值,默认换行。

1.5.2 输入函数input()
input()用于接收用户输入,返回值为字符串类型,若需接收其他类型,需进行类型转换。

二、Python流程控制(核心重点)
流程控制用于控制程序的执行顺序,Python支持三种基本流程:顺序结构、选择结构(if-else)、循环结构(for、while)。
注意:Python中没有大括号{},而是通过缩进来区分代码块,缩进一般为4个空格(或1个Tab键),缩进不一致会报错。
2.1 选择结构(if-else)
2.1.1 基本if语句
语法:
if 条件表达式:
代码块(满足条件时执行)
示例:判断一个数是否为整数

2.1.2 if-else语句
语法:
if 条件表达式:
代码块1(满足条件时执行)
else:
代码块2(不满足条件时执行)
示例:判断一个数是正数还是非正数
2.1.3 if-elif-else语句
用于多条件判断,语法:
if 条件1:
代码块1
elif 条件2:
代码块2
elif 条件3:
代码块3
else:
代码块n(所有条件都不满足时执行)
示例:判断成绩等级

2.2 循环结构
2.2.1 while循环
while循环用于重复执行一段代码,直到条件不满足为止,语法:
while 条件表达式:
循环体(条件满足时执行)
(可选)更新条件的语句
示例1:打印1-5的数字
示例2:计算1-100的和

注意:若忘记更新条件,会导致死循环(程序一直执行,无法退出),需强制终止程序(Ctrl+C)。
2.2.2 for循环
for循环用于遍历可迭代对象(如字符串、列表、元组、range等),语法:
for 变量 in 可迭代对象:
循环体
示例1:遍历字符串

示例2:遍历range对象(range(start, end, step),左闭右开)
示例3:遍历列表
2.2.3 循环控制语句(break、continue)
-
break:终止当前循环,跳出循环体,不再执行后续循环。 -
continue:跳过当前循环的剩余代码,直接进入下一次循环。 -

2.2.4 嵌套循环
一个循环中包含另一个循环,称为嵌套循环(常用for-for嵌套)。
示例:打印99乘法表

三、Python容器类型(重点进阶)
容器类型用于存储多个数据,Python中常用的容器有列表(list)、元组(tuple)、字典(dict)、集合(set),各自有不同的特性和使用场景。
3.1 列表(list)
列表是可变的(可修改元素)、有序的容器,用方括号[]包裹,元素之间用逗号分隔,元素类型可以不同。
3.1.1 列表的创建

3.1.2 列表的常用操作

3.2 元组(tuple)
元组是不可变的(不能修改元素)、有序的容器,用圆括号()包裹,元素之间用逗号分隔。元组的操作与列表类似,但不能修改元素。
3.2.1 元组的创建

3.2.2 元组的常用操作

3.3 字典(dict)
字典是可变的、无序的(Python 3.7+后有序)容器,以“键值对(key: value)”的形式存储数据,用大括号{}包裹,键(key)唯一,值(value)可重复。
3.3.1 字典的创建

3.3.2 字典的常用操作
3.4 集合(set)
集合是可变的、无序的容器,元素唯一(自动去重),用大括号{}包裹,元素之间用逗号分隔,不能包含重复元素和可变元素(如列表)。
3.4.1 集合的创建
3.4.2 集合的常用操作
四、Python函数(模块化编程)
函数是一段可重复使用的代码块,用于实现特定功能,将代码模块化,提高代码的复用性和可读性。
4.1 函数的定义与调用
语法:
def 函数名(参数1, 参数2, ...):
"""函数文档字符串(说明函数功能)"""
函数体(实现功能的代码)
(可选)return 返回值
示例:定义一个计算两数之和的函数
4.2 函数参数
函数参数分为位置参数、关键字参数、默认参数、可变参数,灵活使用参数可以让函数更通用。
4.2.1 位置参数
最基本的参数类型,调用时参数的顺序必须与定义时一致。
4.2.2 关键字参数
调用时指定参数名,顺序可以任意。

4.2.3 默认参数
定义函数时给参数指定默认值,调用时若不传递该参数,则使用默认值。默认参数必须放在位置参数后面。
4.2.4 可变参数
用于接收不确定数量的参数,分为两种:
-
*args:接收任意数量的位置参数,返回一个元组。 -
**kwargs:接收任意数量的关键字参数,返回一个字典。
4.3 函数返回值
用return语句返回函数的执行结果,return后面的代码不会执行;若没有return,函数默认返回None。
4.4 匿名函数(lambda函数)
匿名函数是没有名字的函数,语法简洁,用于实现简单的功能,语法:lambda 参数: 表达式,表达式的结果就是函数的返回值。
五、Python高级特性(深入提升)
5.1 列表推导式
列表推导式用于快速创建列表,语法简洁,效率高于普通for循环。
语法:[表达式 for 变量 in 可迭代对象 if 条件]
5.2 生成器(generator)
生成器是一种特殊的迭代器,用于生成大量数据时节省内存(不会一次性将所有数据加载到内存中,而是按需生成)。
创建生成器的两种方式:
-
将列表推导式的
[]改为()。 -
在函数中使用
yield语句(函数变成生成器)。
5.3 装饰器(decorator)
装饰器用于在不修改原函数代码的前提下,为函数添加额外功能(如日志记录、计时、权限验证等),本质是一个高阶函数(接收函数作为参数,返回一个新函数)。
5.4 异常处理(try-except)
程序运行时可能会出现错误(异常),如除数为0、索引越界等,异常处理用于捕获异常,避免程序崩溃,让程序更健壮。
语法:
try:
可能出现异常的代码块
except 异常类型1:
捕获到异常类型1时执行的代码
except 异常类型2:
捕获到异常类型2时执行的代码
...
else: 没有出现异常时执行的代码 finally: 无论是否出现异常,都会执行的代码(常用于资源释放)
六、总结与拓展
本文从基础语法(变量、运算符、输入输出)、流程控制(if-else、循环)、容器类型(列表、元组、字典、集合)、函数、高级特性(列表推导式、生成器、装饰器、异常处理)等方面,全面讲解了Python语法,覆盖了从新手入门到进阶提升的核心知识点。
Python语法的核心特点是简洁、灵活,建议在学习过程中多写代码、多练习,将知识点融会贯通。后续可进一步学习Python模块(如os、sys、requests)、面向对象编程(class)、文件操作等内容,逐步提升自己的Python编程能力。
如果本文对你有帮助,欢迎点赞、收藏、评论,如有疑问或补充,欢迎在评论区留言!
更多推荐
所有评论(0)