day 4-python中的循環(huán)結(jié)構(gòu)

python中的循環(huán)結(jié)構(gòu)有兩種:for循環(huán)和,while循環(huán)

1.for循環(huán)

a.語(yǔ)法

"""
for 變量名 in 序列:
    循環(huán)體
"""

b.說(shuō)明

"""
for     -關(guān)鍵字 固定
變量名 - 和聲明變量的時(shí)候變量名要求一樣
in      -關(guān)鍵字,固定寫(xiě)法
序列      -python中的序列有:字符串,列表,元祖,字典,集合,range,生成器和迭代器等
:       -固定寫(xiě)法
循環(huán)體 -和for保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句
"""

c.執(zhí)行過(guò)程

當(dāng)程序執(zhí)行到for循環(huán)的時(shí)候:讓變量去序列中取值,一個(gè)一個(gè)取,取完為止。每取一個(gè)值,執(zhí)行一次循環(huán)體。

"""
a = 'a' print(a),print('=====')
a = 'b' print(b),print('=====')
a = 'c' print(c),print('=====')
...
a
=====

b
=====

c
===== 
...
"""
for a in 'abcdefa':
    print(a)
    print('=====')

2.range函數(shù)

range(N)        #   N是正整數(shù),產(chǎn)生0~N-1的所有數(shù)
for num in range(10):
    print(num)
range(M,N)  #   M,N都是整數(shù),并且N>M,產(chǎn)生M~N-1的所有整數(shù)
for num in range(100,1000):
    print(num)
range(N,M,S)    #   M,N,S都是整數(shù),產(chǎn)生M~N-1,每次加S來(lái)產(chǎn)生下一個(gè)數(shù)
for num in range(0,101,2):
    print('===',num)
#注意:xrange是python2.X的語(yǔ)法,在python3.X無(wú)效

練習(xí):計(jì)算1+2+3+...+100的和

sum1 = 0    #保存和的變量
for num in range(1,101):
    # sum1 = sum1 + num
    sum1 += num
print(sum1)
"""
sum1 = 0
num = (1,2,3,4)
num = 1     sum1 += num,sum1 = sum1+num,sum1 = 0 + 1 = 1
num = 2     sum1 += num,sum1 = sum1+num,sum1 = 1 + 2
num = 3     sum1 += num,sum1 = sum1+num,sum1 = 1 + 2 + 3
num = 4     sum1 += num,sum1 = sum1+num,sum1 = 1 + 2 + 3 + 4 = 10
print(sum1)     10
"""

練習(xí):計(jì)算 2 * 4 * 6 * 8 * ... * 20結(jié)果

sum2=1
for num2 in range(2,21,2):
    sum2 *=num2
print(sum2)

練習(xí):計(jì)算0-100中所有能被3或者5整除的數(shù)的和

sum4 = 0
for num3 in range(101):
    if num3 % 3 == 0 or num3 % 5 == 0:
        print(num3)
        sum4 += num3
print(sum4)

1.while循環(huán)

a.語(yǔ)法

"""
while 條件語(yǔ)句:
    循環(huán)體
"""

b.說(shuō)明:

"""
while       #   關(guān)鍵字,固定寫(xiě)法
條件語(yǔ)句        #   可以是數(shù)據(jù),變量,運(yùn)算表達(dá)式等。不能是賦值運(yùn)算
:           #   固定寫(xiě)法
循環(huán)體     #   和while保持一個(gè)縮進(jìn)的一條或者多條語(yǔ)句(會(huì)被重復(fù)執(zhí)行)
"""

c.執(zhí)行過(guò)程:

"""
先判斷條件語(yǔ)句是否為T(mén)rue,為T(mén)ure就執(zhí)行一次循環(huán)體,
執(zhí)行完循環(huán)體再判斷條件語(yǔ)句是否為T(mén)ure,為T(mén)rue又執(zhí)行一次循環(huán)體,
執(zhí)行完循環(huán)體再判斷條件語(yǔ)句是否為T(mén)ure,為T(mén)rue又執(zhí)行一次循環(huán)體,
以此類推,直到判斷條件語(yǔ)句的結(jié)果為False,這個(gè)循環(huán)直接結(jié)束

兩個(gè)極端:1.當(dāng)條件語(yǔ)句永遠(yuǎn)為T(mén)rue,會(huì)造成死循環(huán)的現(xiàn)象
        2.一開(kāi)始條件語(yǔ)句的結(jié)果就是False,那么循環(huán)一次都不會(huì)執(zhí)行
"""

練習(xí):用while循環(huán)控制成勛打印10行"====="

num = 0
while num < 10:
    print('=====')
    num += 1
"""
num = 0

num < 4 0 < 4   True print('=====') num += 1 num = num + 1 = 0 + 1
num < 4 1 < 4   True print('=====') num += 1 num = num + 1 = 1 + 1 = 2
num < 4 2 < 4   True print('=====') num += 1 num = num + 1 = 2 + 1 = 3
num < 4 3 < 4   True print('=====') num += 1 num = num + 1 = 3 + 1 = 4
num < 4 4 < 4   False

print(num)      print(4)

輸出:
=====
=====
=====
=====
4
"""

練習(xí)1:使用while循環(huán)打印0-10

num2 = 0
while num2 < 11:
    print(num2)
    num2 += 1

練習(xí)2:使用while循環(huán)打印11-20

num3 = 11
while num3 < 21:
    print(num3)
    num3 += 1

練習(xí)3:使用while循環(huán)打印2,4,6,8,10...40

num4 = 2
while num4 <= 40:
    print(num4)
    num4 += 2

練習(xí)4:求2+4+6+...+40

num5 = 0
num6 = 2
while  num6 <= 40:
    num5 += num6
    num6 += 2
    print(num5)

