Python 基础教程:for 循环与 while 循环详解
在编程中,循环结构是控制程序流程的核心机制之一。通过循环,我们可以重复执行某段代码,直到满足特定条件为止。Python 提供了两种主要的循环语句: 循环和 循环。本文将详细介绍它们的语法、用法、控制流关键字以及在实际项目中的应用。
Python 循环结构包括 for 和 while。for 用于已知次数迭代,while 用于条件满足时循环。涵盖语法、break/continue 控制流、嵌套循环应用及 random 模块实战案例,包含猜年龄、车牌生成等示例,帮助掌握基础逻辑控制。

在编程中,循环结构是控制程序流程的核心机制之一。通过循环,我们可以重复执行某段代码,直到满足特定条件为止。Python 提供了两种主要的循环语句: 循环和 循环。本文将详细介绍它们的语法、用法、控制流关键字以及在实际项目中的应用。
forwhilefor 循环通常用于遍历序列(如列表、元组、字符串)或范围。其基本语法如下:
for i in range(10):
print(i)
上述代码会输出 0 到 9 的数字,共循环 10 次。range(10) 生成一个从 0 开始到 9 结束的整数序列。每次迭代时,变量 i 会自动获取序列中的下一个元素。
range() 函数可以接受 1 到 3 个参数:
range(stop): 从 0 开始到 stop-1。range(start, stop): 从 start 开始到 stop-1。range(start, stop, step): 指定步长 step。示例:
# 打印 2 到 10 的偶数
for i in range(2, 11, 2):
print(i)
需求:最多允许用户猜三次,猜对后退出程序。
age = 38
for i in range(3):
guess = int(input("猜测的年龄:"))
if guess > age:
print("猜大了")
elif guess < age:
print("猜小了")
else:
print("猜对了")
break
else:
print("三次机会用完,游戏结束")
注意:这里使用了 else 子句,当循环正常结束(未被 break 中断)时执行。
打印 50 到 100 之间的奇数和偶数。
# 打印奇数
for i in range(50, 100):
if i % 2 == 1:
print(i)
# 打印偶数
for i in range(50, 100):
if i % 2 == 0:
print(i)
嵌套循环常用于处理二维数据或复杂逻辑,例如冒泡排序。
number = [6, 7, 4, 2, 1, 3, 5]
for i in range(len(number) - 1):
for j in range(len(number) - 1 - i):
if number[j] > number[j + 1]:
tmp = number[j]
number[j] = number[j + 1]
number[j + 1] = tmp
print(number)
在循环过程中,我们可能需要提前终止当前迭代或整个循环。
continue 用于跳过本次循环剩余的代码,直接进入下一次迭代。
# 打印楼层号,跳过第三层
for i in range(1, 6):
for j in range(1, 3):
if i == 3:
continue
print(f"{i}层-{i}0{j}室")
break 用于立即终止当前所在的整个循环。
# 遇到第二层第二室时停止
for i in range(1, 6):
for j in range(1, 3):
if i == 2 and j == 2:
break
print(f"{i}层-{i}0{j}室")
利用循环嵌套可以绘制各种图形,如三角形。
# 正三角形
for i in range(1, 6):
print("*" * i)
# 倒三角形
for i in range(4, 0, -1):
print("*" * i)
while 循环基于条件判断,适合循环次数不确定的场景。
while 条件:
# 循环体
如果条件永远为真,将导致死循环。需配合 break 使用。
count = 0
while True:
print(f"第{count}次循环")
count += 1
if count >= 5:
break
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{i}*{j}={i*j}", end=" ")
print()
guess_age = 30
guess_num = 0
while True:
guess_num += 1
if guess_num <= 3:
guess = int(input("请输入猜的数字:"))
if guess < guess_age:
print("数字猜小了")
elif guess > guess_age:
print("数字猜大了")
else:
print("恭喜猜对了")
break
else:
choice = input("错三次了,你还想继续猜吗?[yes/no]")
if choice != "yes":
break
用于生成随机数或随机选择元素。
import random
a = random.choice("abcdefghigk")
s = random.sample("asdfghjklzxcv", 5)
i = random.randint(1, 100)
提供常用字符集合。
import string
letters = string.ascii_letters
digits = string.digits
模拟车牌生成与选择。
import random
import string
tmp = string.digits + string.ascii_uppercase
count = 3
while count > 0:
count -= 1
num_list = []
for _ in range(20):
car_code = random.choice(string.ascii_uppercase)
car_num = f"京{car_code}-{''.join(random.sample(tmp, 5))}"
num_list.append(car_num)
print(car_num)
choice = input("choice:").strip()
if choice in num_list:
print(f"恭喜你选购成功,您的车牌为{choice}")
break
else:
print(f"未选中,还有{count}次机会")
模拟员工抽奖,确保每人只中一次奖。
import random
employees = list(range(1, 301))
# 一等奖
for _ in range(3):
winner = random.choice(employees)
print(f"一等奖:{winner}")
employees.remove(winner)
# 二等奖
for _ in range(6):
winner = random.choice(employees)
print(f"二等奖:{winner}")
employees.remove(winner)
while 循环务必设置退出条件。本文系统讲解了 Python 中的 for 和 while 循环,涵盖了基础语法、控制流关键字 break/continue、嵌套循环应用以及标准库模块的实战案例。掌握这些内容有助于编写高效、逻辑清晰的程序。建议读者多动手练习,结合实际问题加深理解。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online