python while循环和for循环

本文,我们通过python2学习一下python中的while循环和for循环。

首先,通过这两种循环,编写python2代码,找2~100间的所有素数。

#通过while循环,找2~100间的所有素数
from math import sqrt
j=2
while j<=100:#依次判断2~100间的数,是否是素数
    i=2
    k=int(sqrt(j))
    #依次判断2~k间的每一个数,检查j能否被其中的某个数整除
    while(i<=k):
        if j%i==0:#若j能够被2~k间的某个数整除,则说明j不是素数,通过break结束while循环。
            break
        i=i+1
    #有2种情况会导致while循环结束
    # 1》while循环中的条件i<=k不成立时,结束了while循环,此时,i>k,说明j是个素数
    # 2》j%i==0为真,通过break结束了while循环,此时,i<=k,说明j不是素数
    if (i>k):# i>k,说明j是个素数,输出该素数。
        print j,
    j=j+1#更新j的取值,判断下一个数是否是素数

运行结果如下:
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97



#通过for循环,找2~100间的所有素数
from math import sqrt
for j in range(2,101):#依次判断2~100间的数,检查其是否是素数
    flag=1#判断整数j时,首先将flag置为1,表示初始时,假定j是素数
    k=int(sqrt(j))
    for i in range(2,k+1):#依次判断2~k间的每一个数,检查j能否被其中的某个数整除
        if j%i==0:#若j能够被i整除,则将flag置为0,表示j不是素数,并且结束for循环
            flag=0
            break
    if(flag==1):#若flag是1,说明j是素数,输出j
        print j,

运行结果如下:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97



循环中,经常使用break语句和continue语句,二者是有区别的:

break是打断循环,提前结束循环,继续执行循环之后的语句。

continue是结束本次循环,循环体中continue之后的语句不执行,继续执行下一次循环。

break举例如下:

s=0
i=1
while i<=5:
    s+=1
    if i==3:
        break#打断while循环,提前结束while循环
    print "i=%d,s=%d"%(i,s)
    i+=1

运行结果如下:

i=1,s=1
i=2,s=2


continue举例如下:
s=0
i=1
while i<=5:
    s+=1
    i=i+1
    if i==3:
        continue#结束本次循环,循环体中continue后边的语句不执行,继续进行下一次循环
    print "i=%d,s=%d"%(i,s)

运行结果如下:

i=2,s=1
i=4,s=3
i=5,s=4
i=6,s=5


python中,循环常常结合else使用:
    如果循环代码从break处终止,跳出循环(不执行else代码)
    如果循环代码正常结束,则执行else中的代码

举例如下:

1》循环代码正常结束,则执行else中的代码

k=5
for i in range(1,10):
    if k==3:
        break
    else:
        print i,
else: #输出for循环结束时,i 的值
    print i

运行结果如下:

1 2 3 4 5 6 7 8 9 9

2》循环代码从break处终止,跳出循环(不执行else代码)

for i in range(1,10,2):
    if i%5 == 0:
        print "Bingo!"
        break#条件成立时,结束for循环,else部分不执行
else:
    print i

运行结果如下:

Bingo!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值