Python 控制流
控制流用于控制程序的执行顺序。本章将介绍条件语句和循环结构。
条件语句
if 语句
基本的 if 语句结构:
age = 18
if age >= 18:
print("你已经成年了")
if-else 语句
age = 16
if age >= 18:
print("你已经成年了")
else:
print("你还未成年")
if-elif-else 语句
score = 85
if score >= 90:
print("优秀")
elif score >= 80:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
嵌套条件
age = 25
is_student = True
if age >= 18:
if is_student:
print("成年学生")
else:
print("成年非学生")
else:
print("未成年")
简化写法
# 单行 if 语句
age = 20
status = "成年" if age >= 18 else "未成年"
print(status) # 输出:成年
循环
for 循环
基本语法
# 遍历列表
fruits = ["苹果", "香蕉", "橙子"]
for fruit in fruits:
print(fruit)
使用 range()
range() 函数生成一个数字序列:
# range(stop) - 从 0 到 stop-1
for i in range(5):
print(i) # 0, 1, 2, 3, 4
# range(start, stop) - 从 start 到 stop-1
for i in range(2, 6):
print(i) # 2, 3, 4, 5
# range(start, stop, step) - 指定步长
for i in range(0, 10, 2):
print(i) # 0, 2, 4, 6, 8
# 倒序
for i in range(5, 0, -1):
print(i) # 5, 4, 3, 2, 1
遍历字符串
text = "Python"
for char in text:
print(char)
遍历字典
person = {"name": "张三", "age": 20, "city": "北京"}
# 遍历键
for key in person:
print(key)
# 遍历值
for value in person.values():
print(value)
# 遍历键值对
for key, value in person.items():
print(f"{key}: {value}")
while 循环
基本语法:
count = 0
while count < 5:
print(count)
count += 1
死循环(谨慎使用)
while True:
user_input = input("输入 'quit' 退出:")
if user_input == "quit":
break
print(f"你输入了:{user_input}")
循环控制
break - 跳出循环
for i in range(10):
if i == 5:
break
print(i) # 输出 0, 1, 2, 3, 4
continue - 跳过当前迭代
for i in range(5):
if i == 2:
continue
print(i) # 输出 0, 1, 3, 4(跳过 2)
pass - 占位符
for i in range(5):
if i == 2:
pass # 什么都不做,继续执行
print(i)
循环else子句
循环可以有一个 else 子句,当循环正常结束(不是因为 break)时执行:
for i in range(3):
print(i)
else:
print("循环正常结束")
# 如果使用 break,则 else 不会执行
for i in range(3):
if i == 1:
break
print(i)
else:
print("循环正常结束") # 不会执行
实战练习
练习 1:计算 1 到 100 的和
total = 0
for i in range(1, 101):
total += i
print(f"1+2+...+100 = {total}")
练习 2:打印九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}*{i}={i*j}", end="\t")
print()
练习 3:判断素数
num = 17
is_prime = True
if num < 2:
is_prime = False
else:
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
is_prime = False
break
print(f"{num}是素数:{is_prime}")
练习 4:猜数字游戏
import random
target = random.randint(1, 100)
guess = 0
attempts = 0
while guess != target:
guess = int(input("请输入一个1-100的数字:"))
attempts += 1
if guess > target:
print("猜大了!")
elif guess < target:
print("猜小了!")
print(f"恭喜你猜对了!共用了{attempts}次")
练习 5:输出菱形
n = 5
# 上半部分
for i in range(1, n + 1):
print(" " * (n - i) + "*" * (2 * i - 1))
# 下半部分
for i in range(n - 1, 0, -1):
print(" " * (n - i) + "*" * (2 * i - 1))
pass、break 和 continue 的区别
| 关键字 | 作用 | 说明 |
|---|---|---|
| pass | 空操作 | 不做任何事,常用作占位符 |
| break | 跳出循环 | 终止当前循环 |
| continue | 跳过本次循环 | 继续下一次循环 |
小结
本章我们学习了:
- 条件语句(if、elif、else)
- for 循环的使用
- while 循环的使用
- 循环控制语句(break、continue、pass)
- 循环的 else 子句
- 多个实战练习
练习
- 打印 1 到 100 中能被 3 整除的数
- 求斐波那契数列的前 20 项
- 找出 100 以内的所有素数
- 模拟用户登录(最多尝试 3 次)