Day04傑克船長海上尋寶
傑克船長駕駛郵輪要去海上尋找寶藏,有三組海馬列在其面前能為其帶路,傑克船長可以通過判斷選擇其中一組。第一組只有一只公海馬,它只開出一個條件(格式一:if …)。第二組有一只公海馬和一只母海馬,兩者各開出一個平等條件(格式二:if … else …)。第三組為多只公海馬和一只母海馬,分等級排列,從上到下依次開出條件,滿足一個即可(格式三:
①
if 條件表達式1:
語句塊1
elif 條件表達式2:
語句塊2
elif 條件表達式3:
語句塊3
…
else:
語句塊n
②)。
傑克船長選擇了第二組,滿足了其條件。於是,於是海馬帶著船長和郵輪來到了一個梯田樣式的海中瀑布邊(循環結構:分類:while、for … in …),海馬告訴船長,這下面有很多金幣,你可以拿,但要遵守規則,最多只能拿10個。我先給你1個金幣(①.初始化條件(執行一次)),你開著船到第二層去,那裡有個白胡子老頭(②.循環條件(可能執行一次或多次) ),他會檢查你的金幣,如果達到10個,你就不能再下去了。你下去後有可能會再次遇到公海馬和母海馬,他們會向你提各種條件和要求,你滿足後按照他說的去做就行了(④循環體(可能執行0次或多次))。到海底後,你每次只能拿1個金幣(③.迭代條件(可能執行0次或多次) ),拿到後,在海底部牆上寫上你的名字和拿到的財富,彈簧板會把你彈到白胡子老頭那裡,他會再次檢查你的金幣,你如此循環往復,最後拿到10個金幣後,就可以通過海底隧道離開了。但是如果你太貪心欺騙白胡子老頭的話,每次都拿出10個以下的金幣,你就會進入死循環,那就只有break閘刀能救你了(無限循環(死循環):無限循環是非常占用系統資源的,我們是需要避免的;但是如果它一旦配合break等關鍵字使用,就會變得有意義;格式:while True:循環體),但是那樣的話,你就永遠拿不到送給母海馬的禮物。
傑克船長聽了海馬的指示,順利通過白胡子老頭那裡,進入深海,他還在海中發現了兩個非常神奇的寶貝,一個是七彩魔方(random模塊的初體驗: import random
第二步:通過模塊名.函數完成需求 random.randint(m,n) 作用:randint(m,n)函數,返回一個[m,n]的隨機整數值),另一個是時間停止器(第一步:導入time模塊 import time第二步:通過模塊名.函數完成需求 time.sleep(sec)作用:sleep(sec)函數,程序一旦執行到sleep(sec)函數位置,會立即休眠sec秒,等到時間到了,自動醒過來,往下繼續執行)。七彩魔方能自動轉出你心裡想要的數字,時間停止器能讓世界休眠。傑克船長把他們放到口袋裡。
傑克船長繼續往下,果然又碰到了公海馬,這個公海馬在一個轉籠的上方,它會向你提問題,如果你答對的話,轉籠就會把你從底部再次轉到海馬面前,繼續回答問題。如果你答錯了,就可以順利通過轉籠底部的小門離開。傑克船長被轉了兩次後也順利通過(對於continue而言: 如果在執行村換的過程中,遇到了continue關鍵字,那麼程序立即結束當次循環,開始下一次循環)。
接著,傑克又遇到一個海馬,他的脾氣非常暴躁,如果你回答正確的話,他就直接關閉閘刀,你就永遠不能繼續往下了(對於break而言: 如果在執行循環的過程中,遇到了break關鍵字,那麼程序立即結束當前循環)。傑克小心翼翼完美避過了正確答案。順利通過。
接下來,傑克遇到了一只母海馬,她告訴傑克還好你通過了上面的那只脾氣暴躁的海馬,不然你就見不到我了。我也不為難你,出個簡單的問題,讓你過去好啦(.else語句配合循環使用:特點:如果循環是正常執行完畢,那麼else中的代碼一定會被執行;如果循環是由於break關鍵字而強行終止,那麼else中的代碼就不會被執行;)。傑克喜不自勝。
最後,傑克順利拿到了10枚金幣,返回岸邊時,遇到了女警察(bool),她檢查船上的容器,如果裡面什麼也沒有,她就不允許傑克上岸(bool():總結:
1).對於數值型數據進行bool()的轉換:除了0,0.0返回False,其余全部為True
2).對於容器類型只要有內容(有元素),結果就為True,反之,為False
3).對於None值轉換,結果為False
使用場景:
對於流程控制語句中經常出現
)。傑克給女警察展示金幣,最後成功上岸!