中国队世界杯_2014世界杯德国 - dyhdcw.com

Python循环语句全解析

一、循环概述

1. 为什么需要循环?

假设我们需要打印 1 到 5 的数字,如果没有循环,代码会是这样的:

print(1)

print(2)

print(3)

print(4)

print(5)

如果要打印 1 到 1000,这样写显然不现实。循环的作用就是用少量代码实现重复操作。

二、for 循环(最常用)

for 循环用于遍历可迭代对象(如列表、字符串、字典等),每次循环取出可迭代对象中的一个元素执行代码块。

1. 基本语法

for 变量 in 可迭代对象:

# 循环体代码块(注意缩进)

执行语句

变量:每次循环会被赋值为可迭代对象中的当前元素。

可迭代对象:可以被 “逐个访问” 的对象,如列表 [1,2,3]、字符串 "hello" 等。

缩进:Python 用缩进(通常 4 个空格)表示代码块,循环体必须缩进。

例子:遍历列表打印元素

fruits = ["苹果", "香蕉", "橙子"]

for fruit in fruits:

print(f"当前水果:{fruit}")

代码解释:

第一次循环:fruit = "苹果",打印 当前水果:苹果。

第二次循环:fruit = "香蕉",打印 当前水果:香蕉。

第三次循环:fruit = "橙子",打印 当前水果:橙子。

2. range() 函数:生成数字序列

for 循环常搭配 range() 函数使用,用于生成指定范围的数字序列。

range() 的三种用法

语法

说明

示例

生成的序列

range(stop)

从 0 开始,到 stop-1 结束

range(5)

0,1,2,3,4

range(start, stop)

从 start 开始,到 stop-1 结束

range(2, 6)

2,3,4,5

range(start, stop, step)

从 start 开始,步长为 step

range(1, 10, 2)

1,3,5,7,9

例子 1:打印 1 到 5

for i in range(1, 6): # 注意:stop 是 6,所以到 5 结束

print(i)

例子 2:打印 10 以内的偶数(步长为 2)

for i in range(0, 11, 2):

print(i) # 输出:0,2,4,6,8,10

3. 遍历常见可迭代对象

(1)遍历字符串:逐个访问字符

text = "Python"

for char in text:

print(char) # 依次输出:P, y, t, h, o, n

(2)遍历字典:键、值、键值对

字典有三种遍历方式,需根据需求选择:

dict.keys():遍历所有键

dict.values():遍历所有值

dict.items():遍历键值对(最常用)

student = {"name": "张三", "age": 20, "city": "北京"}

# 方式 1:遍历键

print("--- 键 ---")

for key in student.keys():

print(key) # 输出:name, age, city

# 方式 2:遍历值

print("--- 值 ---")

for value in student.values():

print(value) # 输出:张三, 20, 北京

# 方式 3:遍历键值对(推荐)

print("--- 键值对 ---")

for key, value in student.items():

print(f"{key}: {value}")

三、while 循环:条件控制循环

while 循环会在条件为 True 时持续执行,直到条件变为 False。

1. 基本语法

while 条件:

# 循环体

执行语句

条件:一个布尔表达式(结果为 True 或 False)。

注意:如果条件永远为 True,会变成无限循环(需用 break 终止)。

例子:打印 1 到 5

count = 1 # 初始化计数器

while count <= 5: # 条件:count 小于等于 5

print(count)

count += 1 # 计数器加 1(关键!否则会无限循环)

代码解释:

初始 count = 1,条件 1 <= 5 为 True,打印 1,count 变为 2。

直到 count = 6,条件 6 <= 5 为 False,循环结束。

2. 无限循环与 break

如果需要循环一直执行直到满足某个条件才停止,可以用 while True 配合 break。

例子:用户输入密码,直到正确为止

correct_password = "123456"

while True: # 无限循环

user_input = input("请输入密码:")

if user_input == correct_password:

print("密码正确!")

break # 终止循环

else:

print("密码错误,请重试。")

四、循环控制语句:break、continue、pass

1. break:终止整个循环

break 会立即跳出当前所在的循环,不再执行剩余的循环次数。

例子:遍历列表,遇到 "橙子" 就停止

fruits = ["苹果", "香蕉", "橙子", "葡萄"]

for fruit in fruits:

if fruit == "橙子":

break # 遇到橙子,终止循环

print(fruit)

# 输出:苹果, 香蕉

2. continue:跳过当前循环,继续下一次

continue 会跳过当前循环的剩余代码,直接进入下一次循环。

例子:打印 1 到 10 中的奇数(跳过偶数)

