Python學(xué)習(xí)總結(jié)【連載】(四)
2018.06.15 Juttachen
概述
+ 14 break
- 概念與使用
- 用while和break實現(xiàn)用戶輸入程序
+ 15 continue
- 概念與使用
+ 16 else
+ 17 多重循環(huán)
- 格式與執(zhí)行過程
十四、break
1. 概念與使用
break是一個讓循環(huán)提前結(jié)束的關(guān)鍵字周瞎,如果在for循環(huán)或者while循環(huán)中遇到了break,那么循環(huán)就在break的位置直接結(jié)束朦蕴。結(jié)束后程序執(zhí)行循環(huán)后面的代碼院溺。
練習(xí):找到1000-9999中的第一個能夠被13整除的數(shù)(打俞)
for x in range(1000,10000):
print(x)
if x % 13 == 0:
print(x)
break
print('循環(huán)結(jié)束后')
練習(xí):打印1到49
for x in range(1,100):
if x == 50:
break #在這個地方結(jié)束循環(huán),直接跳出循環(huán)執(zhí)行后面的語句
print(x) #1够挂,2 ,3...49
大練習(xí)
判斷101-200之間有多少個素數(shù)藕夫,并輸出所有素數(shù)孽糖。
# 第一個循環(huán)將 101-200中的所有的數(shù)取出來。
num = 0
for x in range(101,201):
# x = (101~200),拿到x后毅贮,判斷2~x-1中有沒有一個數(shù)可以被x整除办悟。如果2~x-1中沒有一個能被x整除
# 就說明x是素數(shù),只要有一個被x整除滩褥,x就不是素數(shù)病蛉。
count = 0 #統(tǒng)計2~x-1中能夠被x整除的數(shù)的個數(shù)
for y in range(2,x):
if x % y == 0:
# 說明不是素數(shù)
print(x,'不是素數(shù)')
count += 1
break
if count == 0:
print(x,'是素數(shù)')
num += 1
print(num)
2. 用while和break實現(xiàn)用戶輸入程序
用while循環(huán)實現(xiàn):不斷的讓用戶去輸入數(shù)字,直到用戶輸入的數(shù)字為0為止。最后在打印之前輸入的數(shù)的和铡恕。
注意:input函數(shù):程序執(zhí)行到input函數(shù)的時候琢感,程序就會停下來,等待用戶從鍵盤輸入并且以回車結(jié)束探熔,然后才會往下執(zhí)行驹针。
sum1 = 0
while True: # 如果不知道用戶會輸入多少次,就把循環(huán)定為死循環(huán)诀艰,這樣才能做到用戶一直輸入柬甥。
num = int(input(">>>")) #獲取鍵盤輸入的內(nèi)容,并且轉(zhuǎn)換成int類型
sum1 += num #將當(dāng)前輸入的數(shù)字加起來
if num == 0: #判斷輸入的數(shù)字是否是0其垄,如果是就讓循環(huán)結(jié)束
break
print(num)
print(sum1)
注意:break只能寫在循環(huán)中
例子:
猜數(shù)字:隨機生成一個整數(shù)苛蒲,用戶輸入數(shù)字。如果用戶輸入的數(shù)字大于這個隨機數(shù)就提示:“大了”绿满,如果用戶輸入的數(shù)小于隨機數(shù)就提示“小”了臂外。知道用戶輸入的數(shù)和隨機數(shù)的大小一樣,游戲就結(jié)束喇颁。
產(chǎn)生隨機數(shù):random模塊是python內(nèi)置的用來生成隨機數(shù)的模塊漏健,里面提供了很多產(chǎn)生隨機數(shù)的函數(shù)
randint(m,n):產(chǎn)生一個m到n的隨機整數(shù)
import random
num = random.randint(0,100) #產(chǎn)生一個1~100的隨機數(shù)
count = 0
while True:
num1 = int(input(">>>"))
if num1 > num:
print("大了")
count += 1
elif num1 < num:
print("小了")
count += 1
else:
break
print(count)
for循環(huán)和while循環(huán)的選擇:
for循環(huán)的特點:次數(shù)有限且確定,可以在序列中取數(shù)據(jù)橘霎。
while循環(huán)的特點:很靈活蔫浆,可以解決循環(huán)次數(shù)不確定的。
十五姐叁、continue
- 概念與使用
continue: 結(jié)束當(dāng)次循環(huán)瓦盛,進入下次循環(huán)。
例子
for x in range(1,10):
print("=")
continue #遇到continue就不再執(zhí)行循環(huán)體后面的內(nèi)容外潜,直接進入下一次循環(huán)的判斷
print(x)
求1~100中所有奇數(shù)的和
sum1 = 0
for x in range(1,101):
if x % 2 == 0:
continue
sum1 += x
打印100到999中除了十位為三的數(shù)
for x in range(100,1000):
if x // 10 % 10 == 3:
continue
print(x)
統(tǒng)計輸入的數(shù)字中原环,偶數(shù)的個數(shù)。如果輸入0处窥,就結(jié)束扮念。
sum1 = 0
while True:
# 輸入數(shù)據(jù)
inputValue = int(input('>>>'))
# 判斷是否是奇數(shù)
if inputValue % 2 != 0:
continue
elif inputValue == 0:
break
# 偶數(shù)個數(shù)相加
sum1 += 1
print(sum1)
十六、else
python中循環(huán)語句后面可以加else語句碧库。這個else語句會在循環(huán)結(jié)束后執(zhí)行柜与。
for 變量 in 序列:
循環(huán)體
else:
循環(huán)結(jié)束后會執(zhí)行的語句塊
例子:1乘到10
sum1 = 1
for x in range(1,11):
sum1 *= x
print(x)
else:
print(sum1)
注意:如果在循環(huán)中使用break,那么else預(yù)計不會執(zhí)行嵌灰!
例子:一到十相乘弄匕,當(dāng)乘積大于一萬就不再繼續(xù)乘
sum1 = 1
for x in range(1,11):
#!!!在給sum1賦值前先判斷乘的結(jié)果是否大于10000
if sum1 * x > 10000:
break
#只有在乘積不大于10000的時候才去乘積去賦值
sum1 *= x
else: #循環(huán)中如果執(zhí)行了break(continue不會有這個問題),這個時候else是不會執(zhí)行的
print(sum1)
十七沽瞭、 多重循環(huán)
1.格式與執(zhí)行過程
在循環(huán)體里面可以其他的循環(huán)語句.
格式:
for 變量 in 序列:
for 變量1 in 序列2:
循環(huán)體2
其他的循環(huán)語句
for 變量 in 序列:
其他的循環(huán)語句
while 條件語句:
循環(huán)體2
其他的循環(huán)語句2
while 條件語句1:
其他的循環(huán)語句
while條件語句2:
循環(huán)體2
其他的循環(huán)語句2
例子:
如果 n=5迁匠,打印:
1
1+2
1+2+3
1+2+3+4
1+2+3+4+5
#x控制是第幾行
#y控制獲取當(dāng)前行里所有的數(shù)值
#外循環(huán)控制行數(shù),內(nèi)循環(huán)控制列數(shù)
n = 3
for x in range(1,n+1):
for y in range(1,x+1):
print(y,end ='')
print()