学习的忙碌与辛苦,本就是人生的一种常态,而坚持下来的人,终会看见光。
学习打卡第十六天
学习目标:
- 掌握for循环和while循环的完整语法结构
- 理解循环变量的作用域和生命周期
- 能够熟练使用range()函数生成序列
- 掌握break、continue和else子句的配合使用
- 能够编写多层嵌套循环程序
- 理解无限循环的创建与终止方法
在 Python 编程中,循环语句是实现重复操作的核心工具。掌握循环语句的使用,能够让我们高效地处理批量数据、实现复杂逻辑。本文将详细学习 Python3 中的两种循环语句------while 和 for,以及与循环相关的控制语句,全面掌握循环的用法。
一、for循环
遍历可迭代对象
- **遍历(Iteration):**是指依次访问容器中每个元素的过程。遍历是编程中最基本的操作之一,常用于处理列表、元组、字典、集合等数据结构中的所有元素。
- 可迭代对象(Iterable): 是指可以被迭代访问的对象。这类对象实现了
__iter__()方法,或者实现了__getitem__()方法,并且可以通过for循环进行遍历。可迭代对象并不一定是可以直接访问元素的容器,但它能够返回一个迭代器(Iterator)来逐个访问其元素。常见的可迭代对象包括:列表(list) 元组(tuple) 字符串(str)
字典(dict) 集合(set) 生成器(generator)
1.for循环基本语法结构
for 变量名 in 可迭代对象:
循环体(缩进代码块)
else:
循环正常结束后的代码(可选)
else部分为可选
2.for循环实例
2.1列表:有序集合
python
my_list = ["Baidu", "Google", "xcLeigh", "Taobao"]
for i in my_list :
print(i, end=' ')
# 输出:Baidu Google xcLeigh Taobao
代码解释:print()默认的输出格式为换行,后面的end=' '是设置了不换行,用两个空格隔开输出
2.2元组:不可变序列
python
colors = ("红", "绿", "蓝")
for color in colors:
print(f"颜色:{color}", end=',')
输出:颜色:红,颜色:绿,颜色:蓝,
2.3字符串:字符序列
python
text = "Python"
for char in text:
print(f"字符:{char}", end=',')
输出:字符:P,字符:y,字符:t,字符:h,字符:o,字符:n,
2.4字典:键值对集合
python
student = {"name": "张三", "age": 18, "grade": "A"}
for key, value in student.items():
print(f"{key}: {value}", end=' ')
输出:name: 张三 age: 18 grade: A
3.range() 函数详解
作用:生成数字序列
range()函数用于生成整数序列,常与for循环配合使用,语法如下:
range(stop):生成 0 到stop-1的序列。range(start, stop):生成start到stop-1的序列。range(start, stop, step):生成start到stop-1的序列,步长为step(可正可负)。
python
# 基本用法:range(stop)
for i in range(5):
print(i) # 0,1,2,3,4
# 带起始值:range(start, stop)
for i in range(2, 6):
print(i) # 2,3,4,5
# 带步长:range(start, stop, step)
for i in range(0, 10, 2):
print(i) # 0,2,4,6,8
for i in range(10, 0, -1): # 倒序
print(i)
4.进阶用法
结合 len() 遍历序列索引
python
a = ["Baidu", "Google", "xcLeigh", "Taobao"]
for i in range(len(a)):
print(i, a[i]) # 输出索引和对应元素
5.for...else 语句:循环结束后执行
for 循环的 else 子句在遍历完所有元素后执行,若循环被 break 中断,则不执行。
5.1正常遍历结束
python
for x in range(6):
print(x)
else:
print("循环结束后执行!") # 遍历完所有元素后执行
# 输出:0 1 2 3 4 5 循环结束后执行!
5.2break 中断循环(else 不执行)
python
my_list = ["Baidu", "Google", "xcLeigh", "Taobao"]
for i in my_list:
if i == "xcLeigh":
print("xcLeigh教程!")
break # 中断循环
print("循环数据 " + i)
else:
print("这条语句因break不会被执行!") # 不会执行
print("完成循环!")
# 输出如下:
'''
循环数据 Baidu
循环数据 Google
xcLeigh教程!
完成循环!
'''
6.循环变量作用域
演示作用域问题
python
x = 10
for x in range(5):
print(x) # 0,1,2,3,4
print(x) # 输出10(循环外部的x未被修改)
说明:这里for循环内定义的变量x只在for循环内起作用,不影响外面的x变量
二、while 循环
满足条件就重复执行
while 循环的核心思想是:只要条件成立,就不断执行循环体内的语句。
1.基本语法
while 判断条件(condition):
执行语句(statements)......
注意 :条件后面的冒号
:不能省略,循环体需要缩进(通常为 4 个空格)。Python 中没有
do..while循环,所有类似需求都通过while实现。
2.无限循环与终止
2.1创建无限循环
python
while True:
user_input = input("输入'exit'退出:")
if user_input == 'exit':
break
2.2使用标志变量
python
running = True
while running:
# 处理任务
if some_condition:
running = False
3循环控制变量
3.1计数器模式
python
count = 0
while count < 5:
print(f"计数:{count}")
count += 1
3.2递减计数器
python
down_count = 5
while down_count > 0:
print(f"倒计时:{down_count}")
down_count -= 1
4.while 循环与 else 语句结合
while 循环可以搭配 else 子句,当循环条件变为 False 时,执行 else 中的语句。
语法:
while <expr>:
<statement(s)> # 条件为真时执行
else: <additional_statement(s)>
条件为假时执行
实例:判断数字大小并循环输出
python
count = 0
while count < 5:
print(count, " 小于 5")
count += 1
else:
print(count, " 大于或等于 5")
5. 简单语句组:单行循环体
如果循环体只有一条语句,可以将其与 while 写在同一行:
python
flag = 1
while (flag): print('欢迎访问狂奔的蜗牛的学习笔记!') # 单行循环体,无限循环
print("Good bye!")
三、循环控制语句
1.break语句
立即退出循环
python
for i in range(10):
if i == 5:
print("遇到5,立即退出")
break
print(i, end=' ')
# 输出:0 1 2 3 4 遇到5,立即退出
2.continue语句
用于跳过当前循环中的剩余语句,直接进入下一轮循环。
python
for i in range(10):
if i % 2 == 0:
continue # 跳过偶数
print(i, end=' ') # 只打印奇数
# 输出:1 3 5 7 9
3.pass:空语句(占位符)
pass 是一个空语句,不执行任何操作,仅用于保持程序结构的完整性(如临时占位)。
3.1循环中使用 pass
python
for c in 'world':
if c == 'o':
pass # 占位,不做任何操作
print('执行 pass 块')
print('当前字母 :', c)
# 输出:
'''
当前字母 : w
执行 pass 块
当前字母 : o
当前字母 : r
当前字母 : l
当前字母 : d
'''
3.2定义空类
python
class MyEmptyClass:
pass # 空类,暂时没有内容
四、嵌套循环
1.基本嵌套结构
python
for i in range(3):
print(f"外层循环:{i}")
for j in range(2):
print(f" 内层循环:{j}")
2.九九乘法表
python
for i in range(1, 10):
for j in range(1, i+1):
print(f"{j}×{i}={i*j:2}", end="\t")
print() # 换行
3 嵌套循环注意事项
- 避免过度嵌套(超过3层)
- 注意缩进层级
- 变量命名要清晰(i,j,k → row,col,depth)
五、实例
1.成绩统计程序
python
grades = [85, 92, 78, 88, 95]
total = 0
count = 0
for grade in grades:
total += grade
count += 1
average = total / count
print(f"平均成绩:{average:.2f}")
2.猜数字游戏
python
import random # 导入模块,后续再详细记录
secret_number = random.randint(1, 10)
guess = 0
while guess != secret_number:
guess = int(input("猜一个1-10的数字:"))
if guess < secret_number:
print("太小了!")
elif guess > secret_number:
print("太大了!")
else:
print(f"恭喜!你猜对了数字是{secret_number}")
3.文件内容处理
python
# 假设有一个文本文件data.txt
with open('data.txt', 'r') as f:
for line in f:
# 处理每一行
words = line.split()
print(f"行内容:{words}")
4.计算 1 到 100 的总和
python
n = 100
sum = 0
counter = 1
while counter <= n:
sum = sum + counter # 累加当前数字
counter += 1 # 计数器自增
print("1 到 %d 之和为: %d" % (n, sum))
5.判断质数
python
for n in range(2, 10): # 检查 2-9 中的质数
for x in range(2, n): # 检查是否有除 1 和自身外的因数
if n % x == 0: # 若能被整除,不是质数
print(n, '等于', x, '*', n//x)
break
else:
# 若循环未被 break 中断,说明是质数
print(n, ' 是质数')
六、常见问题与解决方案
1. 无限循环问题
-
问题:忘记更新循环变量导致无限循环
-
解决方案:
-
使用while True + break模式
-
添加计数器检查
-
设置最大迭代次数
-
2. 变量作用域混淆
-
问题:在循环内修改外部变量
-
解决方案:
-
使用不同的变量名
-
使用函数封装
-
使用列表/字典存储数据
-
3. 缩进错误
-
问题:循环体缩进不一致
-
解决方案:
-
使用IDE的自动缩进功能
-
保持一致的缩进风格(推荐4个空格)
-
编写后立即运行检查
-
真正掌握这些知识后,就可以灵活处理各种重复操作场景,编写更高效、简洁的 Python 代码。多动手实践,加深对循环逻辑的理解!不停的重复敲击基础代码,会更加熟练掌握理解一门语言。