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. 重要注意事项
-
缩进:Python使用缩进来区分代码块,必须保持一致的缩进
-
冒号:if、elif、else、for、while 语句后面必须有冒号
-
循环控制:
-
break:完全退出循环 -
continue:跳过本次循环,继续下一次 -
避免过多嵌套,保持代码清晰
-
-
无限循环 :使用
while True时要确保有退出条件 -
性能考虑:在循环中避免不必要的计算和函数调用
总结表格
| 语句 | 用途 | 主要特点 |
|---|---|---|
if-elif-else |
条件判断 | 根据条件执行不同代码块 |
for |
遍历序列 | 已知迭代次数,遍历集合元素 |
while |
条件循环 | 未知迭代次数,条件控制 |
break |
退出循环 | 立即退出当前循环 |
continue |
跳过当前迭代 | 跳过本次循环剩余代码,继续下一次 |