Python循环

1. if-else 条件语句

1.1 基本语法

复制代码
# 单个条件
if 条件:
    # 条件为 True 时执行的代码

# 两个条件
if 条件:
    # 条件为 True 时执行
else:
    # 条件为 False 时执行

# 多个条件
if 条件1:
    # 条件1为 True 时执行
elif 条件2:
    # 条件2为 True 时执行
elif 条件3:
    # 条件3为 True 时执行
else:
    # 所有条件都为 False 时执行

1.2 示例

复制代码
# 单个条件
age = 18
if age >= 18:
    print("你已成年")

# if-else
score = 85
if score >= 60:
    print("及格")
else:
    print("不及格")

# if-elif-else
score = 85
if score >= 90:
    grade = "A"
elif score >= 80:
    grade = "B"
elif score >= 70:
    grade = "C"
elif score >= 60:
    grade = "D"
else:
    grade = "F"
print(f"成绩等级: {grade}")

# 嵌套 if
num = 15
if num > 0:
    if num % 2 == 0:
        print("正偶数")
    else:
        print("正奇数")
else:
    print("非正数")

1.3 简洁写法(三元运算符)

复制代码
# 传统写法
age = 20
if age >= 18:
    status = "成年"
else:
    status = "未成年"

# 简洁写法
status = "成年" if age >= 18 else "未成年"

# 复杂一点的应用
num = 10
result = "大于5" if num > 5 else ("等于5" if num == 5 else "小于5")
print(result)

2. for 循环

2.1 基本使用

复制代码
# 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
    print(f"水果: {fruit}")

# 遍历数字范围
for i in range(5):  # 0-4
    print(i)

for i in range(1, 6):  # 1-5
    print(i)

for i in range(0, 10, 2):  # 0,2,4,6,8
    print(i)

2.2 结合 if 语句

复制代码
# 只处理符合条件的元素
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
for num in numbers:
    if num % 2 == 0:
        print(f"{num} 是偶数")
    else:
        print(f"{num} 是奇数")

# 在循环中进行条件判断
scores = [85, 92, 78, 60, 45, 95]
for i, score in enumerate(scores):
    if score >= 90:
        print(f"第{i+1}个学生: 优秀")
    elif score >= 80:
        print(f"第{i+1}个学生: 良好")
    elif score >= 60:
        print(f"第{i+1}个学生: 及格")
    else:
        print(f"第{i+1}个学生: 不及格")

3. while 循环

3.1 基本使用

复制代码
# 计数器控制
count = 0
while count < 5:
    print(f"计数: {count}")
    count += 1

# 用户输入控制
password = ""
while password != "secret":
    password = input("请输入密码: ")
print("登录成功!")

# 无限循环(需要退出条件)
import random
target = random.randint(1, 10)
attempts = 0

while True:
    guess = int(input("猜一个1-10的数字: "))
    attempts += 1
    
    if guess == target:
        print(f"恭喜!第{attempts}次猜对了!")
        break  # 退出循环
    elif guess < target:
        print("猜小了")
    else:
        print("猜大了")

3.2 结合 if 语句

复制代码
# 条件控制循环
total = 0
count = 0

while True:
    num = float(input("输入数字(输入0结束): "))
    
    if num == 0:
        break  # 退出循环
    
    if num < 0:
        print("负数将被忽略")
        continue  # 跳过本次循环剩余部分
    
    total += num
    count += 1

if count > 0:
    print(f"平均值: {total/count}")
else:
    print("没有输入有效数字")

4. break 语句

4.1 在循环中使用

复制代码
# for 循环中使用 break
for i in range(10):
    if i == 5:
        print(f"遇到5,退出循环")
        break
    print(i)

# while 循环中使用 break
count = 0
while count < 10:
    if count == 7:
        print("达到7,提前退出")
        break
    print(count)
    count += 1

# 嵌套循环中的 break
for i in range(1, 4):
    for j in range(1, 4):
        if i * j > 4:
            print(f"i={i}, j={j}, 乘积大于4,退出内层循环")
            break
        print(f"{i} × {j} = {i*j}")

5. continue 语句

5.1 跳过当前迭代

复制代码
# 跳过特定值
for i in range(10):
    if i % 3 == 0:  # 跳过3的倍数
        continue
    print(i)

# 处理用户输入
data = [23, 45, -1, 67, 0, 89, -5, 34]
positive_sum = 0
for num in data:
    if num <= 0:
        continue  # 跳过非正数
    positive_sum += num
print(f"正数和: {positive_sum}")

