Skip to content

嵌套条件与迭代语句

  1. 猜数字(限定次数):程序随机生成 1-10 之间的整数,让用户猜,最多猜 3 次,超时则提示失败。
python
import random

# 生成 1-10 之间的随机数
secret_num = random.randint(1, 10)
guess_count = 0  # 初始化猜测次数计数器
max_guesses = 3  # 最大猜测次数

print(f"欢迎猜数字!我想了一个 1-10 的整数,你有 {max_guesses} 次机会。")

# while 循环:次数未用完时,持续允许猜测
while guess_count < max_guesses:
    # 计算剩余次数(提升用户体验)
    remaining = max_guesses - guess_count
    # 获取用户猜测
    guess = int(input(f"第 {guess_count+1} 次猜,请输入数字: "))
    guess_count += 1  # 次数+1
    
    # 判断猜测结果
    if guess == secret_num:
        print(f"恭喜!你猜对了!用了 {guess_count} 次机会。")
        break  # 猜对,跳出循环
    elif guess < secret_num:
        print(f"太小了!还剩 {remaining-1} 次机会。")
    else:
        print(f"太大了!还剩 {remaining-1} 次机会。")
else:
    # 循环正常结束(未触发 break)→ 次数用完
    print(f"机会用完啦!正确答案是 {secret_num}。")
  1. 用 for 循环打印 1-20,跳过能被 3 整除的数
python
print("1-20 中不能被 3 整除的数:")
for num in range(1, 21):
    if num % 3 == 0:  # 判断是否能被 3 整除
        continue       # 跳过当前循环,直接进入下一次迭代
    print(num, end=" ")  # 只打印不被跳过的数字
  1. 用 while 循环找 100 以内第一个能被 17 整除的数
python
num = 1  # 初始化计数器
found = False  # 标记是否找到目标数

while num <= 100:
    if num % 17 == 0:  # 判断是否能被 17 整除
        print(f"100 以内第一个能被 17 整除的数是:{num}")
        found = True
        break  # 找到后立即终止循环,无需继续遍历
    num += 1  # 未找到则计数器自增

if not found:
    print("100 以内没有能被 17 整除的数")  # 兜底判断(本题不会触发)

基于 VitePress 构建的 AP CSP 学习平台