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语句,让它循环起来,不过如果是零基础的同学,不会做也没关系,我们下次可将会讲怎么改写这段代码