跬步郎的博客 跬步郎的博客

——科员级项目管理师的奋斗历程

5、while循环语句

while循环

第一节

闺女:大葱哥,我觉得我做的这个程序还是有点问题。

大葱哥:出错了?

闺女:没有,是这样的(演示程序),我每次运行后,如果输入的不是整数数字,是字母的话,这个程序只提示一次错误,然后就结束运行了。我看大多数应用程序如果输入有误的话,不是应该返回来从新输入吗?

大葱哥:嗯,那是因为我们用的是if语句,if语句是条件判断语句。如果输入错误返回从新输入的话,我们需要用到循环语句。

闺女:循环?

大葱哥:循环就是不断的重复一系列的动作,直到达到条件为止。

闺女:得,你说的话也太官方了,我才初一,这话太难理解了,你说是不是这样的:比如我妈说:这个学期只要我的数学成绩能考100分,就给我买量自行车,然后我就每天学数学,然后一次测验我考了100分,我妈就给我买了自行车,这是不是就是循环?

大葱哥:嗯,你的领悟能力非常强啊,你举得例子很对,数学考到100分就买自行车,这个就是条件,每天学数学就是循环,只要考到100分,条件达成,就能买自行车。

闺女:那这样的程序怎么写啊

大葱哥:python的循环语句有while循环和for循环,要实现你这个项目的功能,我们用while循环 我们以数学考100分为例子,思路是这样的: 第一步,设定个变量来获取用户输入的数学成绩

x = input("请输入你的数学成绩:")

第二步:进入while循环来判断

while x != 100:
    print("继续努力学习吧!")
print("可以买自行车啦")

闺女:叹号加等于号是什么?

大葱哥:叹号加等于号的意思就是不等于.

闺女:啊,我感觉python的运算符号跟数学的不一样啊,python都有哪些运算符号啊?

大葱哥:额,除了这个基本都差不多的.那我讲讲python的运算符号吧(在word里面演示运算符号,需要闺女配合识别)

== 等于

!= 不等于

> 大于

<小于

>=大于等于

<=小于等于

+ 加号

- 减号

* 乘号

/ 除号

% 返回除法的余数: 9%2 =1

**  2 ** 3 = 8

// 取整除,取商的整数部分,9 // 2 = 4

大葱哥:嗯,python的运算符号大致就这些啦,你要把这些记在学习笔记上,省得以后忘了.视频前的同学们,你们也要记一下哦


第二节

好,这个小例子就初步完成啦,那么第三步就是检查错误。

闺女:怎么检查?

大葱哥:你可以先看一遍的程序代码写的是不是有问题啊

闺女:啊,是有问题,前面讲过,input获取的内容是字符串

大葱哥:对喽,所以呢,我们需要把x变量的内容转换成int类型,上面的代码需要改写成:

while int(x) != 100:
    print("继续努力学习吧!")
print("可以买自行车啦")

好,这回看看还有没有问题。

闺女:好像没问题了

大葱哥:不要好像,确认有没有问题

闺女:没问题

大葱哥:那好,我们运行一下(运行程序)

闺女:啊呀,这个程序怎么一直提示继续努力啊,是不是电脑坏了

大葱哥:不是啊,因为我们判断x是不是等于100,如果不等于100就进入while循环里做循环里的事情,那么循环里只有一个事情做,就是打印继续努力学习,那么他就不断的循环了,这个就是死循环了,出不来了。也算是程序的一个bug,大bug

闺女:怎么办啊,我感觉我的电脑要坏了

大葱哥:你按住Ctrl键,就是键盘左下角那个建,按住Ctrl再按c建

闺女:好了,停了

大葱哥:对,Ctrl+c就是退出python程序

闺女:那是不是要在while循环里面添加些东西,让它不仅仅循环努力学习这段话

大葱哥:对的,考虑一下,我们应该添加什么内容.

第二

我们在print("继续努力学习吧!")

这一行下面再添加一段代码,把

x = input("请输入你的数学成绩:")

粘贴进来就行了

闺女:为什么还写一遍x变量,上面不是有了吗

大葱哥:因为python语言的运行是从上到下逐行执行的,而且while循环里没有能停止的程序代码,我们需要让x变量重新获取用户的输入来判断是否等于100

闺女:哦,那这样可以运行了吗?

大葱哥:这就需要你来判断了,如果你认为没问题了,那就运行一下,如果再出错再改。

闺女:那我可试了啊,(运行程序) (完整程序如下:)

x = input("请输入数学成绩")

while int(x) != 100:
    print("继续努力")
    x = input("请输入数学成绩")

闺女:噢耶,成功啦

大葱哥:嗯,看起来不错,写完这个程序你有什么感悟?说来听听

闺女:感觉跟学校里学习差不多。

大葱哥:为什么会这么说?

闺女:先要有个思路,相当于学校里老师说“明天要考数学啦”

然后有个目的,相当于回家跟老爸说“明天要考试了,考好了得给我买自行车”

再然后就是写程序,相当于考试写卷子

接着就是检查写出来的代码,等于做完卷子了检查

最后就是运行程序,等于交卷啦

然后就是如果错误,等于老师判完卷子发下来啦

接着改错,直到正常运行,等于修改错题,直到正确为止

大葱哥:非常好,你这个比喻很恰当,要养成这种学习习惯哦,很多同学考完试以后就不管了,那是不对的,需要把错题修改过来,找到出错的原因,这样以后才不会出错了啊。

大葱哥:好,从这堂课开始,我们需要留课后作业了。今天作业是修改上次课上的程序。上次课的程序是if语句完成的,完整程序如下:

x = input("请输入整数数字:")
y = x.isdigit()

if y == True:
    print(int(x) * 5)
else:
    print("输入不正确")

我们今天的作业是尝试将if语句改写成while语句,让它循环起来,不过如果是零基础的同学,不会做也没关系,我们下次可将会讲怎么改写这段代码

你的赞助,是对我辛勤耕耘的最大支持