# Python 控制结构

# 条件语句

# if 语句

# 基本if语句
age = 18
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 = 20
status = "成年" if age >= 18 else "未成年"

# 循环语句

# for 循环

# 遍历列表
fruits = ['apple', 'banana', 'orange']
for fruit in fruits:
    print(fruit)

# range()函数
for i in range(5):
    print(i)  # 输出0到4

# enumerate()函数
for index, fruit in enumerate(fruits):
    print(f"索引 {index}: {fruit}")

# while 循环

# 基本while循环
count = 0
while count < 5:
    print(count)
    count += 1

# break和continue
while True:
    user_input = input("输入'quit'退出: ")
    if user_input == 'quit':
        break
    if user_input == '':
        continue
    print(f"你输入了: {user_input}")

# 循环控制

# break语句
for i in range(10):
    if i == 5:
        break
    print(i)

# continue语句
for i in range(5):
    if i == 2:
        continue
    print(i)

# else子句
for i in range(3):
    print(i)
else:
    print("循环正常完成")

# 推导式

# 列表推导式

# 基本列表推导式
squares = [x**2 for x in range(5)]

# 带条件的列表推导式
even_squares = [x**2 for x in range(10) if x % 2 == 0]

# 字典推导式

# 创建平方字典
square_dict = {x: x**2 for x in range(5)}

# 过滤字典
original = {'a': 1, 'b': 2, 'c': 3}
filtered = {k: v for k, v in original.items() if v > 1}

# 集合推导式

# 创建平方集合
square_set = {x**2 for x in range(5)}

# 过滤集合
even_squares = {x**2 for x in range(10) if x % 2 == 0}

# 异常处理

# try-except语句
try:
    num = int(input("请输入一个数字: "))
    result = 10 / num
except ValueError:
    print("输入必须是数字")
except ZeroDivisionError:
    print("不能除以零")
else:
    print(f"结果是: {result}")
finally:
    print("程序执行完毕")

# 上下文管理

# with语句
with open('file.txt', 'r') as file:
    content = file.read()
    print(content)

# 最佳实践

  1. 条件语句

    • 使用清晰的条件表达式
    • 避免过度嵌套
    • 合理使用elif而不是多个if
  2. 循环

    • 选择合适的循环类型
    • 适当使用break和continue
    • 注意循环的性能影响
  3. 推导式

    • 保持推导式简单易读
    • 不要在一行中包含过多逻辑
    • 适当使用生成器表达式
  4. 异常处理

    • 只捕获预期的异常
    • 提供有意义的错误信息
    • 正确使用finally子句

# 练习题

  1. 编写程序实现简单的计算器
  2. 使用循环处理列表数据
  3. 实现文件读写的异常处理

# 下一步

学习Python的函数和模块,了解如何组织和重用代码。