← 返回主页

第3课: 控制流程与循环

if条件语句

if语句用于根据条件执行不同的代码块。

基本if语句

age = 18

if age >= 18:
    print("你是成年人")
    print("可以投票")

if-else语句

age = 15

if age >= 18:
    print("你是成年人")
else:
    print("你是未成年人")

if-elif-else语句

score = 85

if score >= 90:
    grade = "优秀"
elif score >= 80:
    grade = "良好"
elif score >= 60:
    grade = "及格"
else:
    grade = "不及格"

print(f"成绩等级: {grade}")

嵌套if语句

age = 20
has_license = True

if age >= 18:
    if has_license:
        print("可以开车")
    else:
        print("需要考驾照")
else:
    print("年龄不够,不能开车")

for循环

for循环用于遍历序列(列表、字符串、元组等)。

遍历列表

fruits = ["苹果", "香蕉", "橙子", "葡萄"]

for fruit in fruits:
    print(fruit)

遍历字符串

for char in "Python":
    print(char)  # 输出: P y t h o n

使用range()函数

# 0到4
for i in range(5):
    print(i)  # 0, 1, 2, 3, 4

# 1到5
for i in range(1, 6):
    print(i)  # 1, 2, 3, 4, 5

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

enumerate()函数

fruits = ["苹果", "香蕉", "橙子"]

for index, fruit in enumerate(fruits):
    print(f"{index}: {fruit}")
# 输出:
# 0: 苹果
# 1: 香蕉
# 2: 橙子

while循环

while循环在条件为真时重复执行代码块。

count = 0

while count < 5:
    print(f"计数: {count}")
    count += 1

print("循环结束")

无限循环

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

break和continue

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

列表推导式

列表推导式是创建列表的简洁方式。

# 传统方式
squares = []
for i in range(10):
    squares.append(i ** 2)

# 列表推导式
squares = [i ** 2 for i in range(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 带条件的列表推导式
even_squares = [i ** 2 for i in range(10) if i % 2 == 0]
print(even_squares)  # [0, 4, 16, 36, 64]

练习

  1. 编写程序判断一个数是正数、负数还是零
  2. 打印1到100之间所有的偶数
  3. 计算1到100的和
  4. 找出列表中所有大于10的数字
练习答案:
# 练习1
num = int(input("输入一个数字: "))
if num > 0:
    print("正数")
elif num < 0:
    print("负数")
else:
    print("零")

# 练习2
for i in range(2, 101, 2):
    print(i)

# 练习3
total = sum(range(1, 101))
print(f"1到100的和: {total}")

# 练习4
numbers = [5, 12, 8, 15, 3, 20, 7]
large_numbers = [n for n in numbers if n > 10]
print(large_numbers)  # [12, 15, 20]