Day4 for,while循環(huán)語句

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

1.for循環(huán)

a.語法

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

b.說明

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

c.執(zhí)行過程

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

for  a in ('abcdef'):
    print(a)
    print('lllll')

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(M,N,S) - M, N, S都是整數(shù),產(chǎn)生M~N-1,每次加S 來產(chǎn)生下一個數(shù)
for num in range(0,101,2): # 0到100內(nèi)所有的偶數(shù)
print(num)

注意: xrange 是python2.x的語法,python3.x無效

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

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

過程分析:
num = 0
n = (1,2,3,4...100)
n = 1 num += n , num = num + n , num = 0 + 1 = 1
n = 2 num += n , num = num + n , num = 1 + 2 = 3
...
n = 100 num += n , num = num + n , num = 4950 + 100 = 5050
print(num) 5050

練習(xí): 計算2468...20的積

num = 1
for n in range(2,21,2):
    num *= n
print(num)

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

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

1.while 循環(huán)

a.語法

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

b.說明:

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

c.執(zhí)行過程:

先判斷條件語句是否為True,為True就執(zhí)行一次循環(huán)體
執(zhí)行完循環(huán)體再判斷條件語句是否為True,為True又執(zhí)行一次循環(huán)體,
執(zhí)行完循環(huán)體再判斷條件語句是否為True,為True又執(zhí)行一次循環(huán)體,
以此類推,直到判斷條件語句的結(jié)果為False,整個循環(huán)直接結(jié)束。

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

練習(xí): 用while循環(huán)控制程序打印10行“=====”

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

分析過程:
count = 0
count < 10 0<10 True print('====') count += 1 count = count + 1 = 0 + 1 = 1
count < 10 1<10 True print('====') count += 1 count = count + 1 = 1 + 1 = 2
...
count < 10 10<10 False
print(count) print(10)

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

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

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

num = 11
while num <= 20:
    print(num)
    num += 1

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

num = 2
while num < 41:
    print(num)
    num += 2

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

num = 2
sum = 0
while num < 41:
    print(num)
    sum += num
    num += 2
print(sum)

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

num = 0
while num != 100 :
    num = int(input('請輸入數(shù)字:'))
print('結(jié)束!')

ctrl + c 可以立刻終止命令!

2.補充: 隨機數(shù)

randint(M,N) - 產(chǎn)生M~N的隨機數(shù),要求M,N都是整數(shù),并且N>M
import random # 導(dǎo)入random模塊,random是Python內(nèi)置的一個專門用來產(chǎn)生和處理隨機數(shù)的模塊
random_num = random.randint(0,10)
print('隨機數(shù):',random_num)

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

random_num = random.randint(0,100)
n = 0
num = int(input('請輸入一個0-100的數(shù)字:'))
while num != random_num:
    if num > random_num:
        print('偏大')
    else:
        print('偏小')
    n += 1
    num = int(input('請輸入一個0-100的數(shù)字:'))
print('猜對了')
if n <= 3:
    print('您太棒了!')
elif 3<n<=6:
    print('還不錯哦!')
else:
    print('玩家總共游戲:'+str(n)+'要加油哦!')

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

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

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

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

1.continue

用法: continue是關(guān)鍵字,只能出現(xiàn)在循環(huán)體中
功能: 執(zhí)行循環(huán)體的時候,如果遇到continue,就直接結(jié)束當(dāng)次循環(huá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)體的時候,如果遇到break,整個循環(huán)直接結(jié)束

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

練習(xí):從0+1+2+....+n ,求當(dāng)他們的和大于1000000時的第一個數(shù)

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

3.else

a.語法

for 變量 in 序列:
    循環(huán)體
else:
    語句塊


while 條件語句:
    循環(huán)體
else:
    語句塊

b.執(zhí)行過程: 如果循環(huán)過程正常截止,else對應(yīng)的語句塊繼續(xù)執(zhí)行!如果循環(huán)過程遇到break而結(jié)束,else對應(yīng)的語句塊不執(zhí)行

for x in range(5):
    print(x)
    break
else:                       # 主要是識別循環(huán)語句中是否有 break
    print(1111)

循環(huán)嵌套: 再循環(huán)體中又有循環(huán)結(jié)構(gòu)
執(zhí)行過程:外循環(huán)執(zhí)行一次,內(nèi)循環(huán)執(zhí)行完

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

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

  • 8月22日-----字符串相關(guān) 2-3 個性化消息: 將用戶的姓名存到一個變量中,并向該用戶顯示一條消息。顯示的消...
    future_d180閱讀 1,032評論 0 1
  • 寫在前面的話 代碼中的# > 表示的是輸出結(jié)果 輸入 使用input()函數(shù) 用法 注意input函數(shù)輸出的均是字...
    FlyingLittlePG閱讀 3,213評論 0 9
  • 圖片發(fā)自簡書 一 分支結(jié)構(gòu) python中的分之結(jié)構(gòu)只有if語句,沒有switch num = 11print('...
    Fly_withbird閱讀 390評論 0 0
  • 01-recode 1.函數(shù)的概念 2.函數(shù)的聲明/定義 3.函數(shù)的調(diào)用 4.函數(shù)的參數(shù) 5.函數(shù)的返回值 - ...
    憨猜猜閱讀 200評論 0 1
  • 老公帶我到診所,醫(yī)生為我量了體溫,看了我一下,“是打針還是吃藥?”“打針!”“吃藥”我和我老公異口同聲的說!我慌忙...
    愛共享一生閱讀 33,679評論 0 2

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