第五章:Python3 之 条件、循环和其他语句


文章目录

  • 一、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语句使用注意事项

  1. import语句建议写在代码文件顶部,遵循Python编码规范;

  2. 先导入内置模块,再导入第三方模块,最后导入自定义模块;

  3. 避免使用from...import*,防止变量、函数命名冲突;

  4. 导入模块时,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 语句块缩进规则

  1. 语句块(条件语句内、循环语句内、函数内、类内)必须缩进,通常使用4个空格或者1个Tab键(推荐4个空格);

  2. 同一级别的代码块,缩进必须一致;

  3. 冒号:代表语句块开始,下一行必须进行缩进;

  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 语句块缩进规范

  1. 统一缩进格式,禁止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语句使用场景

  1. 条件语句空分支:暂时无需编写代码,预留分支;

  2. 循环语句空循环体:预留循环逻辑;

  3. 函数、类定义:预留函数体、类体。

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开发工程师。

🙌 感谢你读到这里!

🔍 技术之路没有捷径,但每一次阅读、思考和实践,都在悄悄拉近您与目标的距离。

💡 如果本文对你有帮助,不妨 👍 点赞、📌 收藏、📤 分享 给更多需要的朋友!

💬 欢迎在评论区留下你的想法、疑问或建议,我会一一回复,我们一起交流、共同成长 🌿

🔔 关注我,不错过下一篇干货!我们下期再见!✨

相关推荐
凌云之程2 小时前
避坑宝典:PyTorch最简安装路径(含CUDA + VSCode + 中文手册)
pytorch·python·conda·安装
WHS-_-20222 小时前
LDM代码学习日记
ide·python·pycharm
凌盛羽2 小时前
使用python绘图分析电池充电曲线
开发语言·python·stm32·单片机·fpga开发·51单片机
互联网时光机3 小时前
TikToken 使用教程:从原理到实战,一文搞懂 OpenAI 的文本分词利器
人工智能·python
zzwq.3 小时前
Anaconda创建虚拟环境以及与pycharm关联
python·pycharm
ZTLJQ3 小时前
数据的另一面:Python中NoSQL数据库完全解析
开发语言·python·nosql
XiYang-DING3 小时前
【Java SE】泛型(Generics)
java·windows·python
Predestination王瀞潞3 小时前
Base Tools-Associate-Second:CSV库详解
python·csv
紫丁香3 小时前
03-Flask请求上下文响应与错误处理机制深度解析
后端·python·flask