第009講:了不起的分支和迴圈3 | 學習記錄(小甲魚零基礎入門學習Python)
(標答出處: 魚C論壇)
《零基礎入門學習Python》
基礎題:
0、下面的迴圈會列印多少次"I Love FishC"?
for i in range(0, 10, 2):
print(‘I Love FishC’)
(0,2,4,6,8)共5次
1、下面的迴圈會列印多少次"I Love FishC"?
for i in 5:
print(‘I Love FishC’)
會報錯。因為i是字串,而5是整型數字,兩者不能使用in這個成員函式,
應該為for I in range (1,6) , 這樣會列印5次
2、回顧一下 break 和 continue 在迴圈中起到的作用?
break直接跳出迴圈,而continue是跳過這次的迴圈,繼續下次
3、請問 range(10) 生成哪些數?
(0,1,2,3,4,5,6,7,8,9)
4、目測以下程式會列印什麼?
while True:
while True:
break;
print(1)
print(2)
break;
print(3)
會打印出
2
3
因為第一個print (1)是在break之後,而那個時候已經由break跳出迴圈了所以不會接著執行在他之後的print (1)。
5、什麼情況下我們要使迴圈永遠為真?
沒有限制條件,但是要無限次輸入東西
6、【學會提高程式碼的效率】你的覺得以下程式碼效率方面怎樣?有沒有辦法可以大幅度改進(仍然使用while)?
i = 0
string = ‘ILoveFishC.com’
while i < len(string)):
print(i)
i += 1
string = 'ILoveFishC.com'
i=len(string)
while i>0 :
print (i)
i-=1
動動手:
1、設計一個驗證使用者密碼程式,使用者只有三次機會輸入錯誤,不過如果使用者輸入的內容中包含"*"則不計算在內。
mima = 'FishC.com' i = 3 while i>0 : temp = input ("請輸入密碼:") if temp != mima : print('密碼輸入錯誤!您還有',i-1,"次機會!") i-=1 else : print ("密碼輸入正確,進入程式......") break ;
2、編寫一個程式,求 100~999 之間的所有水仙花數。
如果一個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一個水仙花數。
mylist = []
for i in range (100,1000) :
mylist = str(i)
a = int (mylist[0])
b = int (mylist[1])
c = int (mylist[2])
if ( i == (a**3+b**3+c**3) ) :
print (i)
3、三色球問題
有紅、黃、藍三種顏色的求,其中紅球 3 個,黃球 3 個,綠球 6 個。先將這 12 個球混合放在一個盒子中,從中任意摸出 8 個球,程式設計計算摸出球的各種顏色搭配。
print ("red \tyellow \t green")
for red in range (0,4) :
for yellow in range (0,4) :
for green in range (2,7) :
if red + yellow + green == 8 :
print (red,'\t ',yellow,'\t ',green)
標答:
0、下面的迴圈會列印多少次"I Love FishC"?
for i in range(0, 10, 2):
print(‘I Love FishC’)
0,2,4,6,8,會列印5次
1、下面的迴圈會列印多少次"I Love FishC"?
for i in 5:
print(‘I Love FishC’)
會報錯 ,語法錯誤,in 是成員運算子,後面跟序列:列表或字串等
2、回顧一下 break 和 continue 在迴圈中起到的作用?
break:跳出迴圈,不再執行else; continue:結束本輪迴圈立即進入下一次迴圈
3、請談下你對列表的理解?
功能變強的陣列
4、請問 range(10) 生成哪些數?
0,1,2,3,4,5,6,7,8,9
5、目測以下程式會列印什麼?
while True:
while True:
break
print(1)
print(2)
break
print(3)
列印 2
3
6、什麼情況下我們要使迴圈永遠為真?
程式中從頭執行到尾的程式碼
需要一直等待使用者輸入命令時,需要使用者重複輸入時
7、【學會提高程式碼的效率】你的覺得以下程式碼效率方面怎樣?有沒有辦法可以大幅度改進(仍然使用while)?
i = 0
string = ‘ILoveFishC.com’
while i < len(string)):
print(i)
i += 1
i=0
length=len(‘ILoveFishC.com’)
while i < length:
print(i)
i+=1
細節決定成敗,看答案前記得自己先敲程式碼!
8、設計一個驗證使用者密碼程式,使用者只有三次機會輸入錯誤,不過如果使用者輸入的內容中包含"*"則不計算在內。
程式演示如圖:
9、編寫一個程式,求 100~999 之間的所有水仙花數。
如果一個 3 位數等於其各位數字的立方和,則稱這個數為水仙花數。例如:153 = 1^3 + 5^3 + 3^3,因此 153 就是一個水仙花數。
i=100
while i <= 999:
a=i//100
b=i%100//10
c=i%10
if i==(a3+b3+c**3):
print(i)
i+=1
三色球問題
有紅、黃、藍三種顏色的求,其中紅球 3 個,黃球 3 個,綠球 6 個。先將這 12 個球混合放在一個盒子中,從中任意摸出 8 個球,程式設計計算摸出球的各種顏色搭配。
print(‘red\tyellow\tblue’)
for red in range(0, 4):
for yellow in range(0, 4):
for green in range(2, 7):
if red + yellow + green == 8:
''' 注意,下邊不是字串拼接,因此不用“+”哦~'''
print(red, ‘\t’, yellow, ‘\t’, green)