# 在 while 循环中使用
count = 0
while count < 10:
    count += 1
    if count % 2 == 0:  # 跳过偶数
        continue
    print(f"奇数: {count}")

6. 综合应用示例

示例1:简易计算器

复制代码
print("简易计算器")
print("输入 'q' 退出")

while True:
    operation = input("\n选择操作 (+, -, *, /): ")
    
    if operation == 'q':
        print("感谢使用!")
        break
    
    if operation not in ['+', '-', '*', '/']:
        print("无效操作")
        continue
    
    try:
        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("错误:除数不能为0")
                continue
            result = num1 / num2
        
        print(f"结果: {result}")
    
    except ValueError:
        print("错误:请输入有效数字")
        continue

示例2:质数判断

复制代码
def is_prime(n):
    """判断一个数是否为质数"""
    if n <= 1:
        return False
    if n == 2:
        return True
    if n % 2 == 0:
        return False
    
    # 检查从3到√n的奇数
    for i in range(3, int(n**0.5) + 1, 2):
        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(f"1-100之间的质数: {primes}")
print(f"共有 {len(primes)} 个质数")

示例3:学生成绩管理系统

复制代码
students = []

while True:
    print("\n--- 学生成绩管理系统 ---")
    print("1. 添加学生成绩")
    print("2. 查看所有学生")
    print("3. 查找学生")
    print("4. 计算平均分")
    print("5. 退出")
    
    choice = input("请选择操作 (1-5): ")
    
    if choice == '1':
        name = input("学生姓名: ")
        score = float(input("学生成绩: "))
        students.append({"name": name, "score": score})
        print(f"已添加 {name} 的成绩: {score}")
    
    elif choice == '2':
        if not students:
            print("没有学生记录")
            continue
        
        print("\n所有学生成绩:")
        for i, student in enumerate(students, 1):
            grade = "优秀" if student["score"] >= 90 else \
                   "良好" if student["score"] >= 80 else \
                   "及格" if student["score"] >= 60 else "不及格"
            print(f"{i}. {student['name']}: {student['score']} ({grade})")
    
    elif choice == '3':
        search_name = input("输入要查找的学生姓名: ")
        found = False
        for student in students:
            if student["name"] == search_name:
                print(f"找到: {student['name']}, 成绩: {student['score']}")
                found = True
                break
        
        if not found:
            print("未找到该学生")
    
    elif choice == '4':
        if not students:
            print("没有学生记录")
            continue
        
        total_score = sum(student["score"] for student in students)
        average = total_score / len(students)
        print(f"平均成绩: {average:.2f}")
    
    elif choice == '5':
        print("感谢使用,再见!")
        break
    
    else:
        print("无效选择,请重新输入")

7. 重要注意事项

  1. 缩进:Python使用缩进来区分代码块,必须保持一致的缩进

  2. 冒号:if、elif、else、for、while 语句后面必须有冒号

  3. 循环控制

    • break:完全退出循环

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

    • 避免过多嵌套,保持代码清晰

  4. 无限循环 :使用 while True 时要确保有退出条件

  5. 性能考虑:在循环中避免不必要的计算和函数调用

总结表格

语句 用途 主要特点
if-elif-else 条件判断 根据条件执行不同代码块
for 遍历序列 已知迭代次数,遍历集合元素
while 条件循环 未知迭代次数,条件控制
break 退出循环 立即退出当前循环
continue 跳过当前迭代 跳过本次循环剩余代码,继续下一次
相关推荐
_一路向北_13 小时前
爬虫框架:Feapder使用心得
爬虫·python
皇族崛起13 小时前
【3D标注】- Unreal Engine 5.7 与 Python 交互基础
python·3d·ue5
你想知道什么?13 小时前
Python基础篇(上) 学习笔记
笔记·python·学习
曼巴UE513 小时前
UE5 C++ 动态多播
java·开发语言
steins_甲乙13 小时前
C++并发编程(3)——资源竞争下的安全栈
开发语言·c++·安全
Swizard14 小时前
速度与激情:Android Python + CameraX 零拷贝实时推理指南
android·python·ai·移动开发
一直跑14 小时前
Liunx服务器centos7离线升级内核(Liunx服务器centos7.9离线/升级系统内核)
python
leocoder14 小时前
大模型基础概念入门 + 代码实战(实现一个多轮会话机器人)
前端·人工智能·python
Buxxxxxx14 小时前
DAY 37 深入理解SHAP图
python
ada7_14 小时前
LeetCode(python)108.将有序数组转换为二叉搜索树
数据结构·python·算法·leetcode