news 2026/9/14 22:01:04

Python3条件与循环语句详解及实战应用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python3条件与循环语句详解及实战应用

1. Python3条件语句详解

1.1 if语句基础语法

Python中的条件判断主要通过if语句实现,其基本语法结构如下:

if 条件表达式: # 条件为True时执行的代码块

这里的条件表达式可以是任何返回布尔值的表达式。当表达式结果为True时,执行缩进的代码块;否则跳过。例如:

age = 18 if age >= 18: print("您已成年,可以进入")

注意:Python使用缩进(通常是4个空格)来标识代码块,这是Python语法的重要特征,不同于其他语言使用大括号的方式。

1.2 if-else语句

当需要处理条件不成立的情况时,可以使用if-else结构:

if 条件表达式: # 条件为True时执行 else: # 条件为False时执行

实际应用示例:

score = 85 if score >= 60: print("考试及格") else: print("考试不及格")

1.3 if-elif-else多重判断

对于多个条件判断,可以使用if-elif-else结构:

if 条件1: # 条件1为True时执行 elif 条件2: # 条件2为True时执行 else: # 以上条件都不满足时执行

这种结构会按顺序检查每个条件,一旦某个条件满足,就执行对应的代码块并跳过其余判断。例如:

temperature = 25 if temperature > 30: print("天气炎热") elif temperature > 20: print("天气温暖") elif temperature > 10: print("天气凉爽") else: print("天气寒冷")

1.4 条件表达式的深入理解

Python的条件表达式非常灵活,可以包含:

  1. 比较运算符:==,!=,>,<,>=,<=
  2. 逻辑运算符:and,or,not
  3. 成员运算符:in,not in
  4. 身份运算符:is,is not

复杂条件示例:

age = 25 height = 175 if (18 <= age <= 35) and (height >= 170 or height <= 160): print("符合特殊岗位要求")

1.5 条件语句的嵌套

条件语句可以多层嵌套,但为了代码可读性,一般不建议超过3层:

num = 15 if num % 2 == 0: if num % 3 == 0: print("能被2和3整除") else: print("能被2整除但不能被3整除") else: if num % 3 == 0: print("不能被2整除但能被3整除") else: print("既不能被2也不能被3整除")

2. Python3循环语句全面解析

2.1 while循环详解

while循环在条件为True时重复执行代码块:

while 条件表达式: # 循环体

基础示例:

count = 0 while count < 5: print(f"当前计数: {count}") count += 1
2.1.1 无限循环与中断

有时我们需要创建无限循环,然后通过条件中断:

while True: user_input = input("请输入命令(q退出): ") if user_input == 'q': break print(f"执行命令: {user_input}")

提示:在开发环境中,可以使用Ctrl+C强制终止无限循环。

2.1.2 while-else结构

while循环也可以有else子句,当循环正常结束(非break中断)时执行:

n = 5 while n > 0: print(n) n -= 1 else: print("循环正常结束")

2.2 for循环深入探讨

for循环用于遍历序列(如列表、字符串等)或其他可迭代对象:

for 变量 in 可迭代对象: # 循环体
2.2.1 基础遍历示例
fruits = ['apple', 'banana', 'orange'] for fruit in fruits: print(f"我喜欢吃{fruit}")
2.2.2 range()函数的使用

range()生成整数序列,常用于控制循环次数:

for i in range(5): # 0到4 print(i) for i in range(2, 6): # 2到5 print(i) for i in range(0, 10, 2): # 0到9,步长2 print(i)
2.2.3 enumerate()获取索引

需要同时获取索引和值时,可以使用enumerate():

fruits = ['apple', 'banana', 'orange'] for index, fruit in enumerate(fruits): print(f"索引{index}处的水果是{fruit}")
2.2.4 for-else结构

与while类似,for循环也可以有else子句:

for i in range(5): print(i) else: print("循环完整执行完毕")

2.3 循环控制语句

2.3.1 break语句

break用于立即退出当前循环:

for num in range(10): if num == 5: break print(num) # 只打印0-4
2.3.2 continue语句

continue跳过当前迭代,进入下一次循环:

