循环语句:forwhile

循环是程序中用于重复执行一段代码的重要工具。它可以让我们减少重复的代码书写,自动完成大量任务。Python 中的循环语句主要有两种:for 循环和**while 循环**。


for 循环

for 循环用于按顺序遍历某个可迭代对象(例如列表、字符串、字典等),对每个元素执行一次代码块。

语法

for 变量 in 可迭代对象:
    # 循环体,执行的代码

示例:遍历列表

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

for fruit in fruits:
    print(f"我喜欢吃 {fruit}")

输出

我喜欢吃 苹果
我喜欢吃 香蕉
我喜欢吃 橙子

range() 函数配合 for 使用

range() 是一个生成整数序列的函数,常用于循环指定次数。

示例:输出数字 0 到 4

for i in range(5):
    print(i)

输出

0
1
2
3
4

range() 用法

  • range(5):生成 [0, 1, 2, 3, 4]
  • range(1, 6):生成 [1, 2, 3, 4, 5],从 1 开始,到 6(不包括 6)。
  • range(1, 10, 2):生成 [1, 3, 5, 7, 9],步长为 2。

嵌套 for 循环

for 循环可以嵌套,用于处理多层数据。

示例:打印乘法表

for i in range(1, 4):  # 外层循环
    for j in range(1, 4):  # 内层循环
        print(f"{i} * {j} = {i * j}")

while 循环

while 循环在条件为真时反复执行代码块。如果条件为假,循环结束。

语法

while 条件:
    # 循环体,执行的代码

示例:计算 1 到 10 的总和

sum = 0 #计算结果
num = 1 #存储数字的变量

while num <= 10:
    print(f"此时的num是:{num}")
    sum += num #等价于 sum=sum+num
    print(f"sum加上num以后是:{sum}")
    num += 1 #等价于 num=num+1

print(f"总和是 {sum}")

输出

总和是 55

控制循环:breakcontinue

break:提前退出循环

在循环中遇到 break 时,循环会立即结束。

示例:找到第一个大于 5 的数

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

for num in numbers:
    if num > 5:
        print(f"找到大于 5 的数:{num}")
        break

输出

找到大于 5 的数:7

continue:跳过本次循环,继续下一次

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

示例:跳过偶数

for i in range(1, 6):
    if i % 2 == 0:
        continue
    print(i)

输出

1
3
5

forwhile 的对比

  • for 循环:用于遍历已知的序列或集合。
  • while 循环:用于重复执行某个逻辑,直到条件不再满足。

选择使用时的原则

  • 如果知道循环的次数或范围,优先使用 for
  • 如果需要依据条件控制循环是否继续,使用 while

循环的应用实例

1. 计算列表中所有元素的平方

numbers = [1, 2, 3, 4]
squares = []

for num in numbers:
    squares.append(num ** 2)

print(squares)

输出

[1, 4, 9, 16]

2. 用 while 实现简单的登录系统

correct_password = "python123"
attempts = 3

while attempts > 0:
    password = input("请输入密码:")
    if password == correct_password:
        print("密码正确,欢迎登录!")
        break
    else:
        attempts -= 1
        print(f"密码错误,你还有 {attempts} 次机会")

if attempts == 0:
    print("多次尝试失败,账户已锁定。")

注意事项

  1. 避免死循环

    • while 循环中,确保条件会在某个时刻变为假,否则程序会无限运行。
    • 示例(错误代码):
      while True:
          print("这是死循环!")
      
  2. for 循环中的变量不会影响外部变量

    • 示例:
      for i in range(3):
          print(i)
      print(i)  # 在 Python 中,i 仍然保留最后的值
      
  3. 理解循环效率

    • 如果可能,优先用列表推导式代替复杂的嵌套循环,提高代码的可读性和运行效率。

总结

  • for:遍历已知的集合、序列,用来迭代执行。
  • while:在条件满足时循环,用于处理动态逻辑。
  • 合理选择循环方式,掌握控制语句(breakcontinue),能够让代码更高效、更灵活。