Python 是一门解释型、动态弱类型、缩进严格的高级编程语言,语法简洁优雅、入门门槛低、生态极其丰富。所有 Python 高阶开发、爬虫、数据分析、AI、后端开发、自动化脚本,全部建立在基础语法之上。
本文全覆盖指定核心知识点:数字/字符串/布尔变量类型、各类运算符、分支与循环流程控制、Python独有缩进规则、pass占位符用法。全程搭配可直接运行的实战代码、拆解底层特性、梳理新手高频坑点、配套面试真题,打造体系化 Python 入门核心笔记。
一、Python 变量与三大基础数据类型
Python 变量无需声明类型,赋值即定义,解释器自动推断数据类型。基础核心三类型:数字(int/float)、字符串(str)、布尔(bool)。
1.1 变量命名与定义规则
1、变量名由字母、数字、下划线组成,不能以数字开头;
2、严格区分大小写,name 和 Name 是两个不同变量;
3、禁止使用 Python 关键字(if、for、while、def、class 等);
4、推荐下划线命名法:user_name、user_age,不推荐驼峰命名。
1.2 数字类型(int / float)
数字类型是数值计算核心,分为整型、浮点型,Python3 整型无位数限制,可超大数运算。
# 整型 int:整数,正负整数、0
age = 20
num = -100
# 浮点型 float:小数
price = 9.99
pi = 3.14159
# 类型查看
print(type(age)) # <class 'int'>
print(type(price)) # <class 'float'>
# 类型转换
a = int(3.9)
b = float(10)
print(a, b) # 3 10.0
高频坑点:浮点运算存在精度误差(二进制存储特性),金融计算必须使用 decimal 模块。
1.3 字符串类型(str)
字符串是字符的集合,Python 中单引号、双引号、三引号均可定义,不可变序列。
# 单引号、双引号:单行字符串
name = 'Python'
author = "学习笔记"
# 三引号:多行字符串、保留换行格式
content = """
这是多行文本
支持换行书写
"""
# 字符串常用操作
s = "hello python"
print(len(s)) # 字符串长度
print(s[0]) # 索引取值 h
print(s.replace("h", "H")) # 替换
print(s.split(" ")) # 分割列表
print(s.upper()) # 转大写
# 字符串拼接
res = name + " study"
print(res)
核心特性:字符串属于不可变类型,无法修改内部字符,所有修改都是生成新字符串。
1.4 布尔类型(bool)
布尔类型仅两个值:True / False,用于逻辑判断、条件分支、循环终止。
# 布尔定义
flag1 = True
flag2 = False
# 布尔本质:True=1,False=0
print(int(True)) # 1
print(int(False)) # 0
# 常见假值(自动判定为False)
# 0、0.0、空字符串""、空列表[]、空字典{}、None
print(bool(0)) # False
print(bool("")) # False
print(bool("123")) # True
本节面试真题
题目:Python 字符串是否可变?哪些值会被判定为 False?
答案:字符串不可变,修改会生成新对象;数值0、空字符串、空容器、None 均为假值,布尔判定为 False。
二、Python 全套运算符
Python 运算符分为:算术运算符、赋值运算符、比较运算符、逻辑运算符,是流程控制、条件判断的基础。
2.1 算术运算符
a = 10
b = 3
print(a + b) # 加 13
print(a - b) # 减 7
print(a * b) # 乘 30
print(a / b) # 除 3.3333333
print(a // b) # 整除 3
print(a % b) # 取余 1
print(a ** b) # 幂运算 1000
2.2 赋值运算符
x = 10
x += 5 # x = x + 5
x -= 2 # x = x - 2
x *= 2 # x = x * 2
x //= 3
x %= 4
x **= 2
2.3 比较运算符
a = 20
b = 10
print(a > b) # True
print(a < b) # False
print(a == b) # 等于 False
print(a != b) # 不等于 True
print(a >= 20) # True
2.4 逻辑运算符(and/or/not)
# and 全真才真
print(1 > 0 and 2 > 1)
# or 一真即真
print(10 < 5 or 3 > 1)
# not 取反
print(not True)
# 短路特性
# and:遇到假直接返回假,后面不执行
# or:遇到真直接返回真,后面不执行
本节面试真题
题目:Python and 和 or 的短路机制?
答案:and 前面为假则直接返回假,不执行后续;or 前面为真则直接返回真,不执行后续,用于提升逻辑判断效率。
三、Python 缩进规则(核心重中之重)
Python 无大括号、无分号结束约束,完全依靠缩进区分代码块,是和 Java/Go/C++ 最大的区别,也是新手最容易报错的点。
3.1 缩进核心规范
1、官方标准:4个空格缩进,禁止空格与 Tab 混用;
2、同一代码块必须保持缩进一致;
3、冒号 : 结尾的语句(if/for/while/def/class),下一行必须缩进;
4、缩进错误直接触发:IndentationError 语法报错,程序无法运行。
3.2 正确与错误示例
# 正确缩进
if 10 > 5:
print("条件成立")
print("属于if代码块")
print("不属于if代码块")
# 错误示例(缩进混乱)
# if 10 > 5:
# print("报错")
# print("缩进不一致")
本节面试真题
题目:Python 为什么不用大括号?缩进的作用是什么?
答案:Python 依靠缩进划分代码块,强制代码规范、简洁易读;缩进不一致直接语法报错,是 Python 最核心的语法特征。
四、流程控制:分支与循环
流程控制是程序逻辑的核心,分为条件分支(if)和循环遍历(for/while),所有业务逻辑、算法全部依赖流程控制。
4.1 条件分支 if / elif / else
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
4.2 while 循环
适用于未知循环次数场景,条件成立持续循环,条件不成立终止。
# 输出 1~5
i = 1
while i <= 5:
print(i)
i += 1
4.3 for 循环
适用于已知次数、遍历序列场景,Python 主流循环。
# 遍历数字
for i in range(1, 6):
print(i)
# 遍历字符串
for char in "python":
print(char)
# break:终止整个循环
# continue:终止本次,进入下次循环
本节面试真题
题目:break 和 continue 的区别?
答案:break 直接跳出并终止整个循环;continue 仅跳过本次循环剩余逻辑,直接进入下一次循环。
五、pass 占位符语法
pass 是 Python空语句、占位语句,无任何执行逻辑、无任何效果,仅用于补全语法结构、防止语法报错。
其他语言可用空大括号占位,Python 缩进严格,空代码块会直接报错,必须用 pass 填充。
5.1 pass 实战场景
# 场景1:if 暂未实现逻辑
if 10 > 5:
pass
# 场景2:循环预留结构
for i in range(3):
pass
# 场景3:函数、类暂未开发
def test_func():
pass
class TestDemo:
pass
5.2 pass 与 continue/break 区别
1、pass:纯占位,无任何跳转、无逻辑影响;
2、continue:跳过本次循环,进入下次;
3、break:直接终止整个循环。
本节面试真题
题目:pass 的作用是什么?和 continue 有什么区别?
答案:pass 是空占位语句,用于补全语法结构,避免空代码块报错;continue 是循环控制语句,用于跳过本次循环,二者作用完全不同。
六、新手高频坑点汇总
1、缩进混乱:空格与 Tab 混用、缩进不一致,直接报错;
2、字符串不可变:不能通过索引修改字符串单个字符;
3、浮点精度问题:小数运算存在精度丢失,不可直接用于金融计算;
4、空代码块报错:if/for/def 后不能为空,必须使用 pass 占位;
5、逻辑短路:and/or 会截断后续代码执行,书写条件需注意顺序。
七、全文终极背诵总结
1、基础变量类型:数字(int/float)、字符串(不可变)、布尔(True/False),空值、0 均为假值;
2、运算符体系:算术、赋值、比较、逻辑运算,and/or 存在短路特性,优化判断效率;
3、缩进规则:Python 核心语法,4空格统一缩进,靠缩进分代码块,无大括号;
4、流程控制:if 分支做条件判断,while 适用于未知次数循环,for 适用于遍历迭代;
5、pass占位符:无逻辑、纯补全语法结构,解决空代码块报错问题,和循环跳转语句完全无关。