for num in range(10): if num % 2 == 0: continue print(num) # 只打印奇数
2.3.3 pass语句

pass是空操作语句,用于语法上需要语句但实际不需要操作的情况:

for num in range(5): if num == 3: pass # 什么都不做 print(num)

3. 循环嵌套与高级应用

3.1 循环嵌套原理

循环可以多层嵌套,但要注意控制嵌套深度(一般不超过3层):

for i in range(3): for j in range(3): print(f"i={i}, j={j}")

3.2 经典案例:九九乘法表

for i in range(1, 10): for j in range(1, i+1): print(f"{j}x{i}={i*j}", end="\t") print() # 换行

3.3 列表推导式中的循环

列表推导式可以简洁地创建列表:

# 生成平方数列表 squares = [x**2 for x in range(10)] # 带条件的列表推导式 even_squares = [x**2 for x in range(10) if x % 2 == 0]

3.4 循环优化技巧

  1. 尽量减少循环内部的计算:

    # 不推荐 for i in range(len(data)): result = complex_calculation(data[i]) # 推荐 calculation_cache = [complex_calculation(x) for x in data] for i in range(len(data)): result = calculation_cache[i]
  2. 使用zip()并行遍历多个序列:

    names = ['Alice', 'Bob', 'Charlie'] ages = [25, 30, 35] for name, age in zip(names, ages): print(f"{name} is {age} years old")

4. 条件与循环的综合应用

4.1 质数判断程序

num = 17 if num > 1: for i in range(2, int(num**0.5)+1): if num % i == 0: print(f"{num}不是质数") break else: print(f"{num}是质数") else: print(f"{num}不是质数")

4.2 猜数字游戏

import random target = random.randint(1, 100) attempts = 0 while True: guess = int(input("猜一个1-100的数字: ")) attempts += 1 if guess < target: print("猜小了") elif guess > target: print("猜大了") else: print(f"恭喜!你用了{attempts}次猜对了") break

4.3 冒泡排序算法

def bubble_sort(arr): n = len(arr) for i in range(n-1): for j in range(n-i-1): if arr[j] > arr[j+1]: arr[j], arr[j+1] = arr[j+1], arr[j] return arr numbers = [64, 34, 25, 12, 22, 11, 90] print("排序前:", numbers) print("排序后:", bubble_sort(numbers.copy()))

4.4 选择排序算法

def selection_sort(arr): for i in range(len(arr)): min_idx = i for j in range(i+1, len(arr)): if arr[j] < arr[min_idx]: min_idx = j arr[i], arr[min_idx] = arr[min_idx], arr[i] return arr numbers = [64, 34, 25, 12, 22, 11, 90] print("排序前:", numbers) print("排序后:", selection_sort(numbers.copy()))

5. 常见问题与调试技巧

5.1 条件语句常见错误

  1. 误用赋值运算符=代替比较运算符==

    # 错误写法 if x = 5: # 会报语法错误 print("x等于5") # 正确写法 if x == 5: print("x等于5")
  2. 忘记冒号:

    # 错误写法 if x > 0 # 缺少冒号 print("x是正数")

5.2 循环语句常见问题

  1. 无限循环:

    # 错误示例 - 忘记更新循环变量 count = 0 while count < 5: print(count) # 缺少 count += 1
  2. 修改正在遍历的列表:

    # 危险操作 numbers = [1, 2, 3, 4] for num in numbers: if num % 2 == 0: numbers.remove(num) # 会跳过某些元素

5.3 调试技巧

  1. 使用print调试:

    for i in range(5): print(f"循环开始,i={i}") # 调试输出 # 其他代码 print(f"循环结束,i={i}") # 调试输出
  2. 使用断言检查条件:

    def calculate_average(numbers): assert len(numbers) > 0, "列表不能为空" return sum(numbers) / len(numbers)
  3. 使用日志记录:

    import logging logging.basicConfig(level=logging.DEBUG) for i in range(3): logging.debug(f"当前i值: {i}") # 其他代码

6. 性能优化与最佳实践

