Python学习之路-循环语句学习详解

学习的忙碌与辛苦,本就是人生的一种常态,而坚持下来的人,终会看见光‌。

学习打卡第十六天

学习目标:

  1. 掌握for循环和while循环的完整语法结构
  2. 理解循环变量的作用域和生命周期
  3. 能够熟练使用range()函数生成序列
  4. 掌握break、continue和else子句的配合使用
  5. 能够编写多层嵌套循环程序
  6. 理解无限循环的创建与终止方法

在 Python 编程中,循环语句是实现重复操作的核心工具。掌握循环语句的使用,能够让我们高效地处理批量数据、实现复杂逻辑。本文将详细学习 Python3 中的两种循环语句------whilefor,以及与循环相关的控制语句,全面掌握循环的用法。

一、for循环

遍历可迭代对象

  1. **遍历(Iteration):**是指依次访问容器中每个元素的过程。遍历是编程中最基本的操作之一,常用于处理列表、元组、字典、集合等数据结构中的所有元素。
  2. 可迭代对象‌(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):生成 startstop-1 的序列。
  • range(start, stop, step):生成 startstop-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 代码。多动手实践,加深对循环逻辑的理解!不停的重复敲击基础代码,会更加熟练掌握理解一门语言。

相关推荐
岱宗夫up1 小时前
机器学习:标准化流模型(NF)
人工智能·python·机器学习·生成对抗网络
花月mmc1 小时前
CanMV K230 波形识别——整体部署(4)
人工智能·python·嵌入式硬件·深度学习·信号处理
电饭叔1 小时前
Jupyter学习中的问题--FileNotFoundError
ide·学习·jupyter
lang201509282 小时前
Java WebSocket API:JSR-356详解
java·python·websocket
jiang_changsheng2 小时前
环境管理工具全景图与深度对比
java·c语言·开发语言·c++·python·r语言
linjoe992 小时前
【Medical AI\pathology】WSI 的 JPEG 压缩质量与存储效率权衡分析
python·图像压缩·计算病理学·wsi
Fightting882 小时前
Tkinter Button bind hover message
开发语言·python
峥嵘life2 小时前
Android16 【CTS】CtsMediaCodecTestCases等一些列Media测试存在Failed项
android·linux·学习
玄同7653 小时前
LangChain 1.0 模型接口:多厂商集成与统一调用
开发语言·人工智能·python·langchain·知识图谱·rag·智能体