循環(huán)語句基礎(chǔ)
一組被重復(fù)執(zhí)行的語句稱之為循環(huán)體,能否繼續(xù)重復(fù),決定循環(huán)的終止條件
Python中的循環(huán)有while循環(huán)和for循環(huán)
循環(huán)次數(shù)未知的情況下,建議采用while循環(huán)
循環(huán)次數(shù)可以預(yù)知的情況下,建議采用for循環(huán)
while循環(huán)語法結(jié)構(gòu)
當(dāng)需要語句不斷的重復(fù)執(zhí)行時,可以使用while循環(huán)
while expression:
while_suite
語句while_suite會被連續(xù)不斷的循環(huán)執(zhí)行,直到表達(dá)式的值變成0或False
sum100 = 0
counter = 1
while counter <= 100:
sum100 += counter
counter += 1
print("result is %d" %sum100) #等同于print('result is',sum100)
練習(xí)輸出20以內(nèi)的偶數(shù)
#!/usr/local/bin/python3
n=0
while n<=20:
if n%2==0:
print(n)
n+=1
循環(huán)語句進(jìn)階
break語句
break語句可以結(jié)束當(dāng)前循環(huán)然后跳轉(zhuǎn)到下條語句
寫程序的時候,應(yīng)盡量避免重復(fù)的代碼,在這種情況下可以使用while-break結(jié)構(gòu)
name=input('請輸入用戶名')
while name=='chenyang':
name=input('請輸入用戶名')
替換為下面的寫法
while 1:
name=input('請輸入用戶名')
if name=='chenyang':
break
#猜數(shù)字游戲
#隨機生成一個數(shù)字,用戶猜數(shù)字,提示猜大了,猜小兩,猜對了
import random
#randint(min,max)生成min~max的隨機整數(shù)
num=random.randint(1,100)
#print(num)
while 1:
answer=int(input('猜數(shù)字1~100之間:'))
if answer<num:
print('猜小了')
elif answer>num:
print('猜大了')
else:
print('猜對了')
break
continue語句
當(dāng)遇到continue語句時,程序會終止當(dāng)前循環(huán),并忽略剩余的語句,然后回到循環(huán)的頂端
如果仍然滿足循環(huán)條件,循環(huán)體內(nèi)語句繼續(xù)執(zhí)行,否則退出循環(huán)
sum100=0
counter=1
while counter<=100:
counter+=1
if counter%2==1: #跳過奇數(shù)
continue
sum100+=counter #偶數(shù)相加
print('result is',sum100)
result is 2550
#求1~100之間所有偶數(shù)的和
counter=0
sum=0
while counter<100:
counter+=1
if counter%2==0: #如果時偶數(shù)增相加
sum+=counter
else:
print(sum)
2550
else語句
python中的while語句也支持else子句
else子句只在循環(huán)完成后執(zhí)行
break語句也會跳過else塊
sum10=0
i=1
while i<=10:
sum10+=i
i+=1
else:
print(sum10)
55
#猜數(shù)字游戲
#隨機生成一個數(shù)字,用戶猜數(shù)字,提示猜大了,猜小兩,猜對了
import random
#randint(min,max)生成min~max的隨機整數(shù)
num=random.randint(1,100)
print(num)
#統(tǒng)計循環(huán)次數(shù),從0開始每次加1
counter=0
while counter<5:
answer=int(input('猜數(shù)字1~100之間:'))
if answer<num:
print('猜小了')
elif answer>num:
print('猜大了')
else:
print('猜對了')
break
counter+=1
#當(dāng)循環(huán)正常結(jié)束時,程序會執(zhí)行else中的語句,break不是正常結(jié)束,故不會執(zhí)行else
else:
print('你輸了','數(shù)字為%d'%num)
#猜5次為止,猜中結(jié)束游戲,5次沒猜中提示你輸了