學習筆記-小甲魚Python3學習第九講:了不起的分支和循環3
while 條件:
循環體
for循環:
for 目標 in 表達式:
循環體
舉例:
>>> fruits = ['apple','橘子','banana','哈密瓜','pear'] #水果列表frutis
>>> for fruit in fruits:
print(fruit,len(fruit)) #打印水果和水果名字的字符數量
apple 5
橘子 2
banana 6
哈密瓜 3
pear 4
range()函數,python的內置函數,取一定範圍值
語法: range([start,] stop[,step=1])
-共三個參數,中括號裏面是可選參數
-step=1表示第三個參數的值默認值是1,步進值
-作用是生成一個從start參數的值到stop參數的值減1結束的數字序列
舉例:
>>> for i in range(4):
print(i)
0
1
2
3
不設置start值,默認從0開始打印
>>> for i in range(2,6):
print(i)
2
3
4
5
>>> for i in range(2,10,3):
print(i)
2
5
8
設置步進值為3
break和continue
break:終止循環,跳出循環體
舉例:
birth = '1203'
answer = input('請輸入我的生日:')
while True:
if answer == birth:
break
answer = input('不對,請再猜一下我的生日:')
print('厲害了!我的生日你都能猜到!')
continue:終止本輪循環,並開始下一輪循環
舉例:
for i in range(10):
if i%2 != 0:
print(i)
continue
print('aloha',i)
--------------------------分割線,哈哈哈--------------------
二、課後作業:
0. 下面的循環會打印多少次"I Love FishC"?
for i in range(0,10,2):
print('i love fishc')
5次,i從0開始,以每次加2,當i為0,2,4,6,8的時候打印“”中語句
1.下面的循環會打印多少次"I Love FishC"?
for i in 5:
print('i love fishc')
會報錯, in 是“成員資格運算符”,i要在一個序列中尋找值,而不是單個值
2. 回顧一下 break 和 continue 在循環中起到的作用?
break:終止當前循環,跳出循環體
continue:終止本輪循環並開始下一輪循環(這裏要註意的是:在開始下一輪循環之前,會先測試循環條件)。
3.請談下你對列表的理解?
列表是python中常用的數據類型,以[]方括號括起來,並用,逗號隔開
列表中的數據不需要具有相同的類型
4.請問 range(10) 生成哪些數?
0,1,2,3,4,5,6,7,8,9 相當於range(0,10)
5.目測以下程序會打印什麽?
while True:
while True:
break
print(1)
print(2)
break
print(3)
會打印
2
3
6.什麽情況下我們要使循環永遠為真?
#########抄的不知道########### 用於遊戲實現,因為遊戲只要運行著,就需要時刻接收用戶輸入,因此使用永遠為真確保遊戲“在線”。操作系統也是同樣的道理,時刻待命,操作系統永遠為真的這個循環叫做消息循環。另外,許多通訊服務器的客戶端/服務器系統也是通過這樣的原理來工作的。所以永遠為“真”雖然是“死循環”,但不一定是壞事,再說了,我們可以隨時用 break 來跳出循環!
7.【學會提高代碼的效率】你的覺得以下代碼效率方面怎樣?有沒有辦法可以大幅度改進(仍然使用while)?
i = 0
string = 'I love python.'
while i < len(string)):
print(i)
i+= 1
上面的代碼,效率低下的原因是“每次循環都要調用len()函數”,改為一次性直接調用如下:
i = 0
string = 'I love python'
length = len(string)
while i < length:
print(i)
i += 1
----------------------分割線,哈哈哈-----------------
三、動動手:
0.設計一個驗證用戶密碼程序,用戶只有三次機會輸入錯誤,不過如果用戶輸入的內容中包含"*"則不計算在內
print('-------密碼驗證程序-----------')
count = 3
password = '11111'
while count:
passwd = input('請輸入密碼:')
if passwd == password:
print('密碼正確,進入程序...')
break
elif '*' in passwd:
print('*不能作為密碼',end=' ')
continue
else:
print('密碼錯誤,你還有',+ count-1,'次機會.',end=' ')
count -= 1
1.編寫一個程序,求 100~999 之間的所有水仙花數。如果一個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一個水仙花數。
for i in range(100,1000):
if i == ((i//100)**3 + (i%100//10)**3 + (i%10)**3):
print(i)
2.三色球問題:
有紅、黃、藍三種顏色的球,其中紅球3個,黃球3個,綠球6個。先將這 12 個球混合放在一個盒子中,從中任意摸出 8 個球,編程計算摸出球的各種顏色搭配。
print('--------三色球問題--------')
for red in range(4):
for yellow in range(4):
for blue in range(7):
if red + yellow + blue == 8:
print('三色球組合:紅球',red,'個','黃球',yellow,'個','籃球',blue,'個')
學習筆記-小甲魚Python3學習第九講:了不起的分支和循環3