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('其他語句')