circulation
python中循環(huán)結構有兩種:for循環(huán)逼泣;while循環(huán)
-
for循環(huán)
- a語法
for 變量名 in 序列:
循環(huán)體 - b說明
for - 關鍵字记靡,固定
變量名 - 標識符(非關鍵字)
in - 關鍵字,固定寫法
序列 - python中序列有:字符串休傍、列表克婶、元祖悴灵、字典、集合擒滑、range腐晾、生成器、迭代器等
: - 固定寫法
循環(huán)體 - 和for保持一個縮進的一條或者多條語句 - c.執(zhí)行過程
當程序執(zhí)行到for循環(huán)的時候:讓變量在序列中取值丐一,一個一個取藻糖,取完為止,每取一個值库车,執(zhí)行一次循環(huán)體
for num in 'abcdef':
print(num,id(num))
print('===')
#num = 'a'
#print(a,id(a))
#print('===')
#num = 'b'
#print(b,id(b)),
#print('===')
2. range函數(shù)巨柒,配合for循環(huán)使用
range(N) - N是正整數(shù),產生0 ~ N-1的所有整數(shù)
range(M, N) - M,N都是正整數(shù)柠衍,并且N>M,產生M~N-1的所有整數(shù)洋满,循環(huán)N-M次
range(M, N, S) - M,N,S都是正整數(shù);產生M~N(每次加S)
注意:xrange是python2.0中的語法,python3.0無效(pycharm中)
for num1 in range(10):
print(num1)
for num2 in range(100, 1000):
print(num2)
for num3 in range(0, 101, 2):
print(num3)
計算1+2+3+...+100的和
sum = 0
for num4 in range(1,101):
sum = sum + num4 #sum += num4
print(sum)
'''
執(zhí)行過程
sum = 0
num4 = 1 sum = sum + num4
num4 = 2 sum = sum + num4
...
num4 = 100 sum = sum += num4
print(sun)
計算2 * 4 * 6 * 8 * ... *20
product = 1
for num5 in range(2, 21, 2 ):
product = product * num5
print(product)
計算0~100中所有能夠被3或者5整除的數(shù)的和
sum = 0
for num6 in range(0, 101):
if num6 % 3 ==0 or num6 % 5 == 0:
#print(num6)
sum += num6
print(sum)
while循環(huán)
- a語法
while 條件語句:
循環(huán)體 - b說明
while - 關鍵字珍坊,固定寫法
條件語句 - 數(shù)據(jù)牺勾、變量、表達式等(不能是賦值運算)
: - 固定寫法
循環(huán)體 - 和while保持一個縮進的一條或者多條語句(循環(huán)過程中多次執(zhí)行) - c執(zhí)行過程:先判斷條件語句是否為True阵漏;
若為True驻民,執(zhí)行一次循環(huán)體;然后繼續(xù)判斷條件語句袱饭,以此類推
直到判斷條件語句的結果為False川无,結束整個循環(huán)。
兩個極端:
當條件語句判斷結果一直為True虑乖,會造成死循環(huán)
當條件語句判斷結果一開始就為False,循環(huán)一次都不會執(zhí)行
練習:用while循環(huán)控制程序輸出十行'==='
count = 0
while count < 10:
print('===')
count += 1
print(count)
'''執(zhí)行過程
count = 0
count < 10 True print('===') count += 1
count = 1
count < 10 True print('===') count += 1
以此類推
count = 10
count < 10 False print(count)
練習1:使用while循環(huán)輸出0~10
count = 0
while count < 11:
print(count)
count += 1
練習2:使用while循環(huán)輸出11~20
count = 11
while count < 21:
print(count)
count += 1
練習3:使用while循環(huán)輸出2,4,6...40
count = 2
while count < 41:
print(count)
count += 2
練習4:求練習3輸出數(shù)字的和
sum = 0
count = 2
while count < 41:
sum += count
count += 2
print(sum)
練習5:不斷輸入晾虑,直到輸入的值是100為止
num = int(input('請輸入數(shù)字:'))
while num != 100:
num = int(input('請輸入數(shù)字:'))
print(num)
cmd中ctr+c - 結束程序
補充:隨機數(shù)疹味,導入random模塊,random模塊是python內置的一個專門產生和處理隨機數(shù)的模塊
import random
random_num = random.randint(0,10)
#randint(M,N)
#產生M~N的隨機數(shù)
print('隨機數(shù)',random_num)
猜數(shù)字游戲,產生一個0-100的隨機數(shù)帜篇,然后不斷輸入數(shù)字糙捺,直到輸入的數(shù)字和產生的隨機數(shù)相等如果輸入的數(shù)字和隨機數(shù)不相等,給出偏大或者偏小的提示笙隙,統(tǒng)計猜對數(shù)字猜了多少次洪灯,根據(jù)次數(shù)范圍給出評價
print('==============游戲開始==============')
import random
random_num = random.randint(0,100)
num1 = 1
num = int(input('請輸入數(shù)字'))
while num != random_num:
if num > random_num:
print('偏大')
else:
print('偏小')
num = int(input('請輸入數(shù)字'))
num1 += 1
print('恭喜猜對',num)
print('猜的次數(shù)',num1)
if 0 < num1 < 5:
print('真厲害')
elif 5 <= num1 < 10:
print('勉強過關')
else:
print('你可能是個傻子')
for循環(huán)和while循環(huán)的選擇
for循環(huán):遍歷(一個一個取)序列元素時;循環(huán)次數(shù)確定時
while循環(huán):死循環(huán)和循環(huán)次數(shù)不確定時
1.continue
-
用法:continue是關鍵字竟痰,只能出現(xiàn)在循環(huán)體中
-
功能:執(zhí)行循環(huán)體時签钩,如果遇到continue掏呼,就直接結束當次循環(huán),進入到到下次循環(huán)的判斷
for x in range(5):
if x % 3 == 0:
continue
print(x)
print('=====')
輸出結果:
1
=====
2
=====
4
=====
2.break
-
用法:break是關鍵字铅檩,只能出現(xiàn)在循環(huán)體中
-
功能:執(zhí)行循環(huán)體時憎夷,如果遇到break,整個循環(huán)直接結束昧旨。
sum = 0
num = 0
while sum <= 100:
num += 1
sum += num
print(num, sum,sum-num)
方法2(用break)
sum1 = 0
num1 = 1
while True:
sum1 += num1
if sum1 > 100:
break
num1 += 1
print(num1,sum1,sum1-num1)
3.else
-
a.語法:
for 變量 in 序列:
循環(huán)體
else:
語句塊
while 條件語句:
循環(huán)體
else:
語句塊
-
b.執(zhí)行過程:如果循環(huán)自然死亡拾给,else對應的語句塊會執(zhí)行;如果循環(huán)遇到break而結束兔沃,else對應語句塊不執(zhí)行
for x in range(5):
print(x)
break
else:
print('循環(huán)結束') #0
num = 2
while num < 5:
print(num)
num += 1
break
else:
print(num)
輸出結果:2
num = 2
while num < 5:
print(num)
num += 1
else:
print(num)
輸出結果:
2
3
4
5
循環(huán)嵌套:在循環(huán)體中又有循環(huán)結構
-
執(zhí)行過程:外循環(huán)執(zhí)行一次蒋得,內循環(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)
y = 0 print(1),print(0)
y = 1 print(2),print(1)
y = 2 print(3),print(2)
y = 3 print(4),print(3)...
以此類推