# 最简单的判断
age = 20
if age >= 18:
print("你成年了") # 条件为True时执行
print("程序结束") # 不管条件如何都执行
# 二选一
score = 65
if score >= 60:
print("及格")
else:
print("不及格")
# 输出: 及格
# 多选一(从上到下依次判断,命中一个就停)
score = 85
if score >= 90:
grade = "A"
elif score >= 80:
grade = "B" # 85命中这里,后面的不再判断
elif score >= 70:
grade = "C"
elif score >= 60:
grade = "D"
else:
grade = "F"
print(f"成绩等级: {grade}") # B
age = 25
has_ticket = True
if age >= 18:
if has_ticket:
print("欢迎入场")
else:
print("请先买票")
else:
print("未成年人不能进入")
# 一行写简单的if-else
age = 20
status = "成年" if age >= 18 else "未成年"
print(status) # 成年
# 等价于:
if age >= 18:
status = "成年"
else:
status = "未成年"
age = 25
income = 8000
# and: 两个条件都满足
if age >= 18 and income >= 5000:
print("符合条件")
# or: 满足一个即可
if age < 18 or age > 65:
print("免票")
# not: 取反
if not age < 18:
print("已成年")
# 简写:Python支持链式比较
if 18 <= age <= 60:
print("适龄劳动力")
# 判断元素是否在序列中
print("a" in "apple") # True
print(3 in [1, 2, 3]) # True
print("name" in {"name": "张三"}) # True
# not in: 不在
print("z" not in "apple") # True
# 遍历字符串
for char in "ABC":
print(char)
# A
# B
# C
# 遍历列表
for fruit in ["苹果", "香蕉", "橘子"]:
print(f"我喜欢吃{fruit}")
# 我喜欢吃苹果
# 我喜欢吃香蕉
# 我喜欢吃橘子
# range(5) → 0,1,2,3,4
for i in range(5):
print(i, end=" ") # 0 1 2 3 4
# range(2, 6) → 2,3,4,5 (从2到5)
for i in range(2, 6):
print(i, end=" ") # 2 3 4 5
# range(1, 10, 2) → 1,3,5,7,9 (步长2)
for i in range(1, 10, 2):
print(i, end=" ") # 1 3 5 7 9
# 倒序
for i in range(5, 0, -1):
print(i, end=" ") # 5 4 3 2 1
fruits = ["苹果", "香蕉", "橘子"]
# 不好的写法(手动索引)
for i in range(len(fruits)):
print(f"{i}: {fruits[i]}")
# 好的写法(用enumerate)
for index, fruit in enumerate(fruits):
print(f"{index}: {fruit}")
# 0: 苹果
# 1: 香蕉
# 2: 橘子
# 九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}×{i}={i*j}", end="\t")
print() # 换行
# 输出:
# 1×1=1
# 1×2=2 2×2=4
# 1×3=3 2×3=6 3×3=9
# ...
# 基本while循环
count = 0
while count < 5:
print(f"第{count}次")
count += 1 # ⚠️ 必须有更新条件的语句,否则死循环!
# 输出5次后停止
# 实际场景:用户输入直到正确
password = ""
while password != "123456":
password = input("请输入密码: ")
print("密码正确!")
# 实际场景:游戏循环
hp = 100
while hp > 0:
damage = int(input("受到伤害: "))
hp -= damage
print(f"剩余HP: {hp}")
print("游戏结束")
Ctrl+C 强制停止。
| 关键字 | 作用 | 比喻 |
|---|---|---|
| break | 立即跳出整个循环 | 紧急逃生门 |
| continue | 跳过本次,进入下一次循环 | 跳过这一站继续开 |
# break: 找到目标就停
for i in range(1, 100):
if i % 7 == 0 and i % 5 == 0:
print(f"找到: {i}") # 35
break # 找到第一个就停,不再继续
# continue: 跳过偶数,只打印奇数
for i in range(10):
if i % 2 == 0:
continue # 跳过偶数,不执行下面的print
print(i, end=" ") # 1 3 5 7 9
# else在循环正常结束时执行(没有break)
for i in range(5):
print(i)
else:
print("循环正常结束") # 会执行
# 如果被break了,else不会执行
for i in range(5):
if i == 3:
break
print(i)
else:
print("这句不会执行")
import random
answer = random.randint(1, 100) # 随机1-100
attempts = 0
print("猜数字游戏!范围1-100")
while True:
guess = int(input("你的猜测: "))
attempts += 1
if guess < answer:
print("太小了")
elif guess > answer:
print("太大了")
else:
print(f"恭喜!{attempts}次猜中!")
break
# 直角三角形
n = 5
for i in range(1, n + 1):
print("*" * i)
# *
# **
# ***
# ****
# *****
# 等腰三角形
for i in range(1, n + 1):
spaces = " " * (n - i)
stars = "*" * (2 * i - 1)
print(spaces + stars)
# *
# ***
# *****
# *******
# *********
输入一个分数(0-100),输出等级(A/B/C/D/F)和评语。90+优秀, 80+良好, 70+中等, 60+及格, 60以下不及格。分数不在0-100范围时提示"无效分数"。
score = float(input("输入分数: "))
if score < 0 or score > 100:
print("无效分数")
elif score >= 90:
print("A - 优秀")
elif score >= 80:
print("B - 良好")
elif score >= 70:
print("C - 中等")
elif score >= 60:
print("D - 及格")
else:
print("F - 不及格")
输出1-100之间所有的素数(只能被1和自身整除的大于1的自然数)。
for num in range(2, 101):
is_prime = True
for i in range(2, int(num ** 0.5) + 1):
if num % i == 0:
is_prime = False
break
if is_prime:
print(num, end=" ")
# 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
输出斐波那契数列前20项:1, 1, 2, 3, 5, 8, 13, 21...(每一项=前两项之和)
a, b = 1, 1
for i in range(20):
print(a, end=" ")
a, b = b, a + b
# 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
给用户最多3次输入密码的机会。密码正确显示"登录成功",3次都错显示"账户锁定"。
correct_password = "python123"
for attempt in range(3):
pwd = input("请输入密码: ")
if pwd == correct_password:
print("登录成功!")
break
else:
remaining = 2 - attempt
if remaining > 0:
print(f"密码错误,还有{remaining}次机会")
else:
print("账户锁定")
输入一个奇数n,打印n行的菱形图案。例如n=5:
* *** ***** *** *
n = int(input("输入奇数: "))
half = n // 2
# 上半部分(含中间行)
for i in range(half + 1):
print(" " * (half - i) + "*" * (2 * i + 1))
# 下半部分
for i in range(half - 1, -1, -1):
print(" " * (half - i) + "*" * (2 * i + 1))
用while循环做一个菜单:1.查余额 2.存款 3.取款 4.退出。初始余额1000,存款取款后更新余额,选4退出程序。
balance = 1000
while True:
print("\n===== 银行菜单 =====")
print("1. 查余额")
print("2. 存款")
print("3. 取款")
print("4. 退出")
choice = input("请选择: ")
if choice == "1":
print(f"余额: {balance}元")
elif choice == "2":
amount = float(input("存款金额: "))
balance += amount
print(f"存款成功,余额: {balance}元")
elif choice == "3":
amount = float(input("取款金额: "))
if amount > balance:
print("余额不足!")
else:
balance -= amount
print(f"取款成功,余额: {balance}元")
elif choice == "4":
print("再见!")
break
else:
print("无效选择")