DAY4 for和while語句、break、continue、else

for語句

python中循環(huán)結(jié)構(gòu)有兩種:for循環(huán)和while循環(huán)
1.循環(huán)的作用:讓部分操作重復(fù)執(zhí)行
2.怎么使用for循環(huán)
*1)語法
for 變量 in 序列;
循環(huán)體

2)說明
for、in —— 關(guān)鍵字,固定寫法
變量 —— 變量名,需要滿足變量名的要求
序列 —— 容器類型的數(shù)據(jù),python中常見的序列:字符串、列表、元祖、集合、字典、迭代器、生成器、range
: —— 固定寫法
循環(huán)體 —— 和for保持一個(gè)縮進(jìn)的一條或多條語句,(需要重復(fù)執(zhí)行的代碼)

3)執(zhí)行過程
讓變量去序列中取值,一個(gè)一個(gè)的取,取完為止;每取一個(gè)值執(zhí)行一次循環(huán)體。(序列中數(shù)據(jù)的個(gè)數(shù),決定了循環(huán)的次數(shù))

for a in 'python':
    print(a)
    print('++++')
print('end')

解答思路:
a='p',print(a),print('++++')

...

a='n',print(a),print('++++')
循環(huán)結(jié)束
p
++++
...
n
++++

3.range函數(shù)

range是python內(nèi)置的一個(gè)用來生成數(shù)字序列的函數(shù),在python2.x中range由xrange代替
作用:1.結(jié)合for循環(huán)控制循環(huán)次數(shù) 2.結(jié)合for循環(huán)產(chǎn)生指定范圍的數(shù)字序列
range(N) ——產(chǎn)生數(shù)字范圍:0~n-1(這兒的N為任意的正整數(shù))
range(M,N) ——產(chǎn)生數(shù)字范圍:M~N-1 (這兒M和N是整數(shù),且N>M)
range(M,N,step) ——產(chǎn)生數(shù)字范圍M~N-1,每次增加step(注意:step是正整數(shù)N>M;step是負(fù)整數(shù),N<M)

print(range(10))
print("=================")
for x in range(10):
    print(x)
print("=================")
for x in range(-10,0):
    print(x)
for x in range(10,0):
    print(x)
print("=================")
for x in range(0,10,2):
    print(x)
for x in range(5):
    print('+++++')

練習(xí):使用for循環(huán)計(jì)算1+2...+100

print('========================')
sum1 = 0    #保存和的變量
for num in range(1,101):
    sum1+=num
    #sum1=sum1+num
print(sum1)

sum1 = 0
num = 1,2,3,4,...,100
num = 1, sum1 += num -> sum1 = sum1 + num = 0 + 1 = 1
num = 2, sum1 += num -> sum1 = sum1 + num = 1 + 2
num = 3, sum1 += num -> sum1 = sum1 + num = 1 + 2 + 3
num = 4, sum1 += num -> sum1 = sum1 + num = 1 + 2 + 3 + 4
...
num = 100, sum1 += num -> sum1 = sum1 + num = 1 + 2+ 3+...+ 100

練習(xí):打印出所有的水仙花數(shù)。(一個(gè)三位數(shù),個(gè)位的立方+十位的立方+百位的立方數(shù)=數(shù)的本身)
*解題思路:一個(gè)一個(gè)的取出所有的三位數(shù), 然后判斷每個(gè)三位數(shù)是否是水仙花數(shù)

count=0 #統(tǒng)計(jì)個(gè)數(shù)
for num in range(100,1000):
    ge=num%10
    shi=num//10%10
    bai=num//100
    if ge**3 + shi**3 + bai**3 ==num:
        print(num,'是水仙花數(shù)')
        count+=1
print('個(gè)數(shù):',count)

練習(xí)3:統(tǒng)計(jì)100以內(nèi)個(gè)數(shù)上是5的個(gè)數(shù)

count=0 #統(tǒng)計(jì)個(gè)數(shù)
for num in range(100):
    if num%10==5:
        count+=1
print('個(gè)位是5的個(gè)數(shù):',count)

while語句

1.怎么使用while循環(huán)

