#循环##目标*程序的三大流程*while循环基本使用*break和continue*while循环嵌套##01.程序的三大流程*在程序开发中,一共有三种流程方式:***顺序**——**从上向下**,顺序执行代码***分支**——根据条件判断,决定执行代码的**分支*****循环**——让**特定代码重复**执行
##02.`while`循环基本使用*循环的作用就是让**指定的代码**重复的执行*`while`循环最常用的应用场景就是**让执行的代码**按照**指定的次数****重复**执行*需求——打印5遍`HelloPython`*思考——如果要求打印遍怎么办?###2.1`while`语句基本语法```python初始条件设置——通常是重复执行的计数器while条件(判断计数器是否达到目标次数):条件满足时,做的事情1条件满足时,做的事情2条件满足时,做的事情3...(省略)...处理条件(计数器+1)```**注意**:*`while`语句以及缩进部分是一个**完整的代码块**####第一个while循环**需求***打印5遍HelloPython```while#1.定义重复次数计数器i=1#2.使用while判断条件whilei=5:#要重复执行的代码print(HelloPython)#处理计数器ii=i+1print(循环结束后的i=%d%i)```注意:循环结束后,之前定义的计数器条件的数值是依旧存在的####死循环由于程序员的原因,**忘记**在循环内部**修改循环的判断条件**,导致循环持续执行,程序无法终止!###2.2赋值运算符*在Python中,使用`=`可以给变量赋值*在算术运算时,为了简化代码的编写,`Python`还提供了一系列的与**算术运算符**对应的**赋值运算符***注意:**赋值运算符中间不能使用空格**
运算符
描述
实例
---
---
---
=
简单的赋值运算符
c=a+b将a+b的运算结果赋值为c
+=
加法赋值运算符
c+=a等效于c=c+a
-=
减法赋值运算符
c-=a等效于c=c-a
*=
乘法赋值运算符
c*=a等效于c=c*a
/=
除法赋值运算符
c/=a等效于c=c/a
//=
取整除赋值运算符
c//=a等效于c=c//a
%=
取**模**(余数)赋值运算符
c%=a等效于c=c%a
**=
幂赋值运算符
c**=a等效于c=c**a
###2.3Python中的计数方法常见的计数方法有两种,可以分别称为:***自然计数法**(从`1`开始)——更符合人类的习惯***程序计数法**(从`0`开始)——几乎所有的程序语言都选择从0开始计数因此,大家在编写程序时,应该尽量养成习惯:**除非需求的特殊要求,否则循环的计数都从0开始**###2.4循环计算在程序开发中,通常会遇到**利用循环****重复计算**的需求遇到这种需求,可以:1.在`while`上方定义一个变量,用于**存放最终计算结果**2.在循环体内部,每次循环都用**最新的计算结果**,**更新**之前定义的变量**需求***计算0~之间所有数字的累计求和结果```python#计算0~之间所有数字的累计求和结果#0.定义最终结果的变量result=0#1.定义一个整数的变量记录循环的次数i=0#2.开始循环whilei=:print(i)#每一次循环,都让result这个变量和i这个计数器相加result+=i#处理计数器i+=1print(0~之间的数字求和结果=%d%result)```####需求进阶*计算0~之间所有**偶数**的累计求和结果开发步骤1.编写循环**确认****要计算的数字**2.添加**结果**变量,在循环内部**处理计算结果**```python#0.最终结果result=0#1.计数器i=0#2.开始循环whilei=:#判断偶数ifi%2==0:print(i)result+=i#处理计数器i+=1print(0~之间偶数求和结果=%d%result)```##03.break和continue`break`和`continue`是专门在循环中使用的关键字*`break`**某一条件满足时**,退出循环,不再执行后续重复的代码*`continue`**某一条件满足时**,不执行后续重复的代码`break`和`continue`只针对**当前所在循环**有效
###3.1break***在循环过程中**,如果**某一个条件满足后**,**不**再希望**循环继续执行**,可以使用`break`退出循环```pythoni=0whilei10:#break某一条件满足时,退出循环,不再执行后续重复的代码#i==3ifi==3:breakprint(i)i+=1print(over)````break`只针对当前所在循环有效###3.2continue***在循环过程中**,如果**某一个条件满足后**,**不**希望**执行循环代码,但是又不希望退出循环**,可以使用`continue`*也就是:在整个循环中,**只有某些条件**,不需要执行循环代码,而其他条件都需要执行```pythoni=0whilei10:#当i==7时,不希望执行需要重复执行的代码ifi==7:#在使用continue之前,同样应该修改计数器#否则会出现死循环i+=1continue#重复执行的代码print(i)i+=1```*需要注意:使用`continue`时,**条件处理部分的代码,需要特别注意**,不小心会出现**死循环**`continue`只针对当前所在循环有效##04.`while`循环嵌套###4.1循环嵌套*`while`嵌套就是:`while`里面还有`while````pythonwhile条件1:条件满足时,做的事情1条件满足时,做的事情2条件满足时,做的事情3...(省略)...while条件2:条件满足时,做的事情1条件满足时,做的事情2条件满足时,做的事情3...(省略)...处理条件2处理条件1```###4.2循环嵌套演练——九九乘法表####第1步:用嵌套打印小星星**需求***在控制台连续输出五行`*`,每一行星号的数量依次递增```***************```*使用字符串*打印```python#1.定义一个计数器变量,从数字1开始,循环会比较方便row=1whilerow=5:print(**row)row+=1```####第2步:使用循环嵌套打印小星星**知识点**对`print`函数的使用做一个增强*在默认情况下,`print`函数输出内容之后,会自动在内容末尾增加换行*如果不希望末尾增加换行,可以在`print`函数输出内容的后面增加`,end=`*其中``中间可以指定`print`函数输出内容之后,继续希望显示的内容*语法格式如下:```python#向控制台输出内容结束之后,不会换行print(*,end=)#单纯的换行print()````end=`表示向控制台输出内容结束之后,不会换行**假设**`Python`**没有提供**字符串的`*`操作**拼接字符串****需求***在控制台连续输出五行`*`,每一行星号的数量依次递增```***************```**开发步骤***1完成5行内容的简单输出*2分析每行内部的`*`应该如何处理?*每行显示的星星和当前所在的行数是一致的*嵌套一个小的循环,专门处理每一行中`列`的星星显示```pythonrow=1whilerow=5:#假设python没有提供字符串*操作#在循环内部,再增加一个循环,实现每一行的星星打印col=1whilecol=row:print(*,end=)col+=1#每一行星号输出完成后,再增加一个换行print()row+=1```####第3步:九九乘法表**需求**输出九九乘法表,格式如下:```1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=*4=*5=52*5=*5=*5=*5=*6=62*6=*6=*6=*6=*6=*7=72*7=*7=*7=*7=*7=*7=*8=82*8=*8=*8=*8=*8=*8=*8=*9=92*9=*9=*9=*9=*9=*9=*9=*9=81```**开发步骤***1.打印9行小星星```*********************************************```*2.将每一个`*`替换成对应的行与列相乘```python#定义起始行row=1#最大打印9行whilerow=9:#定义起始列col=1#最大打印row列whilecol=row:#end=,表示输出结束后,不换行#\t可以在控制台输出一个制表符,协助在输出文本时对齐print(%d*%d=%d%(col,row,row*col),end=\t)#列数+1col+=1#一行打印完成的换行print()#行数+1row+=1```**字符串中的转义字符***`\t`在控制台输出一个**制表符**,协助在输出文本时**垂直方向**保持对齐*`\n`在控制台输出一个**换行符****制表符**的功能是在不使用表格的情况下在**垂直方向**按列对齐文本
转义字符
描述
---
---
\\\\
反斜杠符号
\\
单引号
\\
双引号
\n
换行
\t
横向制表符
\r
回车