
文章目录
- 一、Python代码编辑器的选择:适配各类场景,高效编写语句
-
- [1.1 新手入门首选:轻量化编辑器(零配置、开箱即用)](#1.1 新手入门首选:轻量化编辑器(零配置、开箱即用))
-
- [1.1.1 IDLE(Python自带)](#1.1.1 IDLE(Python自带))
- [1.1.2 VS Code(全场景通用)](#1.1.2 VS Code(全场景通用))
- [1.1.3 Sublime Text](#1.1.3 Sublime Text)
- [1.2 专业开发首选:集成IDE(工程化、强调试)](#1.2 专业开发首选:集成IDE(工程化、强调试))
-
- [1.2.1 PyCharm(Python专业IDE)](#1.2.1 PyCharm(Python专业IDE))
- [1.2.2 Jupyter Notebook(AI/数据分析专属)](#1.2.2 Jupyter Notebook(AI/数据分析专属))
- [1.3 编辑器选型总结](#1.3 编辑器选型总结)
- 二、import语句使用:模块导入,Python代码复用核心
-
- [2.1 import语句基础语法](#2.1 import语句基础语法)
-
- [2.1.1 基础导入:import 模块名](#2.1.1 基础导入:import 模块名)
- [2.1.2 精准导入:from 模块名 import 成员名](#2.1.2 精准导入:from 模块名 import 成员名)
- [2.1.3 别名导入:import 模块名 as 别名 / from 模块名 import 成员名 as 别名](#2.1.3 别名导入:import 模块名 as 别名 / from 模块名 import 成员名 as 别名)
- [2.1.4 导入所有成员:from 模块名 import *](#2.1.4 导入所有成员:from 模块名 import *)
- [2.2 import语句使用注意事项](#2.2 import语句使用注意事项)
- [2.3 实战:import语句搭配基础语句使用](#2.3 实战:import语句搭配基础语句使用)
- 三、别样的赋值:序列解包、链式赋值、增量赋值
-
- [3.1 基础赋值语句回顾](#3.1 基础赋值语句回顾)
- [3.2 序列解包:一次性赋值多个变量](#3.2 序列解包:一次性赋值多个变量)
-
- [3.2.1 元组/列表解包](#3.2.1 元组/列表解包)
- [3.2.2 字典解包](#3.2.2 字典解包)
- [3.2.3 剩余元素解包:*号用法](#3.2.3 剩余元素解包:*号用法)
- [3.3 链式赋值:同时给多个变量赋同一个值](#3.3 链式赋值:同时给多个变量赋同一个值)
- [3.4 增量赋值:简化运算赋值语句](#3.4 增量赋值:简化运算赋值语句)
- 四、语句块:Python代码的缩进规则
-
- [4.1 语句块缩进规则](#4.1 语句块缩进规则)
- [4.2 正确缩进示例](#4.2 正确缩进示例)
- [4.3 错误缩进示例(报错)](#4.3 错误缩进示例(报错))
- [4.4 语句块缩进规范](#4.4 语句块缩进规范)
- 五、条件语句:程序逻辑判断核心
-
- [5.1 单分支条件语句:if](#5.1 单分支条件语句:if)
- [5.2 双分支条件语句:if...else...](#5.2 双分支条件语句:if...else...)
- [5.3 多分支条件语句:if...elif...else...](#5.3 多分支条件语句:if...elif...else...)
- [5.4 条件语句嵌套](#5.4 条件语句嵌套)
- [5.5 三元表达式:简化单行条件判断](#5.5 三元表达式:简化单行条件判断)
- 六、更多操作:同一性运算符、序列比较、布尔运算、断言
-
- [6.1 同一性运算符:is、is not](#6.1 同一性运算符:is、is not)
- [6.2 比较字符串和序列](#6.2 比较字符串和序列)
-
- [6.2.1 字符串比较](#6.2.1 字符串比较)
- [6.2.2 序列比较](#6.2.2 序列比较)
- [6.3 布尔运算:and、or、not](#6.3 布尔运算:and、or、not)
- [6.4 断言语句:assert](#6.4 断言语句:assert)
- 七、循环语句:批量执行代码,提升效率
-
- [7.1 while循环:条件循环](#7.1 while循环:条件循环)
-
- [7.1.1 基础while循环](#7.1.1 基础while循环)
- [7.1.2 无限循环(死循环)](#7.1.2 无限循环(死循环))
- [7.2 for循环:遍历循环](#7.2 for循环:遍历循环)
-
- [7.2.1 遍历序列对象](#7.2.1 遍历序列对象)
- [7.2.2 range()函数搭配for循环](#7.2.2 range()函数搭配for循环)
- [7.2.3 遍历字典](#7.2.3 遍历字典)
- [7.3 循环控制关键字:break、continue](#7.3 循环控制关键字:break、continue)
-
- [7.3.1 break:终止整个循环](#7.3.1 break:终止整个循环)
- [7.3.2 continue:跳过本次循环](#7.3.2 continue:跳过本次循环)
- [7.4 循环嵌套](#7.4 循环嵌套)
- [7.5 for...else...与while...else...](#7.5 for...else...与while...else...)
- 八、pass语句:空语句,占位专用
-
- [8.1 pass语句使用场景](#8.1 pass语句使用场景)
- [8.2 pass语句实战](#8.2 pass语句实战)
- 九、具体项目实战:基础语句综合应用
-
- [9.1 项目一:随机数猜数字游戏(全受众入门)](#9.1 项目一:随机数猜数字游戏(全受众入门))
- [9.2 项目二:运维自动化日志筛选脚本(运维专属)](#9.2 项目二:运维自动化日志筛选脚本(运维专属))
- [9.3 项目三:AI数据预处理-数据清洗工具(AI爱好者专属)](#9.3 项目三:AI数据预处理-数据清洗工具(AI爱好者专属))
- 十、常见面试题汇总:夯实基础,备战面试
-
- [10.1 基础语法面试题](#10.1 基础语法面试题)
-
- [10.1.1 Python语句块的划分依据是什么?缩进有什么规范?](#10.1.1 Python语句块的划分依据是什么?缩进有什么规范?)
- [10.1.2 pass语句的作用是什么?与注释有什么区别?](#10.1.2 pass语句的作用是什么?与注释有什么区别?)
- [10.1.3 == 和 is 的区别是什么?](#10.1.3 == 和 is 的区别是什么?)
- [10.2 条件语句面试题](#10.2 条件语句面试题)
-
- [10.2.1 简述if...elif...else...执行逻辑,多分支中elif可以省略吗?](#10.2.1 简述if...elif...else...执行逻辑,多分支中elif可以省略吗?)
- [10.2.2 什么是三元表达式?写出三元表达式语法。](#10.2.2 什么是三元表达式?写出三元表达式语法。)
- [10.3 循环语句面试题](#10.3 循环语句面试题)
-
- [10.3.1 while循环和for循环的区别是什么?各自适用场景?](#10.3.1 while循环和for循环的区别是什么?各自适用场景?)
- [10.3.2 break和continue的区别是什么?](#10.3.2 break和continue的区别是什么?)
- [10.3.3 for...else...中else何时执行?](#10.3.3 for...else...中else何时执行?)
- [10.4 赋值语句面试题](#10.4 赋值语句面试题)
-
- [10.4.1 什么是序列解包?*号在序列解包中的作用?](#10.4.1 什么是序列解包?*号在序列解包中的作用?)
- [10.5 综合编程面试题](#10.5 综合编程面试题)
-
- [10.5.1 编写代码:计算1-100所有偶数之和](#10.5.1 编写代码:计算1-100所有偶数之和)
- [10.5.2 编写代码:打印九九乘法表](#10.5.2 编写代码:打印九九乘法表)
- 结语
前言
Python作为一门简洁高效的解释型编程语言,凭借易读性、丰富的第三方库以及跨平台特性,成为AI开发、后端接口开发、自动化运维、前端工程化辅助、数据分析等领域的首选语言。而想要真正掌握Python编程,核心就在于吃透"语句语法"------无论是条件判断、循环逻辑,还是基础赋值、模块导入,都是编写规范、可复用、高效率代码的根基。
很多初学者在入门Python时,容易忽略基础语句的细节,一味追求框架、项目实战,导致后期编写复杂代码时频繁出现语法错误、逻辑漏洞、代码冗余等问题。本文将从零开始,系统性讲解Python3条件、循环及其他核心语句,从开发工具选型、基础语法规则,到进阶用法、实战落地、面试考点全覆盖,全文知识点循序渐进,代码可直接复制运行,兼顾专业性与通俗性,助力各类开发者打通Python基础语法闭环。
一、Python代码编辑器的选择:适配各类场景,高效编写语句
编写Python代码的第一步,就是选择一款适配自身需求的编辑器/IDE,工具选对不仅能提升编码效率,还能减少语法错误、快速调试代码。针对不同受众(初级学习者、后端、前端、运维、AI爱好者),本文推荐多款实用工具,涵盖轻量化编辑器、专业IDE,兼顾新手入门与工程化开发。
1.1 新手入门首选:轻量化编辑器(零配置、开箱即用)
1.1.1 IDLE(Python自带)
IDLE是Python安装时自带的简易开发工具,无需额外下载配置,适合完全零基础的小白上手练习基础语句,无需担心环境配置问题,打开即可编写代码,完美适配条件、循环等基础语句的练习。
"优势":无需配置、轻量无广告、自带语法高亮、支持代码运行与调试,适合练习单行/简短代码块;"劣势":无代码补全、工程管理能力弱,不适合大型项目开发。
"适用人群":Python零基础小白、临时练习基础语句的学习者。
1.1.2 VS Code(全场景通用)
VS Code是微软推出的轻量化代码编辑器,通过安装Python插件即可实现专业的Python开发能力,占用内存小、功能强大,支持前端、后端、运维、AI开发全场景,是目前最主流的Python编辑器之一。
"优势":语法高亮、智能代码补全、代码调试、Git集成、支持多种编程语言、插件生态丰富;"劣势":需简单配置Python解释器路径。
"适用人群":全受众(初级/中级/前端/后端/运维/AI爱好者),日常编写脚本、中小型项目首选。
1.1.3 Sublime Text
轻量化、启动速度极快,支持自定义配置,适合运维人员编写自动化脚本、初学者练习基础语法,无需复杂配置,保存为.py文件即可运行。
1.2 专业开发首选:集成IDE(工程化、强调试)
1.2.1 PyCharm(Python专业IDE)
分为社区版(免费)和专业版(付费),社区版完全满足基础语法学习、中小型项目开发需求,是后端开发、AI爱好者的首选工具,自带代码调试、项目管理、代码格式化、语法检测等全能功能,能有效规避条件、循环语句的语法错误。
"优势":智能代码提示、一键调试、工程管理、代码重构、内置终端;"劣势":占用内存较高,新手需简单熟悉界面。
"适用人群":中级学习者、后端开发、AI开发、大型Python项目开发。
1.2.2 Jupyter Notebook(AI/数据分析专属)
交互式编程工具,支持代码、文字、图片混合编写,适合AI爱好者、数据分析师练习Python语句、调试算法,每一行代码可单独运行,方便调试条件、循环等逻辑语句。
1.3 编辑器选型总结
-
零基础小白:优先选择IDLE、VS Code
-
前端/运维:VS Code、Sublime Text
-
后端/AI爱好者:PyCharm社区版、Jupyter Notebook
本文所有代码,均可在以上任意编辑器中运行,后续所有案例均基于Python3.8及以上版本编写,保证兼容性与可运行性。
二、import语句使用:模块导入,Python代码复用核心
import语句是Python中实现代码复用、调用内置/第三方模块的核心语句,也是编写工程化代码的基础。很多初学者会混淆import、from...import、as别名的用法,本文将详细讲解各类导入方式,搭配示例代码,彻底吃透import语句。
2.1 import语句基础语法
import语句用于导入Python内置模块、第三方库、自定义模块,导入后即可调用模块内的函数、类、变量,无需重复编写代码。
2.1.1 基础导入:import 模块名
python
# 导入Python内置math模块,用于数学计算
import math
# 调用math模块的平方根函数,计算16的平方根
result = math.sqrt(16)
# 输出结果:4.0
print(result)
# 调用math模块的圆周率常量
print(math.pi)
"语法规则":导入模块后,调用模块内成员需通过"模块名.成员名"的方式,避免命名冲突。
2.1.2 精准导入:from 模块名 import 成员名
如果只需要模块中的某个函数、变量,无需导入整个模块,可使用from...import精准导入,减少内存占用,调用时无需加模块名。
python
# 从math模块中精准导入sqrt函数和pi常量
from math import sqrt, pi
# 直接调用函数,无需加模块名
print(sqrt(25)) # 输出:5.0
print(pi) # 输出:3.141592653589793
2.1.3 别名导入:import 模块名 as 别名 / from 模块名 import 成员名 as 别名
模块名过长、或者避免命名冲突时,可使用as关键字自定义别名,简化代码书写。
python
# 导入模块并设置别名
import math as m
# 调用模块成员
print(m.sqrt(9)) # 输出:3.0
# 导入成员并设置别名
from math import sqrt as sq
print(sq(36)) # 输出:6.0
2.1.4 导入所有成员:from 模块名 import *
使用*可导入模块内所有成员,无需逐个指定,但不推荐在大型项目中使用,容易造成命名冲突。
python
# 导入math模块所有成员(不推荐工程化使用)
from math import *
print(sqrt(49))
2.2 import语句使用注意事项
-
import语句建议写在代码文件顶部,遵循Python编码规范;
-
先导入内置模块,再导入第三方模块,最后导入自定义模块;
-
避免使用from...import*,防止变量、函数命名冲突;
-
导入模块时,Python会按照指定路径查找模块,路径不存在会报错ModuleNotFoundError。
2.3 实战:import语句搭配基础语句使用
python
# 导入随机数模块,后续循环、条件语句会高频使用
import random
# 生成1-10之间的随机整数
num = random.randint(1, 10)
print(f"生成的随机数为:{num}")
三、别样的赋值:序列解包、链式赋值、增量赋值
Python的赋值语句远比其他编程语言灵活,除了基础的变量赋值,还有序列解包、链式赋值、增量赋值三种高级用法,能大幅简化代码、提升可读性,是Python简洁性的核心体现,也是编写高效代码的必备技巧。
3.1 基础赋值语句回顾
基础赋值即通过=号给变量绑定值,是Python最基础的语句,所有复杂代码均以此为根基。
python
# 基础赋值:单个变量赋值
name = "Python学习者"
age = 20
# 输出变量值
print(name, age)
3.2 序列解包:一次性赋值多个变量
序列解包(也叫可迭代对象解包),指将序列(列表、元组、字符串、字典等可迭代对象)中的元素,一次性赋值给多个变量,变量数量需与序列元素数量一致。
3.2.1 元组/列表解包
python
# 元组序列解包
x, y, z = (10, 20, 30)
print(x, y, z) # 输出:10 20 30
# 列表序列解包
a, b = [100, 200]
print(a, b) # 输出:100 200
# 字符串解包
s1, s2, s3 = "abc"
print(s1, s2, s3) # 输出:a b c
3.2.2 字典解包
字典默认解包键,若需解包值或键值对,需单独指定。
python
# 定义字典
person = {"name": "张三", "age": 22}
# 解包字典键
k1, k2 = person
print(k1, k2) # 输出:name age
# 解包字典键值对
(key1, val1), (key2, val2) = person.items()
print(key1, val1) # 输出:name 张三
3.2.3 剩余元素解包:*号用法
变量数量少于序列元素时,可使用*号接收剩余元素,返回列表。
python
# *号接收剩余元素
num1, *num_list, num2 = [1, 2, 3, 4, 5]
print(num1) # 输出:1
print(num_list) # 输出:[2, 3, 4]
print(num2) # 输出:5
3.3 链式赋值:同时给多个变量赋同一个值
链式赋值指通过连续的=号,将同一个值赋值给多个变量,无需重复书写赋值语句。
python
# 链式赋值:a、b、c三个变量同时赋值为666
a = b = c = 666
print(a, b, c) # 输出:666 666 666
# 对比普通赋值(代码冗余)
x = 888
y = 888
z = 888
"注意":链式赋值适用于不可变数据类型(数字、字符串、元组),可变数据类型(列表、字典)使用时需注意引用问题。
3.4 增量赋值:简化运算赋值语句
增量赋值是将运算与赋值结合,简化算术运算、逻辑运算的赋值写法,支持加减乘除、取模、幂运算等多种操作。
| 增量赋值运算符 | 写法 | 等价普通写法 |
|---|---|---|
| += | a += 1 | a = a + 1 |
| -= | a -= 1 | a = a - 1 |
| *= | a *= 2 | a = a * 2 |
| /= | a /= 2 | a = a / 2 |
| //= | a //= 2 | a = a // 2 |
| %= | a %= 2 | a = a % 2 |
| **= | a **= 2 | a = a ** 2 |
python
# 增量赋值实战
num = 10
# 加法增量赋值
num += 5 # 等价 num = num + 5
print(num) # 输出:15
# 乘法增量赋值
num *= 2 # 等价 num = num * 2
print(num) # 输出:30
四、语句块:Python代码的缩进规则
Python与Java、C++等编程语言最大的区别,就是不使用大括号{}包裹代码块,而是通过"缩进"划分语句块,缩进是Python语法的核心,缩进错误会直接导致程序报错。
4.1 语句块缩进规则
-
语句块(条件语句内、循环语句内、函数内、类内)必须缩进,通常使用4个空格或者1个Tab键(推荐4个空格);
-
同一级别的代码块,缩进必须一致;
-
冒号:代表语句块开始,下一行必须进行缩进;
-
缩进结束,代表语句块结束。
4.2 正确缩进示例
python
# 条件语句语句块,冒号后缩进4个空格
age = 18
if age >= 18:
# 属于if语句块,缩进一致
print("已成年")
print("可以独立承担责任")
# 不属于if语句块,无缩进
print("程序执行完毕")
4.3 错误缩进示例(报错)
python
age = 18
if age >= 18:
print("已成年") # 错误:未缩进,报错IndentationError
4.4 语句块缩进规范
- 统一缩进格式,禁止Tab与空格混合使用;2. 编辑器可自动开启缩进格式化,无需手动敲空格;3. 多层语句块嵌套时,逐层缩进,保证代码层级清晰。
五、条件语句:程序逻辑判断核心
条件语句是编程中实现逻辑判断的核心,根据给定条件的真假,执行不同的代码块,Python中条件语句包含if、elif、else三种关键字,支持单分支、双分支、多分支判断,也支持嵌套使用。
5.1 单分支条件语句:if
单分支判断,只有条件成立(True)时,才执行语句块内代码;条件不成立(False),直接跳过语句块。
"语法格式":
python
if 判断条件:
条件成立时执行的代码块
python
# 单分支条件语句实战
score = 90
# 判断成绩是否大于等于60
if score >= 60:
print("成绩合格,顺利通过考试")
5.2 双分支条件语句:if...else...
双分支判断,条件成立执行if语句块,条件不成立执行else语句块,二选一执行。
"语法格式":
python
if 判断条件:
条件成立执行的代码块
else:
条件不成立执行的代码块
python
# 双分支判断实战
score = 55
if score >= 60:
print("成绩合格")
else:
print("成绩不合格,需补考")
5.3 多分支条件语句:if...elif...else...
多分支判断,适用于多个条件场景,从上到下依次判断,满足某个条件则执行对应语句块,后续条件不再判断;所有if、elif条件都不满足,执行else语句块。
"语法格式":
python
if 条件1:
条件1成立执行代码
elif 条件2:
条件2成立执行代码
elif 条件3:
条件3成立执行代码
...
else:
所有条件不成立执行代码
python
# 多分支成绩等级判断
score = 85
if score >= 90:
print("成绩等级:优秀")
elif score >= 80:
print("成绩等级:良好")
elif score >= 70:
print("成绩等级:中等")
elif score >= 60:
print("成绩等级:及格")
else:
print("成绩等级:不及格")
5.4 条件语句嵌套
在一个if/elif/else语句块内,再嵌套一层或多层条件语句,适用于复杂逻辑判断,嵌套时需严格遵循缩进规则。
python
# 条件语句嵌套实战:判断成年+性别
age = 20
gender = "女"
# 外层条件:判断是否成年
if age >= 18:
print("已成年")
# 内层条件:判断性别
if gender == "男":
print("成年男性")
elif gender == "女":
print("成年女性")
else:
print("性别输入有误")
else:
print("未成年")
5.5 三元表达式:简化单行条件判断
三元表达式是Python简化双分支条件语句的写法,一行代码完成条件判断与赋值,提升代码简洁性。
"语法格式":变量 = 条件成立结果 if 判断条件 else 条件不成立结果
python
# 三元表达式实战
num = 10
# 判断数字奇偶,一行代码赋值
result = "偶数" if num % 2 == 0 else "奇数"
print(result) # 输出:偶数
六、更多操作:同一性运算符、序列比较、布尔运算、断言
除了基础条件判断,Python还提供了同一性判断、序列比较、布尔运算、断言等高级操作,进一步完善逻辑判断、代码校验能力,适用于复杂场景的逻辑编写与代码调试。
6.1 同一性运算符:is、is not
很多初学者会混淆==(相等运算符)与is(同一性运算符),二者核心区别:==判断两个变量的值是否相等;is判断两个变量是否指向同一个内存地址(是否为同一个对象)。
python
# 定义两个列表,值相同但内存地址不同
list1 = [1, 2, 3]
list2 = [1, 2, 3]
# == 判断值是否相等
print(list1 == list2) # 输出:True
# is 判断是否为同一个对象(内存地址一致)
print(list1 is list2) # 输出:False
# is not 判断是否不是同一个对象
print(list1 is not list2) # 输出:True
# 不可变类型:数字、字符串,内存地址会复用
a = 10
b = 10
print(a is b) # 输出:True
6.2 比较字符串和序列
Python支持字符串、列表、元组等序列直接进行比较,按照字符编码、元素顺序逐位比较,返回布尔值。
6.2.1 字符串比较
python
# 字符串比较:按照ASCII码逐位比较
print("apple" > "banana") # 输出:False
print("python" > "PyThon") # 输出:True(小写字母编码大于大写)
6.2.2 序列比较
python
# 列表序列比较
print([1, 2, 3] < [1, 3, 2]) # 输出:True
# 元组比较
print((4, 5) > (3, 6)) # 输出:True
6.3 布尔运算:and、or、not
布尔运算用于连接多个条件判断,分为与(and)、或(or)、非(not)三种,是复杂条件判断的核心。
| 运算符 | 含义 | 运算规则 |
|---|---|---|
| and | 与 | 所有条件都为True,结果才为True;任一条件为False,结果为False |
| or | 或 | 任一条件为True,结果为True;所有条件为False,结果为False |
| not | 非 | 取反,True变False,False变True |
python
# 布尔运算实战
age = 22
# and运算:同时满足两个条件
if age >= 18 and age <= 60:
print("青壮年")
# or运算:满足任一条件
score = 58
if score < 60 or score > 100:
print("成绩异常")
# not运算:取反
flag = False
if not flag:
print("flag为False,取反后执行")
6.4 断言语句:assert
assert语句用于代码调试、校验条件是否成立,若条件为True,程序正常运行;若条件为False,程序直接报错AssertionError,并终止运行,常用于代码合法性校验。
"语法格式":assert 判断条件, 报错提示信息(可选)
python
# 断言语句实战:校验年龄是否为正数
age = -5
# 断言:年龄必须大于0,否则报错
assert age > 0, "年龄不能为负数"
print("年龄输入合法")
上述代码中,age为负数,assert条件不成立,程序报错并终止,不会执行后续print语句,快速定位代码问题。
七、循环语句:批量执行代码,提升效率
循环语句用于重复执行某一段代码块,解决重复代码编写问题,是编程中实现批量处理、自动化操作的核心。Python中循环语句分为while循环和for循环,两种循环适用场景不同,搭配break、continue关键字可实现更灵活的循环控制。
7.1 while循环:条件循环
while循环根据判断条件执行循环,条件为True,重复执行循环体代码;条件为False,终止循环。
"语法格式":
python
while 循环条件:
循环体代码(重复执行的语句)
循环条件更新(避免无限循环)
7.1.1 基础while循环
python
# 基础while循环:打印1-5数字
i = 1
# 循环条件:i小于等于5
while i <= 5:
print(i)
# 循环条件更新:i自增1
i += 1
7.1.2 无限循环(死循环)
循环条件永远为True,循环永远不会终止,一般配合break关键字使用,适用于监听、后台服务等场景。
python
# 无限循环实战
while True:
print("循环执行中,按Ctrl+C终止循环")
# 终止循环
break
7.2 for循环:遍历循环
for循环是Python最常用的循环,用于遍历可迭代对象(列表、元组、字符串、字典、range序列等),依次取出对象内的元素,执行循环体代码,无需手动更新循环条件。
"语法格式":
python
for 临时变量 in 可迭代对象:
循环体代码
7.2.1 遍历序列对象
python
# 遍历列表
name_list = ["张三", "李四", "王五"]
for name in name_list:
print(f"姓名:{name}")
# 遍历字符串
for s in "Python":
print(s)
7.2.2 range()函数搭配for循环
range()函数用于生成整数序列,是for循环的常用搭配,语法:range(start, stop, step),start为起始值(默认0),stop为结束值(不包含),step为步长(默认1)。
python
# range生成1-10整数,遍历打印
for i in range(1, 11):
print(i)
# 步长为2,打印1-10奇数
for i in range(1, 11, 2):
print(i)
7.2.3 遍历字典
python
# 遍历字典键值对
person = {"name": "李四", "age": 24, "job": "运维"}
for key, value in person.items():
print(f"键:{key},值:{value}")
7.3 循环控制关键字:break、continue
7.3.1 break:终止整个循环
循环内执行break,立即终止当前整个循环,不再执行后续循环次数。
python
# break实战:找到数字3,终止循环
for i in range(1, 6):
if i == 3:
print("找到数字3,终止循环")
break
print(i)
7.3.2 continue:跳过本次循环
循环内执行continue,跳过本次循环剩余代码,直接进入下一次循环。
python
# continue实战:跳过数字3,打印其他数字
for i in range(1, 6):
if i == 3:
print("跳过数字3")
continue
print(i)
7.4 循环嵌套
在一个循环内部嵌套另一个循环,外层循环执行一次,内层循环执行完整次数,适用于二维数据处理、图案打印等场景。
python
# 循环嵌套:打印九九乘法表
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}*{i}={i*j}", end="t")
# 换行
print()
7.5 for...else...与while...else...
Python循环支持搭配else语句,循环"正常执行完毕"(未通过break终止),则执行else语句块;若循环被break终止,else不执行。
python
# for...else...实战
for i in range(1, 4):
print(i)
else:
print("循环正常执行完毕,未被break终止")
八、pass语句:空语句,占位专用
pass是Python中的空语句,无任何执行逻辑,仅用作占位符,保证代码语法完整性,避免因代码块为空导致语法报错。
8.1 pass语句使用场景
-
条件语句空分支:暂时无需编写代码,预留分支;
-
循环语句空循环体:预留循环逻辑;
-
函数、类定义:预留函数体、类体。
8.2 pass语句实战
python
# 条件语句中使用pass
score = 75
if score >= 90:
print("优秀")
elif score >= 80:
# 暂时无需编写代码,用pass占位
pass
else:
print("及格以下")
# 循环语句中使用pass
for i in range(1, 5):
# 预留循环逻辑,暂不编写
pass
print("程序正常运行,pass无影响")
"注意":pass与注释不同,注释会被解释器忽略,pass是合法语句,参与语法解析,避免语法报错。
九、具体项目实战:基础语句综合应用
本文将结合前文所有知识点,打造三个实战项目,覆盖不同受众需求:自动化运维脚本、AI数据预处理小工具、成绩管理系统,所有代码可直接运行,贴合实际工作场景。
9.1 项目一:随机数猜数字游戏(全受众入门)
综合运用条件语句、循环语句、import模块、增量赋值,实现交互式猜数字游戏,适合新手巩固基础语法。
python
# 导入随机数模块
import random
# 生成1-100随机整数
target_num = random.randint(1, 100)
# 初始化猜测次数
guess_count = 0
print("=====猜数字游戏=====")
print("游戏规则:猜测1-100之间的整数")
# 循环猜数字,直到猜对为止
while True:
# 接收用户输入
user_input = input("请输入你猜测的数字:")
# 判断输入是否为数字
if not user_input.isdigit():
print("输入有误,请输入整数!")
continue
# 转换为整数类型
user_num = int(user_input)
# 猜测次数自增
guess_count += 1
# 条件判断:对比数字大小
if user_num == target_num:
print(f"恭喜你猜对了!答案是{target_num}")
print(f"本次猜测次数:{guess_count}")
# 猜对终止循环
break
elif user_num > target_num:
print("猜测数字偏大,请重试")
else:
print("猜测数字偏小,请重试")
9.2 项目二:运维自动化日志筛选脚本(运维专属)
综合运用for循环、条件判断、序列解包、布尔运算,实现日志关键词筛选,自动化定位异常日志,贴合运维日常工作。
python
# 模拟服务器日志数据
log_list = [
"2026-03-27 08:00:00 INFO 服务启动成功",
"2026-03-27 08:10:00 ERROR 数据库连接失败",
"2026-03-27 08:20:00 INFO 请求处理完成",
"2026-03-27 08:30:00 ERROR 端口占用",
"2026-03-27 08:40:00 INFO 服务运行正常"
]
# 运维筛选目标:筛选出异常ERROR日志
print("=====异常日志筛选结果=====")
# 遍历日志
for log in log_list:
# 条件判断:筛选包含ERROR的日志
if "ERROR" in log:
print(log)
# 统计正常与异常日志数量
error_count = 0
info_count = 0
for log in log_list:
if "ERROR" in log:
error_count += 1
elif "INFO" in log:
info_count += 1
print(f"正常日志数量:{info_count}")
print(f"异常日志数量:{error_count}")
9.3 项目三:AI数据预处理-数据清洗工具(AI爱好者专属)
综合运用循环、条件、字典、序列解包,实现AI训练数据的清洗,过滤异常数据,为模型训练做准备。
python
# 模拟AI训练原始数据(包含异常值)
ai_data = [
{"name": "数据1", "value": 25, "label": 0},
{"name": "数据2", "value": -5, "label": 1}, # 异常值:负数
{"name": "数据3", "value": 30, "label": 0},
{"name": "数据4", "value": 100, "label": 2}, # 异常值:超出范围
{"name": "数据5", "value": 28, "label": 1}
]
# 数据清洗规则:value值在0-50之间为有效数据
clean_data = []
# 遍历原始数据
for data in ai_data:
# 序列解包获取数据值
value = data["value"]
# 条件判断:过滤异常数据
if 0 <= value <= 50:
clean_data.append(data)
else:
print(f"过滤异常数据:{data}")
print("=====清洗后有效AI数据=====")
for item in clean_data:
print(item)
十、常见面试题汇总:夯实基础,备战面试
本文整理Python条件、循环、基础语句高频面试题,覆盖校招、社招、运维、后端、AI岗位笔试真题,附带详细答案解析,助力快速应对面试。
10.1 基础语法面试题
10.1.1 Python语句块的划分依据是什么?缩进有什么规范?
"答案":Python通过"缩进"划分语句块,无需大括号;缩进规范为统一使用4个空格,禁止Tab与空格混合,多层嵌套逐层缩进,冒号代表语句块开始,必须缩进。
10.1.2 pass语句的作用是什么?与注释有什么区别?
"答案":pass是空语句,用作占位符,保证代码语法完整,不会报错;注释是对代码的解释,会被解释器忽略,若代码块为空仅写注释,会报语法错误。
10.1.3 == 和 is 的区别是什么?
"答案":==判断两个变量的值是否相等;is判断两个变量是否指向同一个内存地址(是否为同一个对象),不可变类型(数字、字符串)会复用内存地址,可变类型地址不同。
10.2 条件语句面试题
10.2.1 简述if...elif...else...执行逻辑,多分支中elif可以省略吗?
"答案":多分支条件从上到下依次判断,满足某个条件则执行对应语句块,后续条件不再判断;elif可以省略,仅保留if和else即可,else也可省略。
10.2.2 什么是三元表达式?写出三元表达式语法。
"答案":三元表达式是简化双分支条件的单行写法,语法:变量 = 条件成立结果 if 判断条件 else 条件不成立结果。
10.3 循环语句面试题
10.3.1 while循环和for循环的区别是什么?各自适用场景?
"答案":while循环是条件循环,需手动更新循环条件,适用于未知循环次数的场景;for循环是遍历循环,遍历可迭代对象,无需手动更新条件,适用于已知循环次数、遍历序列的场景。
10.3.2 break和continue的区别是什么?
"答案":break终止整个循环,不再执行后续循环;continue仅跳过本次循环剩余代码,直接进入下一次循环。
10.3.3 for...else...中else何时执行?
"答案":for循环正常执行完毕,未通过break终止循环时,else语句块执行;若循环被break打断,else不执行。
10.4 赋值语句面试题
10.4.1 什么是序列解包?*号在序列解包中的作用?
"答案":序列解包是将可迭代对象元素一次性赋值给多个变量;*号用于接收多余元素,返回列表,解决变量数量与序列元素数量不匹配的问题。
10.5 综合编程面试题
10.5.1 编写代码:计算1-100所有偶数之和
"答案":
python
# 方法1:for循环+条件判断
total = 0
for i in range(1, 101):
if i % 2 == 0:
total += i
print(total)
# 方法2:range步长实现
total = 0
for i in range(2, 101, 2):
total += i
print(total)
10.5.2 编写代码:打印九九乘法表
"答案":详见前文循环嵌套章节代码。
结语
Python基础语句是编程的核心根基,无论是AI开发、后端业务编写、运维自动化还是前端辅助脚本,都离不开条件、循环、赋值、模块导入等基础语法。本文从工具选型、基础语法、高级用法、实战项目、面试真题全方位讲解,覆盖各类开发者学习需求,代码可直接运行、知识点通俗易懂。
学习Python基础语句,核心在于多练习、多实战,将语法知识点融入实际项目中,养成规范的编码习惯,避免语法错误。后续可在此基础上,深入学习函数、类、模块、异常处理等进阶知识点,逐步成长为专业Python开发工程师。
🙌 感谢你读到这里!
🔍 技术之路没有捷径,但每一次阅读、思考和实践,都在悄悄拉近您与目标的距离。
💡 如果本文对你有帮助,不妨 👍 点赞、📌 收藏、📤 分享 给更多需要的朋友!
💬 欢迎在评论区留下你的想法、疑问或建议,我会一一回复,我们一起交流、共同成长 🌿
🔔 关注我,不错过下一篇干货!我们下期再见!✨