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 跳过当前迭代 跳过本次循环剩余代码,继续下一次
相关推荐
菜宾3 分钟前
java-seata基础教学
java·开发语言·adb
梦65011 分钟前
JavaScript 循环
开发语言·javascript·ecmascript
guygg8821 分钟前
5G PDSCH信道吞吐量MATLAB仿真实现(含信道生成与解调)
开发语言·5g·matlab
抠头专注python环境配置25 分钟前
基于Python与深度学习的智能垃圾分类系统设计与实现
pytorch·python·深度学习·分类·垃圾分类·vgg·densenet
愈努力俞幸运42 分钟前
flask 入门 token, headers,cookie
后端·python·flask
傻乐u兔1 小时前
C语音初阶————调试实用技巧2
c语言·开发语言
梦想是成为算法高手1 小时前
带你从入门到精通——知识图谱(一. 知识图谱入门)
人工智能·pytorch·python·深度学习·神经网络·知识图谱
用什么都重名1 小时前
Conda 虚拟环境安装配置路径详解
windows·python·conda
阿也在北京1 小时前
基于Neo4j和TuGraph的知识图谱与问答系统搭建——胡歌的导演演员人际圈
python·阿里云·知识图谱·neo4j