Python 基础详解:入门宝典(2)

八、流程控制语句

1、顺序结构(默认结构)

概述:
        它就是用来控制Python代码执行的, 先执行谁, 后执行谁, 不执行谁, 重复执行谁等

print('----- start -----')
print('hello 1' + 'aa' + '5' + '10')
print('hello2')
print('hello3')
print('----- end -----') 

----- start -----
hello 1aa510
hello2
hello3
----- end -----
2、分支结构

概述:
        在条件满足的情况下, 才会被执行的内容, 且只执行一次, 就是: 分支结构.
        分支结构特指的是: if语句.

执行流程:
        1. 先执行判断条件, 看其是否成立.
        2. 如果判断条件成立, 则执行 对应的语句体, 然后if语句执行结果.
        3. 如果判断条件不成立, 则什么都不做.

1)  if单分支
a = 10
# if a > 3:
if a < 5:
    print('if 语句体1')
    print('if 语句体2')

print('因为我和if是对齐的, 所以我们是平级, 无论if判断条件是否成立, 我都会执行!')
2)if-双分支

格式:
        if 判断条件:
            语句体1
        else:
            语句体2

判断是否 超过 150cm, 如果没有超过, 无需买票

if height <= 150:
    print('可以进动物园了, 无需买票')
else:
    # 3. 否则, 需要买票.
    print('您太高了, 需要买票才能进入动物园!')
3)if-多分支

格式:
        if 条件1:
            语句体1
        elif 条件2:
            语句体2
        elif 条件3:
            语句体3
        ......
        else:
            语句体n

执行流程:
        1. 先执行条件1, 看其是否成立, 成立则执行语句体1, 然后整个if语句结束.
        2. 如果条件1不成立, 则执行条件2, 看其是否成立, 成立则执行语句体2, 然后整个if语句结束.
        3. 如果条件2不成立, 则执行条件3, 看其是否成立, 成立则执行语句体3, 然后整个if语句结束.
        4. 重复上述的步骤, 如果所有的判断条件都不成立, 则执行 最后1个else的 语句体n, 至此, if语句结束.

    细节:
        1. 根据需求 elif 可以写多个.
        2. 最后的else语句可以省略不写, 但是它代表着所有条件都不成立的情况, 所以建议加上.
        3. 以后测试数据的时候, 建议测试三种值:
            和法值.
            边界值.
            非法值.

# 1. 导包, 即: 通过第三方的包来实现.
import random

# 2. 通过 random.randint(a, b) 函数实现 获取随机数.
print(random.randint(1, 3))     # 包左包右, 生成 1 ~ 3之间的随机数.

# 具体的完成 猜拳游戏案例, 规则: 石头 -> 1, 剪刀 -> 2, 布 -> 3.
# 1. 键盘录入玩家的手势编号, 并接收. 记得转成数值.
player = int(input('请输入您的手势编号, 规则: 石头(1), 剪刀(2), 布(3)  => '))

# 2. 随机生成 电脑人的 手势编号.
pc = random.randint(1, 3)
# print(f'电脑人的手势编号为: {pc}')

# 3. 比较 玩家 和 电脑人的手势编号, 并打印结果.
# 情况1: 玩家胜利.   玩家:石头, 电脑: 剪刀,    玩家:剪刀, 电脑:布,    玩家: 布, 电脑: 石头
if (player == 1 and pc == 2) or (player == 2 and pc == 3) or (player==3 and pc == 1):
    print('玩家 获得胜利')
elif pc == player:
    # 情况2: 平局.
    print('哎呀, 平局了!')
elif (player == 1 and pc == 3) or (player == 2 and pc == 1) or (player==3 and pc == 2):
    # 情况3: 电脑人 胜利
    print('电脑人 获得胜利!')
else:
    print('手势编号有误, 该轮无成绩!')
3.循环结构

概述:
        它属于流程控制语句的一种, 表示: 周而复始, 即: 满足某些条件的情况下, 重复的做某些事儿.
分类:
        while循环         更适用于 循环次数不固定的情况.
        for循环           更适用于 循环次数固定的情况.
循环的要素:
        1. 初始化条件.    表示 循环从哪里开始执行.
        2. 判断条件.      表示 循环什么时候终止, 只要判断条件满足, 循环就一直执行.
        3. 循环体.       表示 判断条件成立的情况下, 重复做的事儿.
        4. 控制条件.     表示 控制初始化条件变化的.

1) while循环详解:
        格式:
            初始化条件1
            while 判断条件2:
                循环体3
                控制条件4

        执行流程:
            第1次循环:   1, 2, 3, 4           假设: 判断条件成立.
            重复循环:    2, 3, 4              假设: 判断条件成立.
            最后1次循环: 2                    判断条件不成立, 循环结束.