6.1 循环性能优化

  1. 尽量减少循环内部的计算:

    # 不推荐 for i in range(len(data)): result = complex_calculation(data[i]) # 推荐 calculation_cache = [complex_calculation(x) for x in data] for i in range(len(data)): result = calculation_cache[i]
  2. 使用内置函数替代显式循环:

    # 不推荐 total = 0 for num in numbers: total += num # 推荐 total = sum(numbers)

6.2 条件语句最佳实践

  1. 避免过深的嵌套:

    # 不推荐 if condition1: if condition2: if condition3: # 代码 # 推荐 if not condition1: return if not condition2: return if not condition3: return # 主要代码
  2. 使用字典替代复杂的if-elif链:

    # 不推荐 if color == 'red': action = 'stop' elif color == 'green': action = 'go' elif color == 'yellow': action = 'caution' # 推荐 color_actions = { 'red': 'stop', 'green': 'go', 'yellow': 'caution' } action = color_actions.get(color, 'unknown')

6.3 代码可读性建议

  1. 为复杂条件添加解释性变量:

    # 不易读 if (age >= 18 and has_license) or (age >= 16 and with_parent): allow_driving = True # 更清晰 is_adult_with_license = age >= 18 and has_license is_teen_with_parent = age >= 16 and with_parent allow_driving = is_adult_with_license or is_teen_with_parent
  2. 保持一致的缩进风格(通常4个空格):

    # 不推荐 - 混用空格和制表符 if condition: print("Hello") print("World") # 推荐 - 统一使用4个空格 if condition: print("Hello") print("World")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 22:00:41

高效年终总结:数据驱动与结构化写作指南

1. 年度总结的价值与意义每到岁末年初&#xff0c;写年终总结这件事就会成为职场人和学生党热议的话题。作为一个连续七年坚持写年终总结的"老手"&#xff0c;我深刻体会到这种仪式感带来的价值远超想象。年终总结不是简单的流水账&#xff0c;而是一次系统性的自我审…

作者头像 李华
网站建设 2026/9/14 21:59:35

Python办公自动化实战:Excel、Word与网页数据处理

1. Python自动化办公全景解析在职场中&#xff0c;Excel表格处理、Word文档编辑和网页数据采集占据了大量工作时间。我曾用3天时间手工整理过200份财务报表&#xff0c;直到发现Python的自动化能力——现在同样工作只需15分钟。这不是魔法&#xff0c;而是每个职场人都能掌握的…

作者头像 李华
网站建设 2026/9/14 21:59:12

Linux基本命令2

man 语法&#xff1a;man [ 选项 ] 命令 man手册分为9章 是普通的命令是系统调⽤,如open,write之类的(通过这个&#xff0c;⾄少可以很⽅便的查到调⽤这个函数&#xff0c;需要加什么 头⽂件)是库函数,如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件 man printf #…

作者头像 李华
网站建设 2026/9/14 21:59:08

GitHub Trending深度观察:热榜机制与开源项目落地指南

每天早上打开电脑&#xff0c;我第一件事不是刷即时消息&#xff0c;而是先扫一眼GitHub Trending。今天&#xff08;2026年9月11日&#xff09;这期日榜我盯了十分钟&#xff0c;越看越有种"技术风向标又换了一茬"的感觉。榜单上AI工具依然占据了半壁江山&#xff0…

作者头像 李华
网站建设 2026/9/14 21:58:19

社区志愿者服务管理系统从项目发现、报名审核到队伍协作的完整业务闭环55014

社区志愿者服务管理系统 从项目发现、报名审核到队伍协作的完整业务闭环把分散的活动通知、报名信息、队伍申请与志愿风采沉淀到一个统一平台&#xff0c;让志愿者更容易找到活动&#xff0c;也让管理端能够持续追踪和审核服务过程。活动链路浏览 报名 审核队伍协作申请 审核…

作者头像 李华
网站建设 2026/9/14 21:58:17

传统算法和ai去除人声的对比

Audacity 打开立体声文件&#xff0c;全选轨道&#xff0c;然后 Effect → Vocal Reduction and Isolation&#xff0c;Action 选 Remove Vocals&#xff0c;导出。Audacity 3.2 把 Effect 菜单改成了子菜单&#xff0c;所以新版本要到 Effect → Special 里找&#xff1b;2.x…

作者头像 李华