"""
1)語法
while 條件語句:
循環(huán)體

其他語句

2)說明
while —— 關(guān)鍵字、固定寫法
條件語句 —— python支持的類型的數(shù)據(jù)、已經(jīng)聲明過的變量、除了賦值符號以外的運(yùn)算表達(dá)式
: —— 固定寫法
循環(huán)體 —— 和while保持一個(gè)縮進(jìn)的一條或者多條語句;(循環(huán)體會(huì)重復(fù)執(zhí)行)

3)執(zhí)行過程
先判斷條件語句是否為True,如果為True就執(zhí)行循環(huán)體;
執(zhí)行完循環(huán)體在判斷條件語句是否為True,如果為True又執(zhí)行循環(huán)體;
以此類推,直到語句條件結(jié)果為False,循環(huán)就結(jié)束,直接執(zhí)行循環(huán)后面的其他語句

練習(xí):使用for循環(huán)計(jì)算1+2...+100

num=1
sum1=0    
while num<=100:
    #print(num)
    sum1+=num
    num+=1
print(sum1)

練習(xí):打印出所有的水仙花數(shù)。(一個(gè)三位數(shù),個(gè)位的立方+十位的立方+百位的立方數(shù)=數(shù)的本身)

num=100
while num<=999:
    #print(num)
    ge=num%10
    shi=num//10%10
    bai=num//100
    if ge**3 + shi**3 + bai**3 ==num:
        print(num,'是水仙花數(shù)')
    num+=1

while循環(huán)控制數(shù)字的產(chǎn)生

print('=====================')
num =10
while num>=0:
    print(num)
    num-=2

2.for循環(huán)和while循環(huán)
1)for能做的事情while循環(huán)都可以做,while循環(huán)能做到事情for循環(huán)不一定做到
2)循環(huán)次數(shù)確定的時(shí)候用for循環(huán);循環(huán)次數(shù)不確定的時(shí)候用while循環(huán),死循環(huán)用while循環(huán)

練習(xí):程序能夠不斷進(jìn)行輸入操作,直到輸入的內(nèi)容是0為止

num=1
while num!=0:
    num=int(input('請輸入一個(gè)數(shù)字:'))
print('end')

1.continue

continue是循環(huán)體中的關(guān)鍵字,用來結(jié)束當(dāng)次循環(huán)
當(dāng)執(zhí)行循環(huán)體的時(shí)候遇到continue,當(dāng)次循環(huán)結(jié)束,
不再執(zhí)行循環(huán)體continue后面的語句。直接進(jìn)入下次循環(huán)的判斷

for x in range(5):
    print(x)
    print('======')
    continue
    print('++++++')

sum1 = 0
for x in range(10):
    sum1 += x
print(sum1)

x = 1
while x < 101:
    if x % 3 == 0:
        x += 1
        continue  
    print(x)
    x += 1  

2.break

break是循環(huán)體中的關(guān)鍵字,用來直接結(jié)束整個(gè)循環(huán)
當(dāng)執(zhí)行循環(huán)體的時(shí)候遇到了break,整個(gè)循環(huán)直接結(jié)束,程序直接執(zhí)行循環(huán)后面的其他語句

for x in range(10):
    print(x)
    print('=======')
    break
    print('+++++++')
print(x)
print('結(jié)束')

while True:
循環(huán)操作
if 循環(huán)結(jié)束條件;
break

3.else

1)for的完整結(jié)構(gòu)
for 變量 in 序列:
循環(huán)體
else:
代碼塊

其他語句
1)while的完整結(jié)構(gòu)
while 條件語句:
循環(huán)體
else:
代碼塊

其他語句

當(dāng)循環(huán)自然死亡(for中變量將序列中的數(shù)據(jù)取完了;while后邊的條件語句的值為False),else后面的代碼塊會(huì)執(zhí)行;
如果循環(huán)是因?yàn)橛龅搅薭reak而結(jié)束的,else后面的代碼就不會(huì)執(zhí)行

應(yīng)用:可以通過else來檢測循環(huán)有沒有遇到break

print('============')
for x in range(10):
    print(x)
    if x==4:
        break
else:
    print('循環(huán)自然死亡')
print('其他語句')
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容