while循环-求和 :

         while循环 计算 1 ~ 100之间的数字和.


# 1. 定义求和变量sum, 记录数字的累加和.
sum = 0

# 2. 定义变量i, 表示 while循环的 初始化条件, 且 i是从1开始获取的.
i = 1

# 3. 通过 while循环, 获取到 1 ~ 100之间所有的数字.
while i <= 100:     # i的值: 1, 2, 3, 4, 5......
    # 4. 具体的累加(求和)动作, 将获取到的数字 累加给 sum
    # print(i)
    sum = sum + i

    # 5. 每次操作完毕后, 记得 修改初始化条件的值, 即: 这步是 控制条件.
    i += 1

# 6. 循环执行结束后, 打印结果即可.
print(f'1 ~ 100之间的数字和为: {sum}')
while循环-统计:

打印所有的水仙花数.(水仙花数(也称为自幂数或阿姆斯特朗数)是指一个 n 位数,其各位数字的 n 次幂之和等于该数本身。例如,三位数的水仙花数有 153,因为 13+53+33=1531^3 + 5^3 + 3^3 = 15313+53+33=153。)

# 1. 定义初始化值, 从 100 开始.
i = 100
# 2. while循环, 获取到 100 ~ 1000之间所有的值, 包左不包右.
while i < 1000:     # 假设:  i = 2153
    # 3. 获取该数字的各个位数 数字.
    ge = i  // 1  % 10
    shi = i // 10 % 10
    bai = i // 100 % 10

    # 4. 判断是否是水仙花数, 如果是, 就打印.
    if ge * ge * ge + shi * shi * shi + bai * bai * bai == i:
        # 走这里, 是水仙花数.
        print(i)

    # 5. 控制条件, 记得: i += 1
    i += 1

2) for循环详解

概述:
        它属于 循环结构的一种, 主要用于 循环次数固定的 哪些循环.
        例如: 遍历字符串, 列表...
格式:
        for 临时变量 in 容器类型-例如字符串,列表等 :
            循环体
细节:
        1. 临时变量就是 从容器类型中获取到的每一个值, 用临时变量来记录.
        2. for循环的临时变量, 只能在for循环内部使用, 除了for循环就不能用了.
           这个是变量的: 作用域, 即: 变量在哪里能用, 在哪里不能用.

   for循环, 打印 1 ~ 5之间的数字.


# 扩展: range(起始值, 结束值, 步长)  生成指定范围内的数字(包左不包右, 前闭后开), 默认的起始值: 0, 默认的步长是: 1
# for i in range(5):        # 相当于你写了: range(0, 5, 1), 即: (0, 1, 2, 3, 4)
# for i in range(2, 5):     # 相当于你写了: range(2, 5, 1), 即: (2, 3, 4)
# for i in range(1, 7, 2):  # 从1开始, 到7结束, 间隔2.  即: (1, 3, 5)
for i in range(1, 6):
    print(i)
3)控制跳转语句

概述:
        控制跳转语句指的是 break 和 continue这两个关键字, 他们可以控制循环的执行.
作用:
        continue: 结束本次循环, 进行下次循环的.
        break: 终止循环, 即: 循环不再继续执行了.

观察如下的代码, 再其中填充指定内容, 使其能够完成 打印2次, 7次, 13次 'Hello World'


for i in range(1, 11):      # i的值: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    if i % 3 == 0:
        # 这里加内容
        # break         # 看到break, 循环结束, 即: 打印的有 1, 2
        # continue      # 看到continue, 就结束本次循环, 立即开启下次循环, 即: 不打印的值有: 3, 6, 9
        print(f'hello world! {i}')

    print(f'hello world! {i}')

print('至此, for循环就执行结束了!')
扩展-循环+else语法

循环 + else语法:
    概述:
        else语句除了可以和 if语句结合使用外, 还可以和 循环一起使用.
    格式:
        while 或者 for循环:
            循环体
        else:
            语句体
    执行特点:
        1. 只要循环是正常退出的, 就一定会执行 else中的内容.
        2. 循环正常退出 指的是 非break的方式跳出.
        3. 大白话: 只要循环不是break方式跳出的, 就会走else的内容, 否则不执行else的内容.

for i in range(1, 11):      # i的值: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
    if i % 3 == 0:
        # continue            # 结束本次循环, 进行下次循环的.
        break
    print(f'hello world! {i}')
else:
    print('我是else, 看看我执行了吗?')

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值