欢迎光临
我们一直在努力

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

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

学习打卡第十六天

学习目标:

  • 掌握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列表:有序集合

    my_list = ["Baidu", "Google", "xcLeigh", "Taobao"]
    for i in my_list :
    print(i, end=' ')

    # 输出:Baidu Google xcLeigh Taobao

    代码解释:print()默认的输出格式为换行,后面的end='  '是设置了不换行,用两个空格隔开输出

    2.2元组:不可变序列

    colors = ("红", "绿", "蓝")
    for color in colors:
    print(f"颜色:{color}", end=',')

    输出:颜色:红,颜色:绿,颜色:蓝,

    2.3字符串:字符序列

    text = "Python"
    for char in text:
    print(f"字符:{char}", end=',')

    输出:字符:P,字符:y,字符:t,字符:h,字符:o,字符:n,

    2.4字典:键值对集合

    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(可正可负)。

    # 基本用法: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() 遍历序列索引

    a = ["Baidu", "Google", "xcLeigh", "Taobao"]
    for i in range(len(a)):
    print(i, a[i]) # 输出索引和对应元素

    5.for…else 语句:循环结束后执行

    for 循环的 else 子句在遍历完所有元素后执行,若循环被 break 中断,则不执行。

    5.1正常遍历结束

    for x in range(6):
    print(x)
    else:
    print("循环结束后执行!") # 遍历完所有元素后执行

    # 输出:0 1 2 3 4 5 循环结束后执行!

    5.2break 中断循环(else 不执行)

    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.循环变量作用域

    演示作用域问题

    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创建无限循环

    while True:
    user_input = input("输入'exit'退出:")
    if user_input == 'exit':
    break

    2.2使用标志变量

    running = True
    while running:
    # 处理任务
    if some_condition:
    running = False

    3循环控制变量

    3.1计数器模式

    count = 0
    while count < 5:
    print(f"计数:{count}")
    count += 1

    3.2递减计数器

    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)>

           # 条件为假时执行

    实例:判断数字大小并循环输出

    count = 0
    while count < 5:
    print(count, " 小于 5")
    count += 1
    else:
    print(count, " 大于或等于 5")

    5. 简单语句组:单行循环体

    如果循环体只有一条语句,可以将其与 while 写在同一行:

    flag = 1
    while (flag): print('欢迎访问狂奔的蜗牛的学习笔记!') # 单行循环体,无限循环
    print("Good bye!")

    三、循环控制语句

    1.break语句

    立即退出循环

    for i in range(10):
    if i == 5:
    print("遇到5,立即退出")
    break
    print(i, end=' ')

    # 输出:0 1 2 3 4 遇到5,立即退出

    2.continue语句

    用于跳过当前循环中的剩余语句,直接进入下一轮循环。

    for i in range(10):
    if i % 2 == 0:
    continue # 跳过偶数
    print(i, end=' ') # 只打印奇数

    # 输出:1 3 5 7 9

    3.pass:空语句(占位符)

    pass 是一个空语句,不执行任何操作,仅用于保持程序结构的完整性(如临时占位)。

    3.1循环中使用 pass

    for c in 'world':
    if c == 'o':
    pass # 占位,不做任何操作
    print('执行 pass 块')
    print('当前字母 :', c)

    # 输出:
    '''
    当前字母 : w
    执行 pass 块
    当前字母 : o
    当前字母 : r
    当前字母 : l
    当前字母 : d
    '''

    3.2定义空类

    class MyEmptyClass:
    pass # 空类,暂时没有内容

    四、嵌套循环

    1.基本嵌套结构

    for i in range(3):
    print(f"外层循环:{i}")
    for j in range(2):
    print(f" 内层循环:{j}")

    2.九九乘法表

    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.成绩统计程序

    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.猜数字游戏

    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.文件内容处理

    # 假设有一个文本文件data.txt
    with open('data.txt', 'r') as f:
    for line in f:
    # 处理每一行
    words = line.split()
    print(f"行内容:{words}")

    4.计算 1 到 100 的总和

    n = 100
    sum = 0
    counter = 1
    while counter <= n:
    sum = sum + counter # 累加当前数字
    counter += 1 # 计数器自增
    print("1 到 %d 之和为: %d" % (n, sum))

    5.判断质数

    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 代码。多动手实践,加深对循环逻辑的理解!不停的重复敲击基础代码,会更加熟练掌握理解一门语言。

    赞(0)
    未经允许不得转载:171主机测评 » Python学习之路-循环语句学习详解
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址