Python (Beginner)_ Conditionals條件式
Step 1:
什麼是if語句
If語句為條件式,能夠幫助你的程式做選擇。其實你每天都需要使用條件式,以下範例給你參考:
If語句會是如以下內容呈現: if insert condition here: Insert statements here else: Insert statements here # Example below if alarm goes off: I will wake up else: Stay asleep
|
Step 2:
縮排
程式語言Python中indentation(縮排)占了很重要的位置。縮排會指出哪個語句屬於在程式碼中哪個特定部分。 你可以發現if與else語句下的語句都縮排了4個空格。若你想在條件式為true(是)時,執行多個語句該怎麼辦?如果你適時使用縮排,內容會類似以下呈現: if (drone.connected()): print("Drone is connected!") CoDrone.takeoff() CoDrone.land() else: print("Not paired") 以下是錯誤範例。請試試在Jupyter Notebook中執行看看。你的目標是:用縮排更正範例中的錯誤! drones = 100 bugs = 55 if drones > bugs: print("Squish the bugs!") if drones + bugs > 90: print("Run away!") 正確範例應該如下,試著執行看看! drones = 100 bugs = 55 if drones > bugs: print("Squish the bugs!") if drones + bugs > 90: print("Run away!") |
Step 3:
比較算符
最後步驟中你會認識一些新的符號。”>”是比較算符的一個範例,但你可能知道它是數學課上的一個不等號。比較算符可以在條件式裡使用來比較值。若該語句為true(是),之下的語句就會被執行。以下是比較器:
以下是範例讓你試著做做看: X = 10 Y = 100 if (X != Y): print("Correct, X is not equal to Y") Z=100 if (Z == Y): print("Correct, Z is equal to Y") |
Step 4:
編程作業
宣告具有不同數值的3個變數。再寫出至少3個if語句跟else語句。把變數當成if語句的條件。If語句和else語句會列印出不同字符串。以下程序給你當參考,試著寫出你自己的程序吧! x = 58 y = 12 z = 90 if x > y: print("jelly") if z > x: print("peanut butter") if y+z > x: print("bread") if y > z: print("toast") else : print("best sandwich ever") |
Step 5:
巢狀式if語句
巢狀式if語句是在一個if語句中在夾雜另一個if 語句。請參考以下為現實生活呈現的程式碼範例,然後查看第一張圖中的流程圖,以更了解語句意義。。 if it is sunny outside: if it is hot: I will go swimming else: #it is NOT hot I will play baseball else: #it is NOT sunny I will play inside 當你需要同一個目的,並遇到多重條件式或是其之下的問題,使用巢狀式if語句就很方便。其他程序範例如下: if you are happy: keep doing whatever you’re doing else: if you do want to be happy: change something else: keep doing whatever you’re doing |
Step 6:
編程作業
寫出3個變數用在2個if語句的條件式中,也請使用巢狀式if語句囊括該if語句。每個if語句都要列印出字符串。字符串組合必須完整一個詞組。每個列印不同字符串的if語句,應該跟在巢狀式if語句之後。以下為範例—試試看自己寫出來! x = 3 y = 6 z = 9 if x < y: print("I love to") if y < z: print("program!") if z > x: print("What do you love?") |
Step 7:
挑戰編程
以下是錯誤範例,你的目標是調整更正它並讓它運作順利。 Test = 75.50 A = 90 B = 80 C = 70 D = 60 F = 50 if Test == 100: print("Automatic pass!") if Test > A: print("Student receives an A") else: if Test > B: print("Student receives a B") else: if Test > C: print("Student receives a C") else: if Test > D: print("Student receives a D, please seek tutoring") else: if Test > F: print("Student has failed, please seek tutoring") 找到哪一個字符串應該印出了嗎?試試運作程式碼看你有沒有更正正確! 正確答案: Test = 75.50 A = 90 B = 80 C = 70 D = 60 F = 50 if Test == 100: print("Automatic pass!") if Test > A: print("Student receives an A") else: if Test > B: print("Student receives a B") else: if Test > C: print("Student receives a C") else: if Test > D: print("Student receives a D, please seek tutoring") else: if Test > F: print("Student has failed please seek tutoring") |
Step 8:
什麼是else if 語句
假設你有兩個按鈕:一個可以開門;一個可以關門。你也有程式碼可以確認按鈕是否被按下。你的第一個想法應該會寫出以下內容: if button 1 is pressed: Close the door if button 2 is pressed: Open the door 如果你同時按下兩個按鈕會怎樣呢?兩個都為真而門會試著同時開啟與關閉! Else if 語句在Python中會寫成elif而此語句可以解決這個問題。一旦滿足條件,無論它們是否為真,程式碼都將不會執行任何其他 elif 語句。就像if語句一樣,如果程式碼運作所有條件式,而無一滿足條件那他就會執行else語句。儘管你不需要用到else語句,但如果遇到錯誤或意外的條件,加入else語句通常是個好方法。 |
Step 9:
Else if 範例
以下提供範例讓你了解為何要使用elif 語句。想像一下你要去看電影而且你必須買票。電影院有分年齡販賣不同價位的票。5歲以下兒童免收費。而18歲以下的小朋友要付$8元。55歲以下票價為$12元。其餘的可以以優惠價$10元入場。
if age < 5: price = 0 elif age < 18: price = 8 elif age < 55: price = 12 else: price = 10 現在假設所有案例你都已經使用if語句,而你也輸入了你15歲。第一句無法運作,但語句2跟3都為true(是),因為15小於18和55。因為電腦式按順序讀取,所以價格就會保持最後一個值$12元。顯然你會被多收電影票錢,若使用elif語句,程式碼就會發現第二個條件為真然後忽略其他條件式。 加入print語句到以上的程式碼並式式看執行它! |
Step 10:
編程挑戰
接下來挑戰設計一個程式,透過確認身高來辨別能不能搭乘雲霄飛車。你要建立一個變數並命名為高度(用英吋表達)。高度限制為60與480。身高48英吋以下的不能搭乘。高於48英吋的乘客可以與父母一同搭乘,超過60英吋者可以單獨搭乘。 給指導員的提示:
height = 66 # height in inches if height > 48: print("Rider can ride alone") elif height > 36: print("Rider must be accompanied by parent") else: print("Rider not allowed on the ride") |
Step 11:
試試看!
為防你不完全了解什麼是魔法8球(Magic 8 Ball),那是一個可以預測你的未來的玩具,當你問他是非題時,會回答是、否或不確定。 請你編程你的CoDrone像魔法8球一樣運作!從1至6選一個數字在變數中輸入,再編程你的無人機列印出答案,然後用特定飛行方向給每個回應。我們先幫你做第一步其他就交給你操作看看囉! 規則:
import CoDrone ball = #user picks a number drone = CoDrone.CoDrone() drone.pair(drone.Nearest) drone.takeoff() if ball == 1: print('It is certain') drone.set_pitch(50) drone.move(2) drone.land() # lands the CoDrone drone.close() |
Python (Beginner)_ Loops迴圈
Step 1:
什麼是迴路?
迴路可以讓你的一直重複程式碼的部分。這個是很好的捷徑讓你不需要一再重複寫同樣的內容。 這堂課你會學到while跟for迴圈。兩者都是條件式迴路,所以他只會在你設定的條件為true(是)時重複。 |
Step 2:
While迴圈
While loops 會重複一組你設定為true(是)的程式碼。其實你的日常生活常常使用到這個邏輯!請看以下例句: while condition(s) go here: statements goes here 在英文例句中你能聽到:只要我的手機還有電,我就會去瀏覽instagram。但在程式碼中會呈現如下: while phone has battery: I will use Instagram 若要促使while迴圈運作,條件是必須為true(是),不然它會被忽略過。只要條件式為真,該語句就會不斷循環運作;若條件式變成false(否),程序會離開迴路並往下讀取其他剩下的程式。 試著運作以下範例。請問字符串”Using…”輸出了幾次? battery = 100 while battery > 0: print("Using...") battery = battery - 10 print("Dead battery") |
Step 3:
編程while loop
請用while迴圈編寫程式,讓CoDrone做伏地挺身。只有變數超過10才讓條件式為true(是)。 import CoDrone drone = CoDrone.CoDrone() drone.pair(drone.Nearest) pushups = 0 while pushups < 10: drone.takeoff() drone.hover(1) drone.land() pushups+=1 # increment pushups by 1 drone.close() P.S.:如果將 while loop中的條件設置為“1”或“True”,While loop就可以永遠持續運作下去。 |
Step 4:
For loops
For loops 跟while loops很像—當條件式為true(是)都會重複程式碼的內容。然而條件式是你設定次數的特定數字。例如:加設你只需要程式碼內容重覆87次,那就要使用for迴圈。 For迴圈所使用的條件式非常特別,並且看起來挺複雜嚇人的,但別擔心,我們會分解給你看! for private variable in range (minimum, maximum, increment or decrement): Write statements here
以下範例給你參考: for x in range(0, 10, 1): print(x)
0 1 2 3 4 5 6 7 8 9 有發現”1”沒有被列印出來嗎?因為10是限制的最大值。像我們的範例中的x是專用變數,一旦達到最大值他就不會被列印出或超出限制。
你也可以將它移到負向或是遞減。以下範例給您參考: for j in range(-1, -13, -2): print(j) 你覺得結果會是長怎樣呢?往下看下一步驟時請先寫下它。 |
Step 5:
編程for loop
編程讓你的CoDrone在一個方形中飛行。請記得電腦從0開始計算而4是最大值。 import CoDrone drone = CoDrone.CoDrone() drone.pair(drone.Nearest) drone.takeoff() for x in range(0, 4, 1): drone.set_pitch(50) drone.move(2) drone.set_yaw(-50) drone.move(2) drone.land() drone.close() |
Step 6:
編程挑戰
讓CoDrone做5次伏地挺身,並列印出以下訊息: “taking off(起飛)” , “hovering(盤旋)”, 與 “landing(著陸)”. 請試著用一個for loop和一個while loop製作一個版本。 For loop 解決方案: import CoDrone drone = CoDrone.CoDrone() drone.pair(drone.Nearest) for x in range(0, 5, 1): drone.takeoff() print("taking off") drone.hover(3) print("hovering") drone.land() print("landing") drone close() import CoDrone drone = CoDrone.CoDrone() drone.pair(drone.Nearest) while x < 10: drone.takeoff() print("taking off") drone.hover(3) print("hovering") drone.land() print("landing") x+=1 # increase x by 1 drone.close() |
Step 7:
試試看!
挑戰:恐怖之塔 在一些迪士尼樂園恐怖之塔是自由落體。這些遊樂設施通常帶乘客慢慢上升到最高處,然後非常迅速地下降。許多自由落體會讓乘客往下衝、暫停一下、再上升一點點但又不太高、再暫停、往下衝、暫停…你懂它的操作方式吧。 你要挑戰的是用迴路編程你的CoDrone,用類似自由落體的概念飛行。 規則:
給指導員的提示: 提供給你一個範例: import CoDrone drone = CoDrone.CoDrone() drone.pair(drone.Nearest) drone.takeoff() drone.set_throttle(50) drone.move(5) drone.hover(3) for x in range(0, 5, 1): drone.set_throttle(-50) drone.move(3) drone.hover(1) drone.set_throttle(50) drone.move(2) drone.hover(1) drone.land() drone close() |