練習(xí):不斷輸入,直到輸入的值是100為止

"""
請(qǐng)輸入數(shù)字:10
請(qǐng)輸入數(shù)字:1
請(qǐng)輸入數(shù)字;22
請(qǐng)輸入數(shù)字:100
結(jié)束!
"""
result = 0      # 保存輸入的結(jié)果
while result != 100:
    result = int(input('請(qǐng)輸入數(shù)字'))
print('結(jié)束!')

2.補(bǔ)充:隨機(jī)數(shù)

導(dǎo)入random模塊,random是python內(nèi)置的一個(gè)專門(mén)用來(lái)產(chǎn)生和處理隨機(jī)數(shù)的模塊

randint(M,N)    # 產(chǎn)生M~N的隨機(jī)數(shù),要求M,N都是整數(shù),并且N>M
import random
random_num = random.randint(0,10)
print('隨機(jī)數(shù):',random_num)

練習(xí):猜數(shù)字游戲

產(chǎn)生一個(gè)0-100的隨機(jī),然后不斷輸入數(shù)字直到輸入的數(shù)字和產(chǎn)生的隨機(jī)數(shù)一致為止。
如果輸入的數(shù)字和隨機(jī)數(shù)不相等,給出偏大或者偏小的提示
增加功能:統(tǒng)計(jì)玩家才對(duì)數(shù)字多少次,然后根據(jù)次數(shù)范圍給出相應(yīng)的評(píng)價(jià)!
產(chǎn)生隨機(jī)數(shù)

print('=================游戲開(kāi)始===================')
random_sum = random.randint(0,100)
sum = int(input('請(qǐng)輸入數(shù)字(0-100)'))
while sum != random_sum:
    if sum > random_sum:
        print('大了,再小點(diǎn)')
    else:
        print('小了,再大點(diǎn)')
    sum = int(input('請(qǐng)輸入數(shù)字(0-100)'))
print('恭喜你猜對(duì)對(duì)了',random_sum)
if count > 7:
    print('250!')

print('================游戲結(jié)束===================')

3.for循環(huán)和while循環(huán)的選擇

a.遍歷(一個(gè)一個(gè)的取)序列元素用for循環(huán)

b.循環(huán)次數(shù)確定的時(shí)候用for循環(huán)

c.死循環(huán)和循環(huán)次數(shù)不確定的時(shí)候用while循環(huán)


1.continue

用法:continue是關(guān)鍵字,只能出現(xiàn)在循環(huán)中
功能:執(zhí)行循環(huán)團(tuán)體的時(shí)候,如果遇到continue,就直接結(jié)束檔次循環(huán),直接進(jìn)入下次循環(huán)的判斷

for x in range(10):
    if x % 3 == 0:
        continue
    print(x)
    print('====')

2.break

用法:break是關(guān)鍵字,只能出現(xiàn)在循環(huán)體中
功能:執(zhí)行循環(huán)體的時(shí)候,如果遇到break,整個(gè)循環(huán)直接結(jié)束

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

從0+1+2+...+n,求和超過(guò)1000000的第一個(gè)數(shù)

num = 0
n = 1
while True:
    num += n
    if num > 1000000:
        break
    n += 1
print(n,num,num - n)

3.else

a.語(yǔ)法:

"""
for 變量 in 序列:
    循環(huán)體
else:
    語(yǔ)句塊
while 條件語(yǔ)句:
    循環(huán)體
else:
    語(yǔ)句塊
"""

b.執(zhí)行過(guò)程:如果循環(huán)自然死亡,else對(duì)飲的語(yǔ)句塊會(huì)執(zhí)行;如果循環(huán)因?yàn)橛龅絙reak而結(jié)束

else對(duì)應(yīng)的語(yǔ)句塊不會(huì)執(zhí)行

for x in range(5):
    print(x)
else:
    print('循環(huán)結(jié)束')

循環(huán)你嵌套:在循環(huán)體中又有循環(huán)結(jié)構(gòu)

執(zhí)行過(guò)程:外循環(huán)執(zhí)行一次,內(nèi)循環(huán)執(zhí)行完

for x in range(5):
    for y in range(4):
        print(x)
        print(y)
"""
x = (0,1,2,3,4)
x =0    y = (0,1,2,3,)
        y = 0   print(0),print(0)
        y = 1   print(0),print(1)
        y = 2   print(0),print(2)
        y = 3   print(0),print(3)

x = 1   y = (0,1,2,3,)
...

輸出
0
0
0
1
0
2
0
3

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

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

  • 一、快捷鍵 ctr+b 執(zhí)行ctr+/ 單行注釋ctr+c ...
    o_8319閱讀 6,032評(píng)論 2 16
  • 在C語(yǔ)言中,五種基本數(shù)據(jù)類型存儲(chǔ)空間長(zhǎng)度的排列順序是: A)char B)char=int<=float C)ch...
    夏天再來(lái)閱讀 4,044評(píng)論 0 2
  • 這一節(jié)主要講梯度更新與BP算法。 我們將把所有的樣本的誤差求平均然后進(jìn)行更新的算法稱之為batch gradien...
    Klaas閱讀 196評(píng)論 0 0
  • 默默堅(jiān)持自己做的事情,只要是對(duì)的,就別有遲疑,不管別人的看法怎樣,做好自己。相信所有的努力都不會(huì)白費(fèi),加油。
    992bd0e8393f閱讀 259評(píng)論 0 0
  • 1.網(wǎng)頁(yè)版知乎 在首頁(yè)’點(diǎn)開(kāi)答案‘后,’收起‘按鈕只在答案底部才有,個(gè)人不太理解這個(gè)設(shè)計(jì)的用意。讓人操作的很累。 ...
    下巴夾死人閱讀 341評(píng)論 0 0

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