在人生中總是會遇到許多選擇,做了不同的選擇產生的結果也會不一樣,大多時候都是在為了要吃什麼在抉擇,小孩才做選擇大人全部都要,全部都要何嘗也不是一個選擇。
在Python程式語言中也有選擇的語法,就是If Else,如果是就做什麼,不是就做什麼,有別於其他程式語言,他不一定要有else,可以只有If就好,條件到在做。
在Python 中的縮排(indentation)非常重要,因為它們被用來指示程式碼塊的開始和結束。在 if-else
結構中,縮排是必需的。
縮排通常使用空格或制表符(Tab)實現,一個縮排為四個空格。
其中的條件可以套用邏輯運算子的概念,True執行,False不執行往下
if 條件:
# 如果條件為真,執行這裡的程式碼(一)
else:
# 如果條件為假,執行這裡的程式碼(二)
如果縮排不正確,將會引發 IndentationError,這是因為 Python 使用縮排來區分不同的程式碼塊,缺少或混合使用縮排會導致程式碼無法正確解釋。
x = 10
if x > 5:
print("x 大於 5")
else:
print("x 不大於 5")
那如果是請別人幫忙買吃的,第一喜歡的賣完就買第二喜歡的以此類推呢?可不可以讓選擇也有優先順序?
是有的,就是else if的概念,但在python的語法下就變成了elif的語法。
就如以下範例,90分以上就優秀,排好順序依序判斷。
score = 75
if score >= 90:
print("優秀")
elif score >= 80:
print("很好")
elif score >= 70:
print("良好")
elif score >= 60:
print("及格")
else:
print("不及格")
用去商店買東西舉例,想買香蕉,若沒有就買蘋果,沒有就回家。
程式碼實現就會如下,先建立商品名單,在用if條件式去建構自己的需求,如果有香蕉就買,沒有就往下看有沒有蘋果,有就買,沒有就回家
那你又會想,那如果有香蕉,但他價格很貴怎麼辦還要買嗎?太貴買回去會被念,我們就要在設立一個條件,小於多少價格500在買,用字典建立一個價格表,然後先檢查商店有沒有香蕉,有在判斷是否小於500。利用巢狀結構的概念完成。
那如果是什麼都沒買回家,會不會也被念,那我們在加一些判斷香蕉太貴就買蘋果,簡單不就一樣的結構複製貼上,在改個數字而已嗎?
疑,奇怪怎麼什麼都沒買就回家了?原來是每次判斷到有banana就不會在往下走了,不能這樣複製貼上改,要換個方式
這時候程式碼改成這樣,利用邏輯運算子and的用法結合兩個邏輯判斷,即可滿足此功能,不會在空手回家被念了。
先判斷是否有香蕉,在用and
結合另外一個邏輯判斷(先從字典取出香蕉的價格)是否小於500
Store = ['banana', 'apple', 'hamburger', 'meat', 'Fish']
Store_price = {'banana': 1000, 'apple': 500, 'hamburger': 300, 'meat': 700, 'Fish': 500}
if 'banana' in Store and Store_price.get('banana') < 500:
print('Buy banana')
elif 'apple' in Store and Store_price.get('apple') < 600:
print('Buy apple')
else:
print('Go HOME')
[Python基礎]流程控制while迴圈,break ,continue