for i in range(1, 11):

if i % 2 == 0: # 如果是偶数

continue # 跳过本次循环,不执行下面的 print

print(i)

# 输出:1,3,5,7,9

3. pass:占位符(不执行任何操作)

pass 是一个空语句,仅用于占位,避免语法错误(比如循环体暂时没想好写什么时)。

例子:

for i in range(5):

pass # 这里暂时不写代码,用 pass 占位,不会报错

五、循环的 else 子句(Python 特色)

Python 的循环可以搭配 else 使用,仅当循环 “正常结束”(即没有被 break 中断)时,else 块才会执行。

例子:查找列表中的元素

numbers = [1, 3, 5, 7, 9]

target = 4

for num in numbers:

if num == target:

print(f"找到目标:{target}")

break # 找到后 break,循环非正常结束

else:

# 只有循环正常结束(没被 break)才会执行这里

print(f"未找到目标:{target}")

输出:未找到目标:4(因为 4 不在列表中,循环正常结束)。

六、嵌套循环:循环里套循环

嵌套循环是指在一个循环内部再写另一个循环,外层循环执行一次,内层循环执行完整的一轮。

经典例子:打印 9x9 乘法口诀表

for i in range(1, 10): # 外层循环:控制行(1 到 9)

for j in range(1, i + 1): # 内层循环:控制列(1 到 i)

print(f"{j}x{i}={i*j}\t", end="") # \t 是制表符,end="" 表示不换行

print() # 内层循环结束后换行

输出片段:

1x1=1

1x2=2 2x2=4

1x3=3 2x3=6 3x3=9

...

七、循环实用技巧

1. enumerate():同时获取索引和元素

遍历列表时,如果需要同时知道元素的索引(位置),可以用 enumerate()。

fruits = ["苹果", "香蕉", "橙子"]

for index, fruit in enumerate(fruits):

print(f"索引 {index}:{fruit}")

输出:

索引 0:苹果

索引 1:香蕉

索引 2:橙子

2. zip():同时遍历多个可迭代对象

如果需要同时遍历两个或多个列表(比如配对姓名和年龄),可以用 zip()。

names = ["张三", "李四", "王五"]

ages = [20, 25, 30]

for name, age in zip(names, ages):

print(f"{name} 的年龄是 {age}")

输出:

张三 的年龄是 20

李四 的年龄是 25

王五 的年龄是 30

3. 列表推导式:用一行代码生成列表(循环的简化版)

列表推导式是 Python 中快速生成列表的语法,本质是 for 循环的简化。

语法:

[表达式 for 变量 in 可迭代对象 if 条件]

例子 1:生成 1 到 10 的平方列表

# 普通写法

squares = []

for i in range(1, 11):

squares.append(i ** 2)

# 列表推导式写法(一行搞定)

squares = [i ** 2 for i in range(1, 11)]

print(squares) # 输出:[1,4,9,16,25,36,49,64,81,100]

例子 2:生成 1 到 10 中的偶数平方列表

even_squares = [i ** 2 for i in range(1, 11) if i % 2 == 0]

print(even_squares) # 输出:[4,16,36,64,100]

八、综合练习:统计文本中单词出现次数

现在用所学知识写一个实用程序:统计一段文本中每个单词的出现次数。

text = "hello world hello python world python python"

# 1. 将文本按空格分割成单词列表

words = text.split() # split() 默认按空格分割

# 2. 初始化空字典,用于存储“单词: 次数”

word_count = {}

# 3. 遍历单词列表,统计次数

for word in words:

if word in word_count:

# 如果单词已在字典中,次数加 1

word_count[word] += 1

else:

# 如果单词不在字典中,添加并设次数为 1

word_count[word] = 1

# 4. 打印结果

for word, count in word_count.items():

print(f"'{word}' 出现了 {count} 次")

输出:

'hello' 出现了 2 次

'world' 出现了 2 次

'python' 出现了 3 次

总结

for 循环:适合遍历可迭代对象(列表、字符串等)或已知循环次数的场景,常搭配 range() 使用。

while 循环:适合条件控制的循环,注意避免无限循环(除非用 break 终止)。

控制语句:break 终止循环,continue 跳过当前循环,pass 占位。

else 子句:仅当循环正常结束(未被 break 中断)时执行。

实用技巧:enumerate() 取索引,zip() 同时遍历多个对象,列表推导式简化代码。

需要我帮你针对某个具体场景写循环代码吗?比如批量处理文件、数据筛选等

Copyright © 2022 中国队世界杯_2014世界杯德国 - dyhdcw.com All Rights Reserved.