#python day02
while循环和for循环区别在哪里?
一般在使用循环时,知道执行次数的时候一般用for,条件循环时一般用while。for循环可以设置次数,while循环条件满足没有次数限制。
两种循环在构造死循环时的区别:
while循环里的条件被看成表达式,因此,当用while构造死循环时,里面的TRUE实际上被看成永远为真的表达式,这种情况容易产生混淆,有些工具软件就会认为出错了,因此构造死循环时,最好使用for来进行。
两种循环在普通循环时的区别:
对一个数组进行循环时,一般来说,如果每轮循环都是在循环处理完后才讲循环变量增加的话,使用for循环比较方便。
如果循环处理的过程中就要将循环变量增加时,则使用while循环比较方便。
还有在使用for循环语句时,如果里面的循环条件很长,可以考虑用while循环进行替代,使代码的排版格式好看一些。
例子:《射雕英雄传》里面黄蓉对瑛姑说:今有物不知数,三三数之剩二,五五数之剩三,七七数之剩二,几何?
这里的问题提前设置好了条件,因此我们通过使用while循环来解决问题。代码如下:
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,几何?")none = True #将条件设置为真,直到找到要求的数值number = 0 #计数的变量while none:number += 1if number%3 == 2 and number%5 == 3 and number%7 == 2:print("瑛姑回答:此数乃是",number)none = False
运行截图如下:
因此我们在解决问题的时候,如果给出条件,我们应该首先考虑while循环。
由于在python中for循环语句和c/java有些许不同,for循环语句通常要使用到range()函数,因此我们先来探讨一下range()函数。
range()函数可以生成比如1,2,3…100或者1,3,5,7,9等等的一系列等差数列。它的使用格式如下:
start表示从哪个数字开始,end表示到哪个数结束,step表示间隔几个数。其中start和step可以省略不写,start和step省略时默认值分别为0和1。range(X,Y)表示时,X和Y为start和end。
=小试牛刀=
*** 计算1-100整数之和***
代码如下:
print("计算1+2+3+...+100之和")result = 0for i in range(101):result += iprint(result)
运行结果如下:
在这里end数值为什么是101呢?
因为range()中end的结束值不包括该值,即range(7),得到的值是0-6,不包括7.
现在我们再用for循环语句来解决瑛姑的问题吧!此时题目要求在0-99之间找到这个数
代码如下:
print("今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,几何?")for number in range(100):if number%3 == 2 and number%5 == 3 and number%7 == 2:print("瑛姑回答:此数乃是",number)
运行如下: