2.4. 嵌套循环

1️⃣概念:在一个循环的内部,再写一个或多个循环,就是嵌套循环。

2️⃣案例:实现一个为期 30 天的健身计划,效果如图:

图片[1]-2.4. 嵌套循环-大赛人网
# for循环实现
day = 1
for day in range(1,31):
    print(f'********📅第{day}天********')
    for group in range(1,4):
        print(f'💪这是第{group}组仰卧起坐')
    print(f'✅第{day}天任务已完成!明天继续!\n')
print(f'🎉为期{day}天的健身计划完成,我的腹肌在闪闪发光!')

# while循环实现
day = 1
while day <= 30:
    print(f'********📅第{day}天********')
    group = 1
    while group <= 3:
        print(f'💪这是第{group}组仰卧起坐')
        group += 1
    print(f'✅第{day}天任务已完成!明天继续!\n')
    day += 1
print(f'🎉为期{day - 1}天的健身计划完成,我的腹肌在闪闪发光!')

2.5. 九九乘法表案例

案例效果如图:

图片[2]-2.4. 嵌套循环-大赛人网

print(‘你好’, end=”) 中的end用来控制打印后结尾输出的内容。

# 前序知识
print('你好', end='')
print('大赛人', end='')

# for循环实现九九乘法表
for row in range(1, 10):
    for item in range(1, row + 1):
        print(f'{item}*{row}={item * row}', end='\t')
    print()

2.6. continue 与 break

continue和break都可用于循环语句中(while循环、for循环都可以)它们的作用分别是:

  • continue:跳过本次循环剩余语句,直接进入下一次循环判断。
  • break:立即终止循环,不再执行后续循环。

1️⃣测试continue

# 测试continue
for day in range(1, 5):
    print(f'********第{day}天********')
    print('吃饭')
    continue
    print('睡觉')

for day in range(1, 5):
    print(f'********第{day}天********')
    print('吃饭')
    if day == 2:
        continue
    print('睡觉')

for day in range(1, 5):
    if day == 2:
        continue
    print(f'********第{day}天********')
    print('吃饭')
    print('睡觉')

for day in range(1, 5):
    print(f'********第{day}天********')
    print('吃饭')
    for item in range(1, 3):
        print(f'面包{item}')
        continue
        print(f'牛奶{item}')
    print('睡觉')

for day in range(1, 5):
    print(f'********第{day}天********')
    print('吃饭')
    for item in range(1, 3):
        print(f'面包{item}')
        if day == 4 and item == 2:
            continue
        print(f'牛奶{item}')
    print('睡觉')

2️⃣测试break

  • 建议参考视频教程中对下方代码的分析与讲解:
for day in range(1, 5):
    print(f'********第{day}天********')
    print('吃饭')
    break
    print('睡觉')

for day in range(1, 5):
    print(f'********第{day}天********')
    print('吃饭')
    if day == 2:
        break
    print('睡觉')

for day in range(1, 5):
    if day == 2:
        break
    print(f'********第{day}天********')
    print('吃饭')
    print('睡觉')

for day in range(1, 5):
    print(f'********第{day}天********')
    print('吃饭')
    for item in range(1,3):
        print(f'面包{item}')
        if day == 4 and item == 2:
            break
        print(f'牛奶{item}')
    print('睡觉')

2.7. 综合案例

图片[3]-2.4. 嵌套循环-大赛人网
print('🏆欢迎来到:答题闯关挑战赛(输入q可随时退出)\n')

# 题目与答案
ques1, ans1 = 'Python中用于输出的函数是?', 'print'
ques2, ans2 = 'Python中用于表示逻辑“并且”的关键字是?', 'and'
ques3, ans3 = 'Python属于编译型还是解释型?', '解释型'

# 最多可尝试次数
max_tries = 3
# 总关卡数
total_levels = 3
# 是否处于可游戏状态
is_playing = True

# 根据题目数量开始循环
for level in range(1, total_levels + 1):
    # 打印当前是第几关
    print(f'********🎯第{level}关********')
    # 取出当前关卡所对应的题目和答案
    if level == 1:
        question, answer = ques1, ans1
    elif level == 2:
        question, answer = ques2, ans2
    else:
        question, answer = ques3, ans3
    # 记录当前关卡的尝试次数
    tries = 1
    # 若已经尝试的次数,小于等于最大尝试次数,则进入循环
    while tries <= max_tries:
        # 向用户提问
        user_input = input('📢'+question)
        # 根据用户的输入,来决定做什么
        if user_input == answer:
            print('✅回答正确!\n')
            break
        elif user_input == '':
            print('⚠️您的输入为空,请重新作答!\n')
            continue
        elif user_input == 'q':
            print('👋您已退出游戏!\n')
            is_playing = False
            break
        else:
            # 计算剩余次数
            leave = max_tries - tries
            # 判断是否还有剩余次数
            if leave > 0:
                print(f'❌回答错误,您还剩{leave}次机会!\n')
                tries += 1
                continue
            else:
                print(f'😢挑战失败,本题的正确答案是:{answer},游戏结束!')
                is_playing = False
                break
    # 每次进入下一关之前,都要看一下is_playing,如果is_playing为False就要结束游戏!
    if not is_playing:
        break
# 如果到了这里,is_playing的值依然为True,那就意味着用户已经通关了!
if is_playing:
    print('🎉🎉🎉恭喜您!全部通关!🎉🎉🎉')
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容