【Python基础】循环语句全面学习教程

专栏导读

  • 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手

  • 🏳️‍🌈 博客主页:请点击——> 一晌小贪欢的博客主页求关注

  • 👍 该系列文章专栏:请点击——>Python办公自动化专栏求订阅

  • 🕷 此外还有爬虫专栏:请点击——>Python爬虫基础专栏求订阅

  • 📕 此外还有python基础专栏:请点击——>Python基础学习专栏求订阅

  • 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

  • ❤️ 欢迎各位佬关注! ❤️

目录

  1. 循环语句概述
  2. for循环详解
  3. while循环详解
  4. 嵌套循环
  5. 循环控制语句
  6. 实践练习
  7. 总结

循环语句概述

  • 循环语句是编程中的重要概念,它允许我们重复执行一段代码,直到满足特定条件为止。Python3提供了两种主要的循环语句:
  • for循环:用于遍历序列(如列表、元组、字符串)或其他可迭代对象

  • while循环:在给定条件为真时重复执行代码块

循环的优势

  • 减少代码重复
  • 提高代码效率
  • 处理大量数据
  • 实现复杂的逻辑控制

for循环详解

基本语法

for 变量 in 可迭代对象:
    # 循环体
    执行语句

1. 遍历列表

# 示例1:遍历数字列表
numbers = [1, 2, 3, 4, 5]
for num in numbers:
    print(f"数字: {num}")

# 示例2:遍历字符串列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
    print(f"水果: {fruit}")

2. 遍历字符串

# 遍历字符串中的每个字符
text = "Python"
for char in text:
    print(f"字符: {char}")

3. 使用range()函数

# range(stop) - 从0开始到stop-1
for i in range(5):
    print(f"索引: {i}")

# range(start, stop) - 从start开始到stop-1
for i in range(2, 8):
    print(f"数字: {i}")

# range(start, stop, step) - 指定步长
for i in range(0, 10, 2):
    print(f"偶数: {i}")

4. 遍历字典

student = {"姓名": "张三", "年龄": 20, "专业": "计算机科学"}

# 遍历键
for key in student:
    print(f"键: {key}")

# 遍历值
for value in student.values():
    print(f"值: {value}")

# 遍历键值对
for key, value in student.items():
    print(f"{key}: {value}")

5. enumerate()函数

# 同时获取索引和值
colors = ["红色", "绿色", "蓝色"]
for index, color in enumerate(colors):
    print(f"索引 {index}: {color}")

# 指定起始索引
for index, color in enumerate(colors, start=1):
    print(f"第 {index} 个颜色: {color}")

while循环详解

基本语法

while 条件:
    # 循环体
    执行语句
    # 更新条件(重要!)

1. 基本while循环

# 示例1:计数循环
count = 0
while count < 5:
    print(f"计数: {count}")
    count += 1  # 重要:更新计数器

# 示例2:用户输入循环
password = ""
while password != "123456":
    password = input("请输入密码: ")
    if password != "123456":
        print("密码错误,请重试!")
print("密码正确!")

2. 无限循环与break

# 无限循环示例
while True:
    user_input = input("输入'quit'退出: ")
    if user_input == 'quit':
        break
    print(f"你输入了: {user_input}")

3. while-else语句

# while-else:循环正常结束时执行else
num = 1
while num <= 3:
    print(f"数字: {num}")
    num += 1
else:
    print("循环正常结束")

嵌套循环

1. for循环嵌套

# 打印乘法表
for i in range(1, 4):
    for j in range(1, 4):
        print(f"{i} × {j} = {i*j}", end="\t")
    print()  # 换行

2. while循环嵌套

# 二维数组遍历
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
i = 0
while i < len(matrix):
    j = 0
    while j < len(matrix[i]):
        print(matrix[i][j], end=" ")
        j += 1
    print()  # 换行
    i += 1

3. 混合嵌套

# for和while混合嵌套
for i in range(3):
    print(f"外层循环 {i}:")
    count = 0
    while count < 2:
        print(f"  内层循环 {count}")
        count += 1

循环控制语句

1. break语句

# break:立即退出循环
for i in range(10):
    if i == 5:
        break
    print(i)
print("循环结束")

# 在嵌套循环中使用break
for i in range(3):
    for j in range(3):
        if j == 1:
            break  # 只退出内层循环
        print(f"i={i}, j={j}")

2. continue语句

# continue:跳过当前迭代,继续下一次迭代
for i in range(10):
    if i % 2 == 0:  # 跳过偶数
        continue
    print(f"奇数: {i}")

# 在while循环中使用continue
count = 0
while count < 10:
    count += 1
    if count % 3 == 0:
        continue
    print(f"不是3的倍数: {count}")

3. pass语句

# pass:空操作,占位符
for i in range(5):
    if i < 3:
        pass  # 暂时不做任何操作
    else:
        print(f"处理数字: {i}")

