09_Python基础_循环

1.程序的三大流程

在程序开发中,  一共有三种流程方式 :

  • 顺序 ---- 从上向下,  顺序执行代码
  • 分支 ---- 根据条件判断, 决定执行代码的 分支,如If语句的使用
  • 循环 ---- 让 特定代码 重复执行,如while语句的使用

2.while循环的基本使用

  • 循环的作用就是让 指定的代码 重复的执行
  • while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行

2.1 while 语句基本语法

初始条件设置 ---- 通常是重复执行的 计数器
 
while  条件(判断 计数器  是否达到  目标次数):
    条件满足时,  做得事情1
    条件满足时,  做得事情2
    条件满足时,  做得事情3
    ......
 
    处理条件(计数器 + 1)

注意:while 语句以及缩进部分是一个 完整的代码块

2.2  while 演练

# 打印 5 遍 Hello Python
# 1. 定义一个整数变量, 记录循环次数
i = 0
 
# 开始循环
while i < 5:
    # 循环中要执行的代码
    print("Hello Python")
    # 计数器 
    i = i +1  # 也可以这样表达 i += 1
 
# 循环结束 i 的值是多少
print("循环结束 i 的值是%d" % i) # i 等于 5

注意:  循环结束后,  之前定义的计数器条件的数值是依旧存在的(存储空间并为释放)

2.3  死循环

就是 在循环内部 循环的判断条件有问题, 导致循环一直执行, 程序无法终止!

while 1:
    一直执行的内容

3.break和continue

break 和 continue 是专门在循环中使用的关键字

  • break 某一条件满足时,退出循环,不再执行后续重复的代码
  • continue 某一条件满足时,不执行后续重复的代码

注意:break 和 continue 只针对 当前所在循环 有效

3.1 break

  • 在循环过程中,如果 某一个条件满足后,不再希望循环继续执行,可以使用 break 退出循环
  • break 只针对当前所在循环有效
  • 用berak跳出循环后,循环到此结束 
i = 0

while i < 10:

    # break 某一条件满足时,退出循环,不再执行后续重复的代码
    # i == 3
    if i == 3:
        break

    print(i)

    i += 1

print("over")

3.2 continue

  • 在循环过程中,如果 某一个条件满足后不希望望执行循环代码,但是又不希望退出循环,可以使用 continue
  • 在整个循环中,只有某些条件,不需要执行循环代码,而其他条件都需要执行,即循环还可继续
  • 需要注意:使用 continue 时,条件处理部分的代码,需要特别注意,不小心会出现 死循环
  • i = 0
    
    while i < 10:
    
        # 当 i == 7 时,不希望执行需要重复执行的代码
        if i == 7:
            # 在使用 continue 之前,同样应该修改计数器
            # 否则会出现死循环
            i += 1
    
            continue
    
        # 重复执行的代码
        print(i)
    
        i += 1
    
    
    注意:continue 只针对当前所在循环有效

4.while循环嵌套

4.1 循环嵌套

while 嵌套就是:while 里面还有 while

while 条件 1:
    条件满足时,做的事情1
    条件满足时,做的事情2
    条件满足时,做的事情3
    ...(省略)...
    
    while 条件 2:
        条件满足时,做的事情1
        条件满足时,做的事情2
        条件满足时,做的事情3
        ...(省略)...
    
        处理条件 2
    
    处理条件 1

4.2 循环嵌套演练 —— 九九乘法表

第 1 步:用嵌套打印小星星

需求:

在控制台连续输出五行 *,每一行星号的数量依次递增

*
**
***
****
*****

使用字符串 * 打印

# 1. 定义一个计数器变量,从数字1开始,循环会比较方便
row = 1

while row <= 5:

    print("*" * row)

    row += 1

第 2 步:使用循环嵌套打印小星星

知识点 对 print 函数的使用做一个增强

在默认情况下,print 函数输出内容之后,会自动在内容末尾增加换行

如果不希望末尾增加换行,可以在 print 函数输出内容的后面增加 , end=""

其中 "" 中间可以指定 print 函数输出内容之后,继续希望显示的内容

语法格式如下:

# 向控制台输出内容结束之后,不会换行
print("*", end="")

# 单纯的换行
print("")

end="" 表示向控制台输出内容结束之后,不会换行

假设 Python 没有提供 字符串的 * 操作 拼接字符串

需求

  • 在控制台连续输出五行 *,每一行星号的数量依次递增

开发步骤:

1> 完成 5 行内容的简单输出

2> 分析每行内部的 * 应该如何处理?

每行显示的星星和当前所在的行数是一致的

嵌套一个小的循环,专门处理每一行中  的星星显示

row = 1

while row <= 5:

    # 假设 python 没有提供字符串 * 操作
    # 在循环内部,再增加一个循环,实现每一行的 星星 打印
    col = 1

    while col <= row:
        print("*", end="")

        col += 1

    # 每一行星号输出完成后,再增加一个换行
    print("")

    row += 1

第 3 步: 九九乘法表

需求 输出 九九乘法表,格式如下:

1 * 1 = 1	
1 * 2 = 2	2 * 2 = 4	
1 * 3 = 3	2 * 3 = 6	3 * 3 = 9	
1 * 4 = 4	2 * 4 = 8	3 * 4 = 12	4 * 4 = 16	
1 * 5 = 5	2 * 5 = 10	3 * 5 = 15	4 * 5 = 20	5 * 5 = 25	
1 * 6 = 6	2 * 6 = 12	3 * 6 = 18	4 * 6 = 24	5 * 6 = 30	6 * 6 = 36	
1 * 7 = 7	2 * 7 = 14	3 * 7 = 21	4 * 7 = 28	5 * 7 = 35	6 * 7 = 42	7 * 7 = 49	
1 * 8 = 8	2 * 8 = 16	3 * 8 = 24	4 * 8 = 32	5 * 8 = 40	6 * 8 = 48	7 * 8 = 56	8 * 8 = 64	
1 * 9 = 9	2 * 9 = 18	3 * 9 = 27	4 * 9 = 36	5 * 9 = 45	6 * 9 = 54	7 * 9 = 63	8 * 9 = 72	9 * 9 = 81

开发步骤:

1.打印 9 行小星星

​
*
**
***
****
*****
******
*******
********
*********

​

 

2.将每一个 * 替换成对应的行与列相乘

# 定义起始行
row = 1

# 最大打印 9 行
while row <= 9:
    # 定义起始列
    col = 1

    # 最大打印 row 列
    while col <= row:

        # end = "",表示输出结束后,不换行
        # "\t" 可以在控制台输出一个制表符,协助在输出文本时对齐
        print("%d * %d = %d" % (col, row, row * col), end=" ")

        # 列数 + 1
        col += 1

    # 一行打印完成的换行
    print("")

    # 行数 + 1
    row += 1

控制台输出结果为:

此时发现竖排数字无法对齐,这是需要转义字符来帮助我们处理。

4.3 转义字符

  • \t 在控制台输出一个 制表符,协助在输出文本时 垂直方向 保持对齐
  • \n 在控制台输出一个 换行符
  • 制表符 的功能是在不使用表格的情况下在 垂直方向 按列对齐文本

添加转义符,再次修改代码:

输出结果:

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值