目录
5.1while循环的嵌套
while循环在之前的文章也已经完成介绍,这里来说以下关于while循环的嵌套,这个嵌套的含义与for嵌套其实差不多,但是结构上还是又很大的差别的
while循环嵌套的基本结构:
while 条件1:
条件1满足时执行命令(当然可以写很多你想要python代码在这里所作的事情)
while 条件2:
条件的时候,执行命令
这里来举一个关于写出九九乘法表的代码
首先99乘法表有一定的格式,在这里有一个关于format格式的一种写法,在第二章的第一节就已经讲述了,所以并不在这里过多的赘述。
首先写代码一定有一个逻辑推理的过程,99乘法表首先有格式,是一张表格。其中所有的东西都满足(a)*(b)=(a*b)这样一种形式,所以我们首先可以写出我们需要打印出来这种格式的代码,这里显然使用format语句
print(f"{}*{}={}")
列出这个之后,我们要做的就是将这几个空格填满,首先来看一下等号前面的东西,很简单既然是99乘法表,那这两个数字一定是小于等于9的,所以就可以开始写关于while循环的代码了
i=1
while i <=9:
j=1
while j<=9:
print(f"{i}*{j}={}")
这样子我的前面两个空填完了,那后面就是i*j。
i=1
while i <=9:
j=1
while j<=9:
print(f"{i}*{j}={i*j}")
j+=1
i+=1
这里别忘记了最后的两步,在相应的代码块的最后加上关于j+=1与i+=1 不然真个代码会一直循环1*1=1
打印出来是
突然发现,这个好像不是我们所熟悉的99乘法表,99乘法表是一张表格,这个一列显然不满足我们的要求,所以这里要知道一个命令叫做end=“”,这个的含义就是结束的时候是按照横排进行打印,所以推到这里感觉差不多了,我们来实践一下
i=1
while i <=9:
j=1
while j<=9:
print(f"{i}*{j}={i*j}",end=" ")
j+=1
i+=1
打印出来的结果是
显然这个代码比之前的要好一点,但是依旧不满足我们的要求,这里还需要继续修改代码,继续的找到问题的所在并且一步一步推下去。
这里通过观察就能发现这里有两个问题,第一个没有分行,第二个有很多的重复
首先解决第一个
python的分行使用\n
i=1
while i <=9:
j=1
while j<=9:
print(f"{i}*{j}={i*j}",end=" ")
j+=1
print("\n")
i+=1
为什么写在这里呢,你可以想一下关于i=1,j=1的时候,完成了其他的打印命令,按照了format语句与end命令打印出来,然后在里面那个while循环结束后,就会产生1*1,1*2,1*3,1*4,1*5,1*6……之后完成了j的循环之后,我需要分行,分行完成后,i=2,继续这样子的循环
其实说到底很简单,就是先确定i是什么,然后j用1--9来进行相乘。接着i=2,j用1--9来相乘,所以当然应该在i改变之前换行一下。
但是这没有解决第二个问题,重复,这里有很多重复的东西,并不满足我们小学的时候看到的没有重复的表格。这个重复是我们的初步逻辑所诞生出来的产物。
初步逻辑认为i等于一个数,然后使用j等于1--9这几个数字进行相乘从而得出的表格,但是这样子的初步逻辑会导致重复,所以需要小小的改一下初步的逻辑。基本的逻辑是不用改变的i等于一个数,然后使用j去乘,那我们得找一下规律,因为我们不能使用9这么简单的数字来定义j的范围。
1*1=1
1*2=2 2*2=4
我们需要定义以下j的范围,所以可以找以下j的规律,其实很简单就是从1--i,那么我改变j的范围就行
i=1
while i <=9:
j=1
while j<=i:
print(f"{i}*{j}={i*j}",end=" ")
j+=1
print("\n")
i+=1
打印出来,这个就完成了
5.2break与continue语句
5.2.1break语句
break语句,在python编程中的含义是可以让这个编程瞬间停止,即使他还有循环没有完成。
看一个例子就能理解这个break语句了
n = 10
while n > 0:
n -= 1
if n == 5:
break
else:
print(n)
print('循环结束')
在这个例子中使用了while与if嵌套,先来看一下代码,首先n=10,接着来到了while循环,这里得判断以下是不是满足while循环的条件,看出n大于零,所以进入while循环,这里n-=1的含义其实与n+=1的含义是相同的,就是n(新的值)=n(原来的值)-1,这里的n就变成了9。接着看看能不能进入if条件语句,看来是不行,9大于5,所以只能取if条件的另外一面(else)了,所以就打印出来(n=9)。这个时候因为进入了while循环,python代码将会从头又来一遍。这个时候n=9,在过一遍代码n=8同样不满足if条件语句的条件,所以到else这边去打印出来,以此类推 到n=5的时候满足了if的条件,所以进入if这个代码块之中,并且使用了break语句,所以while循环将不回进行直接跳出整个while循环,进入最后一个print指令,打印出循环结束这个语句。看一下最终是不是这样的
所以break语句的作用是可以直接使循环停止。也就是说跳出循环然后继续之后的代码
5.2.2continue语句
n = 10
while n > 0:
n -= 1
if n == 5:
continue
else:
print(n)
print('循环结束')
这里将使用同样的例子来解释以下continue语句的含义
之前的步骤我也不多说了,这个不一样的地方在if 代码块之下的break换成了continue。所以我直接从n=5开始,n=5 满足if的条件,所以进入代码块,执行了continue语句,这里的continue语句将会跳过5这个循环,并且继续这个循环。也就是说我最后打印出来的没有5,但是其他12346789都是包括的,当然还有最后的循环结束。