11 循环
1)程序的三大流程
在程序开发中,一共有三种流程方式:
(1)顺序:从上向下,顺序执行代码
(2)分支:根据条件判断,决定执行代码的分支
(3)循环:让特定代码重复执行
2)while循环基本使用
循环的作用就是让指定的代码重复的执行
while循环最常用的应用场景就是让执行的代码按照指定的次数重复执行
(1) while语句基本语法
初始条件设置:通常是重复执行的计数器
while 条件(判断 计数器是否达到目标次数):
条件满足时,做的事情1
条件满足时,做的事情2
条件满足时,做的事情3 ...
(省略)...
处理条件(计数器 + 1)
注意:while语句以及缩进部分是一个完整的代码块
(2)第一个 while 循环
①需求
打印 5 遍 Hello Python
②代码
注意:循环结束后,之前定义的计数器条件的数值是依旧存在的
(3)死循环
由于程序员的原因,忘记在循环内部修改循环的判断条件,导致循环持续执行,程序无法终止!
3)赋值运算符
在Python中,使用“=”可以给变量赋值
在算术运算时,为了简化代码的编写,Python还提供了一系列的与算术运算符对应的赋值运算符
注意:赋值运算符中间不能使用空格
4)Python 中的计数方法
常见的计数方法有两种,可以分别称为:
(1)自然计数法(从 1 开始)—— 更符合人类的习惯
(2)程序计数法(从 0 开始)—— 几乎所有的程序语言都选择从 0 开始计数
因此,大家在编写程序时,应该尽量养成习惯:
除非需求的特殊要求,否则 循环 的计数都从 0 开始
5)循环计算
在程序开发中,通常会遇到利用循环重复计算的需求
遇到这种需求,可以:
在while上方定义一个变量,用于存放最终计算结果
在循环体内部,每次循环都用最新的计算结果,更新之前定义的变量
(1)需求
计算 0 ~ 100 之间所有数字的累计求和结果
(2)代码
(3)需求进阶
计算0-100之间所有偶数的累计求和结果
(4)代码
6)break 和 continue
break和continue 是专门在循环中使用的关键字
break某一条件满足时,退出循环,不再执行后续重复的代码
continue某一条件满足时,不执行后续重复的代码,继续执行下一个循环。
break和continue只针对当前所在循环有效
(1)break(跳出循环)
在循环过程中,如果某一个条件满足后,不再希望循环继续执行,可以使用break退出循环
举例说明:
i=3时循环中断,输出结果:1、2
break只针对当前所在循环有效
(2)continue(跳过一些循环代码)
在循环过程中,如果某一个条件满足后,不希望执行循环代码,但是又不希望退出循环,可以使用continue
在整个循环中,只有某些条件,不需要执行循环代码,而其他条件都需要执行
举例说明:
i=3时跳过print,输出结果:1、2、4、5
需要注意:
使用continue时,条件处理部分的代码,需要特别注意,不小心会出现死循环
continue只针对当前所在循环有效
7)while 循环嵌套
(1)循环嵌套的概念
while嵌套就是:while里面还有while
(2)print增强
①end=
在默认情况下,print函数输出内容之后,会自动在内容末尾增加换行。如果不希望末尾增加换行,可以在print函数输出内容的后面增加“, end=""”。其中""中间可以指定print函数输出内容之后,继续希望显示的内容
print()的末尾默认是换行符,使用end=””将用引号内的字符串替换换行符。从而取消换行的作用
语法格式如下:
print() //也可实现换行功能
②彩色打印
终端的字符颜色是用转义序列控制的,转义序列是以ESC开头,即用 33来完成(ESC的ASCII码用十进制表示是27,用八进制表示就是033)。
彩色格式:
开头部分: 33[显示方式;前景色;背景色m + 输出内容 + 结尾部分: 33[0m
显示方式: 0(默认)、1(高亮)、22(非粗体)、4(下划线)、24(非下划线)、 5(闪烁)、25(非闪烁)、7(反显)、27(非反显)
前景色: 30(黑色)、31(红色)、32(绿色)、 33(黄色)、34(蓝色)、35(洋 红)、36(青色)、37(白色)
背景色: 40(黑色)、41(红色)、42(绿色)、 43(黄色)、44(蓝色)、45(洋 红)、46(青色)、47(白色)
print(" 33[4;31;43m 你好! 33[0m")
(3)循环嵌套 — 输出小星星
①需求
在控制台连续输出五行“*”,每一行星号的数量依次递增
②代码1:乘法
代码2:循环嵌套
③输出结果
(4) 循环嵌套演练 — 九九乘法表
输出结果:
使用转义字符美化:
① :在控制台输出一个制表符,协助在输出文本时垂直方向保持对齐
②
:在控制台输出一个换行符
③其它常用转义字符
(5)直接退出多重循环
8)while...else 语法
当while/for循环正常执行完的情况下,执行else输出;
如果当while/for循环中执行了跳出循环的语句,比如break,将不执行else代码块的内容;
9)使用flag退出循环
10)for 循环
(1)range()
range() 函数可创建一个整数列表,一般用在 for 循环中,用于控制循环次数
使用range迭代遍历,可以打印出索引
(2)for循环
使用while实现迭代遍历,效果相同,但复杂一些。
(3)for ... else
for......else......的执行顺序为:
当迭代对象完成所有迭代后,且此时的迭代对象为空时,如果存在else子句则执行else子句。
执行结果:打印“不相等”
如果迭代对象因为某种原因(如带有break关键字)提前退出迭代,则else子句不会被执行,程序将会直接跳过else子句继续执行后续代码
执行结果:打印“2”