3.4 Python3 基础 - 循环结构之 break / continue / else / pass 语句

>>返回主目录



源码

# break和continue的区别
sum_no = 0
for i in range(1, 11):
    if i % 3 == 0:
        break
        # continue
    sum_no = sum_no + i
print('sum_no = ', sum_no)

源码

# for或while结束后使用else子句
sum_no = 0
i = 0  # 初始化i,否则else里面的i会提示未定义
for i in range(1, 11):
    if i % 3 == 0:
        # break
        continue
    sum_no = sum_no + i
else:
    print('i = ', i)
print('sum_no = ', sum_no)

源码

# pass语句
for i in range(5):
    pass
print('程序不报错,直接输出!')

源码

# 练习:已知str_word = 'I Love Python!',输出不包含字母‘o’的新字符串
str_word = 'I Love Python!'
new_word = ''
for i in str_word:
    if i == 'o':
        pass
    else:
        new_word = new_word + i
print('输出不包含字母‘o’的新字符串是:', new_word)

源码

# Author:PortosHan
# Datetime:2021/3/25 16:35
# Project:zbcf_python_lesson_project
"""
练习:猜数字游戏(循环语句和条件语句互相嵌套)
游戏规则:
1、必须输入姓名,输错或未输入最多3次重试机会
2、随机生成一个50以内的正整数
3、输入猜测的数字,若猜错,提示大或小,继续猜测
4、猜测次数上限5次(可自行设置)最后一次告知结果
5、猜对游戏结束,猜错可玩3次
思路:
首先,先来了解下“猜数字游戏”的过程:系统随机生成一个50以内的正整数,
然后由我们去猜测这个数字,猜对了就结束游戏,猜错了系统会提示我们
猜大了还是猜小了,第五次如果还没有猜对,则告诉我们正确答案!
其次,我们根据游戏规则,粗略写出大致的伪代码,如:
for _ in range(3):  # 外循环,姓名3次重输机会
    random.randint(1, 50)  # 系统生成一个50以内的随机正整数
    input('输入一个猜测的数字')
    for guess_limit in range(1, 6):  # 内循环,猜数字游戏具体实现,5次猜测机会
        if int(guess_no) > random_no:  # 猜大
        elif int(guess_no) < random_no:  # 猜小
        else:  # 猜对
            break  # 跳出循环
"""

import random
"""以下代码逻辑也基本是按照伪代码|游戏规则去完成的,大家可以根据自己的理解进行优化"""
flag = False  # 设置一个是否跳出循环的flag
print('----------------游戏开始,欢迎大驾光临!----------------')
# 外循环,玩3次,可自行设置次数
for _ in range(3):
    name = input('请输入您的姓名:')
    if name:
        print(f'亲爱的{name},欢迎进入“数字猜猜猜”游戏!')
        random_no = random.randint(1, 50)
        limit_no = 5  # 设置一个猜测次数
        print(f'现在系统已经生成一个50以内的正整数,若{limit_no}次没有猜中,将结束本次游戏!')
        # 内循环,猜5次
        for guess_limit in range(1, limit_no + 1):
            guess_no = input('请输入您心中所想的1~50之间的整数:')
            if guess_no and guess_no.isnumeric():  # 第一层判断猜测的数字非空且为数字
                if 0 <= int(guess_no) <= 50:  # 第二层判断猜测的数字在50以内
                    if int(guess_no) > random_no:  # 第三层判断猜测的数字比生成的数字大
                        if guess_limit < 5:  # 第四层判断猜测的次数小于5
                            print(f'第{guess_limit}次猜测,您猜的数字“大”了!')
                        else:  # 第四层分支判断猜测的次数等于5
                            print(f'您的次数已用尽,最终心怡数字是:{random_no}')
                    elif int(guess_no) < random_no:  # 第三层分支判断猜测的数字比生成的数字小
                        if guess_limit < 5:  # 第四层判断猜测的次数小于5
                            print(f'第{guess_limit}次猜测,您猜的数字“小”了!')
                        else:  # 第四层分支判断猜测的次数等于5
                            print(f'您的次数已用尽,最终心怡数字是:{random_no}')
                    else:  # 第三层分支判断猜测的数字等于生成的数字
                        print(f'第{guess_limit}次猜测,恭喜您,猜对了!')
                        flag = True  # 把flag重置为True
                        break  # 猜对跳出循环
                else:
                    print('您输入的数字有误,请重新输入50以内的正整数!')
            elif guess_no == 'q':
                print('您已放弃此轮猜测,请重新开始游戏!')
            else:
                print('您已弃权一次猜测机会,请重新输入!')
    else:
        print('您输入的姓名有误,请重新输入您的姓名!')
    if flag:  # 猜对后,用于跳出外层循环
        break
print('----------------游戏结束,欢迎再次光临!----------------')

>>返回主目录

posted @ 2021-03-26 17:10  PortosHan  阅读(129)  评论(0编辑  收藏  举报