课时46:while语句
摘要:本文主要介绍Python中的循环语句,重点讲解了while循环。通过实际需求引出循环语句的概念,即让指定代码块重复执行指定次数。详细阐述了while循环的语法、执行流程,强调了避免死循环的方法,说明了循环的三个关键表达式(初始化、条件、更新)及其作用。还介绍了while循环中else子句的用法,并布置了四个练习。
1.循环语句
2.while循环的语法与执行流程
3.避免死循环与循环的三个要点
4.while循环的实际应用与else子句
5.循环语句练习布置
01、 循环语句
接下来我们学习另一组非常重要的语句——循环语句。创建一个新文件“06循环语句.py”来进行讲解。什么是循环语句?举个例子,现在执行`print("hello")`,屏幕上会出现一个“hello”。假设想要在屏幕上打印五个“hello”,有的同学可能会说直接复制粘贴五次,执行后就能得到五个“hello”;如果想要十个,就再复制粘贴一次。但要是想打印8848个“hello”,这样复制粘贴就太麻烦了。
实际上,不管是打印几个“hello”,本质上就是让`print`语句重复执行指定次数。这时候就需要循环语句了,循环语句可以使指定的代码块重复指定的次数。循环语句主要分为两种:`while`循环和`for`循环。这节课我们先来讲`while`循环。
02、 while循环的语法与执行流程
`while`循环的语法和`if`语句很相似。`while`语句以`while`开头,后面跟着一个条件表达式,再加上冒号,冒号后面是代码块(也叫循环体)。它的执行流程是:先对`while`后面的条件表达式进行求值判断,如果判断结果为`True`,就执行循环体(代码块)。这部分和`if`语句很像,不同的是, `if`语句执行完代码块就结束了,而`while`循环体执行完毕,会继续对条件表达式进行求值判断,如此循环,直到判断结果为`False`时,循环才终止。
比如,我们写`whileFalse:`,后面跟`print("hello")`,因为条件是`False`,所以“hello”不会被打印出来,执行代码后没有任何输出。但如果把条件改成whileTrue:,保存运行后就会出现问题。程序会不断打印“hello”,导致程序卡死,这是因为条件始终为`True`,这种循环被称为死循环。在开发中,死循环要慎用,只有在确定真的需要时才使用。通常情况下,在命令行中可以用`Ctrl+C`来终止死循环的程序。
03、 避免死循环与循环的三个要点
为了避免死循环,我们需要注意循环的三个要点,也就是三个表达式。第一个是初始化表达式,用于初始化一个变量,例如`i=0`,给变量`i`赋初始值。第二个是条件表达式,像`i<10`这样的表达式,它用来设置循环执行的条件,并且一般会用到初始化表达式中定义的变量。第三个是更新表达式,通常写在循环体内,比如`i+=1`,作用是修改初始化变量的值。
以`i=0`、`i<10`、`i+=1`为例,每次循环执行时,`i`的值都会自增1。第一次循环时`i`是0,执行完循环体后`i`变成1;第二次循环`i`变成2,以此类推,当`i`等于10时,`i<10`这个条件表达式的值为`False`,循环就会停止。这样就形成了一个会执行10次的循环,而不是死循环。
如果想要创建一个执行指定次数的循环,比如执行10次,就可以按照上述方式编写代码。这里要注意,初始化变量的值如果是0,那么条件表达式中“小于几”循环就会执行几次,小于八千就是八千次;如果初始化变量的值是1,循环执行次数会比“小于的值”少1次。所以一般初始化表达式的值设为0。
#创建一个执行十次的循环 i=0 While i<10 i+=1 print(i)
在实际应用中,利用`While`循环可以很方便地让代码块执行指定次数。比如想要打印10个“Hello”,就在条件表达式中设置`i<10`,循环。想要1000个就小于1000,非常的方便。
这个代码块我们就成为循环体,可以让我们这个循环体它执行指定的次数,循环语句非常简单,然后再往下说,实际上如果这个语句我们再完善一点的话,循环语句While下边我们还可以再写一个Else。
Else后边也跟着一个代码块,你会发现这写完了,就更像我们这个If语句了,那这Else什么效果来加一个Else,我们这来一个Print(‘Else中的代码块’),我们来看看它什么时候执行,这是十次循环来看效果。执行了一个Else在我们的Sublime里执行也是一样的,
直到判断结果为False,则循环终止。如果循环有对应的Else.则执行我们这个Else后的一个代码块,也就是说Else什么时候执行?就是当这个条件表达式为True, 为False的时候,Else就会执行,当然有会执行,没有就不执行,没有就不执行,所以这也是我们这个While的一个特点。它在这里面可以写这个Else,这也是我们Python里边独有的。
循环语句非常的简单,你需要做的是把这个语句的语法自己来尝试,去写一下,自己可以根据需要创建一个指定次数的一个循环。
我们这有几个练习循环语句,有四个练习:
练习一,求100以内所有奇数之和。
练习二,求100以内所有七的倍数之和以及个数。
练习三,求水杨花数。
练习四,是任意数。
判断它是否是质数,至少现在练习一练习二,可以思考一下练习三,练习四。稍微有一点难度,我们可以先思考一下练习一,还有练习二,先停一下,把刚才做一下,然后把练习一,练习二尝试去写一下。