# 在函数或类定义中使用pass
def future_function():
    pass  # 稍后实现

class FutureClass:
    pass  # 稍后实现

实践练习

练习1:数字猜谜游戏

import random

# 生成1-100之间的随机数
secret_number = random.randint(1, 100)
guess_count = 0
max_guesses = 7

print("欢迎来到数字猜谜游戏!")
print(f"我想了一个1-100之间的数字,你有{max_guesses}次机会猜中它。")

while guess_count < max_guesses:
    try:
        guess = int(input("请输入你的猜测: "))
        guess_count += 1
        
        if guess == secret_number:
            print(f"恭喜!你猜中了!数字是{secret_number}")
            print(f"你用了{guess_count}次猜中。")
            break
        elif guess < secret_number:
            print("太小了!")
        else:
            print("太大了!")
            
        remaining = max_guesses - guess_count
        if remaining > 0:
            print(f"还有{remaining}次机会")
    except ValueError:
        print("请输入有效的数字!")
else:
    print(f"游戏结束!正确答案是{secret_number}")

练习2:打印图案

# 打印直角三角形
rows = 5
for i in range(1, rows + 1):
    for j in range(i):
        print("*", end="")
    print()

print()

# 打印等腰三角形
for i in range(1, rows + 1):
    # 打印空格
    for j in range(rows - i):
        print(" ", end="")
    # 打印星号
    for k in range(2 * i - 1):
        print("*", end="")
    print()

练习3:质数检测

def is_prime(n):
    """检测一个数是否为质数"""
    if n < 2:
        return False
    
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True

# 找出1-100之间的所有质数
primes = []
for num in range(1, 101):
    if is_prime(num):
        primes.append(num)

print("1-100之间的质数:")
for i, prime in enumerate(primes):
    print(f"{prime:3d}", end=" ")
    if (i + 1) % 10 == 0:  # 每行显示10个数字
        print()

练习4:简单计算器

def calculator():
    """简单计算器"""
    print("简单计算器")
    print("支持的操作: +, -, *, /, quit")
    
    while True:
        try:
            operation = input("\n请输入操作 (+, -, *, /, quit): ").strip()
            
            if operation.lower() == 'quit':
                print("谢谢使用!")
                break
            
            if operation not in ['+', '-', '*', '/']:
                print("无效操作!请输入 +, -, *, / 或 quit")
                continue
            
            num1 = float(input("请输入第一个数字: "))
            num2 = float(input("请输入第二个数字: "))
            
            if operation == '+':
                result = num1 + num2
            elif operation == '-':
                result = num1 - num2
            elif operation == '*':
                result = num1 * num2
            elif operation == '/':
                if num2 == 0:
                    print("错误:除数不能为零!")
                    continue
                result = num1 / num2
            
            print(f"结果: {num1} {operation} {num2} = {result}")
            
        except ValueError:
            print("错误:请输入有效的数字!")
        except Exception as e:
            print(f"发生错误: {e}")

# 运行计算器(取消注释下面一行来运行)
# calculator()

总结

循环语句要点回顾

  1. for循环

    • 适用于已知迭代次数或遍历序列
    • 语法简洁,易于理解
    • 常与range()、enumerate()等函数配合使用
  2. while循环

    • 适用于未知迭代次数的情况
    • 需要注意避免无限循环
    • 条件更新很重要
  3. 循环控制

    • break:立即退出循环
    • continue:跳过当前迭代
    • pass:空操作占位符
  4. 嵌套循环

    • 可以实现复杂的逻辑控制
    • 注意性能影响
    • 控制语句只影响最近的循环层

最佳实践

  1. 选择合适的循环类型

    • 遍历序列用for循环
    • 条件控制用while循环
  2. 避免无限循环

    • 确保循环条件会发生变化
    • 在while循环中更新控制变量
  3. 优化性能

    • 避免不必要的嵌套循环
    • 在循环外定义不变的变量
    • 合理使用break和continue
  4. 代码可读性

    • 使用有意义的变量名
    • 适当添加注释
    • 保持代码结构清晰

进阶学习建议

  1. 学习列表推导式和生成器表达式
  2. 了解itertools模块的高级迭代工具
  3. 掌握异常处理在循环中的应用
  4. 学习递归作为循环的替代方案

恭喜你完成了Python3循环语句的全面学习! 🎉

通过本教程,你已经掌握了:

  • for循环和while循环的基本用法
  • 循环控制语句的使用
  • 嵌套循环的实现
  • 实际项目中的应用技巧

继续练习和应用这些知识,你将能够编写更加高效和优雅的Python代码!

  • 希望对初学者有帮助;致力于办公自动化的小小程序员一枚

  • 希望能得到大家的【❤️一个免费关注❤️】感谢!

  • 求个 🤞 关注 🤞 +❤️ 喜欢 ❤️ +👍 收藏 👍

  • 此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

  • 此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

  • 此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小庄-Python办公

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值