顯示具有 python程式語言 標籤的文章。 顯示所有文章
顯示具有 python程式語言 標籤的文章。 顯示所有文章

2020年10月19日 星期一

Python教學小祕方-控制結構4運算子優先順序

 想學好Python?”Python教學小祕方讓你了解運算子的優先順序!

想學好Python?”Python教學小祕方”讓你了解運算子的優先順序!

Python教學運算子的優先順序(operator precedence), Python 和其他的程式語言全部是Python教學重要的概念。它是數學運算順序(如先乘除後加減)概念的延伸,也包括了其他運算子,如布林運算子等。 下面表中會列出Python 運算子的優先順序從高到低如下:

** 指數 (最高優先順序),範例:2**3 = 8
~< 補數
+ - 正數 負數
* / // % 乘 除 地板除法(只取整數的除法) 餘數
+ - 加法 減法
>> << 右移 左移
&
^ XOR
| OR
in not in is is not > < >= <= != == 比較運算子
not x 布林值:不(NOT)
and 布林值:和(AND)
or 布林值:或(OR)
Python 的運算子的優先順序,可由以下例子練習:
16 - 2 * 5 // 3 + 1
結果如下:
14
解析:上例首先計算 2 * 5 得到 10,然後是 10 // 3 得到值 3 (此為忽略餘數的地板除法,所以無小數點),然後計算 16 - 3 + 1 得到 14。 又如下例,結果會如何?
x = 4
y = 2
if not 1 + 1 == y or x == 4 and 7 == 8:
  print("Yes")
elif x > y:
print("No")
結果顯示如下:
No

相關文章:

人工智慧寫「不想消滅人類」登《衛報》……記者將被 AI 取代?

人工智慧、大數據、VR等2020最搶手職業榜出爐!值得你現在開始準備

人工智慧把關用藥安全!AI 藥櫃取藥、送藥、用藥更精準

人工智慧:貓是液體!NVIDIA 的 AI 創造人臉超逼真,但合成的貓都是液態

google地圖搭上人工智慧會擦出什麼火花呢?(上)

人工智慧貓咪庇護所為了守護流浪貓應運而生(上)

人工智慧臉部辨識能力不如你想的那般強大!? (上)

 

2019年10月21日 星期一

Python控制結構教學(十一) 簡單計算機實作

Python實作時間到!看看之前教學系列你學會了幾招!


Python實作時間到!看看之前教學系列你學會了幾招!



Python教學 今天是要大家練練手, 來進行 Python 項目實作,運用這系列教的來做一個簡單的計算器。本實作應用了 Python 的基本函數與概念:while 迴圈if 條件判斷式elif 寫法type conversion類型轉換
每個部分說明了 Python 程式的不同部分。

第一部分是計算機的起始畫面,讓用戶一直不斷輸入,直到用戶輸入「exit」為止,因此使用了while 迴圈
while True:
   print("選項:")
   print("輸入 '+' 讓兩個數值互加")
   print("輸入 '-' 讓兩個數值互減")
   print("輸入 '*' 讓兩個數值互乘")
   print("輸入 '/' 讓兩個數值互除")
   print("輸入 'exit' 來結束程式")
   user_input = input(": ")

   if user_input == "exit":
      break
   elif user_input == "+":
      ...
   elif user_input == "-":
      ...
   elif user_input == "*":
      ...
   elif user_input == "/":
      ...
   else:
      print("不知道你在輸入什麼")  

上述程式還沒寫完,只完成了起始畫面與結構。接下來我們針對每個小部分來寫 Python 程式碼:
加法的部分:
elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))

現在,當用戶輸入「+」後,程式就會提示輸入兩個數字。以上我們使用 float()函數,來將用戶輸入的數字強制轉變成浮點數。但是若用戶輸入的不是數字,程式就會 GG。
接下來,我們寫的程式碼,是用來執行用戶輸入的兩個數字,完成加總並且將結果輸出。Python 程式碼如以下所示
elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 + num2)
    print("答案是 " + result)

以此類推,減法的部分為:
elif user_input == "-":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 - num2)
    print("答案是 " + result)

以此類推,乘法的部分為:
elif user_input == "*":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 * num2)
    print("答案是 " + result)

以此類推,除法的部分為:
elif user_input == "/":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 / num2)
    print("答案是 " + result)

程式寫好,執行成果如下:

 



相關文章 

2019年10月18日 星期五

Python控制結構教學(十) for迴圈

知道Python的for迴圈和while迴圈不一樣嗎?快來學學!


知道Python的for迴圈和while迴圈不一樣嗎?快來學學!



Python教學 今天要給大家說說迴圈。看這一篇之前,建議大家先看這一篇「Python控制結構5.while 迴圈」回憶回憶,複習一下 while 迴圈是什麼。
Python 中,若我們要多次重複執行一個指令,我們可以使用迴圈(loops)。迴圈中的程式碼會用以下的方式執行指令:1、按照所指定的次數,重複執行;2、重複執行,直到特定的條件成立時結束;3、針對某一集合(例如:Python list串列之中的物件)中的所有項目,都各執行一次。

for 迴圈 vs. while 迴圈

先前我們曾經介紹過的 while 迴圈用法與 if 條件判斷式相似,只要給予的條件成立(即為「True(真)」),它就會執行。不同的是執行次數,if 只執行一次;while 迴圈則輪迴執行無限多次 (除非有設定讓迴圈結束的條件且條件成立)。
while 迴圈只要「沒有」另外設定「迴圈結束的條件(如:if 、break)」,迴圈就會無限的循環。這次我們要介紹的 for 迴圈則是在一行內就 自帶計數功能的迴圈,可以將重複循環控制在固定的數量內。
以下為一個 while 迴圈的範例,起始值為「count=0」、調整值為「count = count + 1」、讓迴圈結束的條件為「<= 5」,如下所示:
count=0 
while count <= 5: 
    print(count)
    count = count + 1   
上述範例結果為:
0
1
2
3
4
5

上個範例,若我們把第二行的「count <= 5」抽掉,換成一個「合乎常理」的條件(例如 count = 0),這個 loop 就會「0,1,2,3,4,5,6,7⋯⋯」永無止盡的重複「+1」的動作。同個範例,若使用 for 迴圈,則在第一行就可以搭配 range數列,定義「終止值」。如下例:
for count in range(0,6,1):
  print(count)
上述例子結果為:
0
1
2
3
4
5

有沒有發現,原本使用 while loop 需要 4 行的 coding,使用 for loop 只要兩行?
因為 while 迴圈把三大控制條件:初始值、讓迴圈結束的條件、更新值(又稱為調整值)分散在各行來敘述,for 迴圈則使用 range數列 將這三大控制條件放在同一行中展現。上述 range 的寫法為「range(起始值為0,迴圈在6之前就結束,調整值為+1),一行立刻應用 Range數列來訂定起始值、結束條件與調整方法,是不是很精簡方便的?Python 的 range 函數的詳細用法請見這一篇。
下面還有另外一個例子,為 for 迴圈應用 Python List串列函數的,將串列表中的所有物件都執行一次的範例:
the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
for bandname in the_BIG4:
    print(bandname+" is a thrash metal band.")
上述例子結果為:
Megadeth is a thrash metal band.
Metallica is a thrash metal band.
Anthrax is a thrash metal band.
Slayer is a thrash metal band.

這種針對某一集合中的所有項目(例如:List串列之中的所有物件),都各執行一次例子,若用 while 迴圈來表示則需要:1、套用到 counter 「計數器」變數(計數器的數值是跟著索引跑的,所以設定起始值為「counter = 0」。串列的索引編號均是從零開始,詳細請看這篇)。;2、調整值為多加一次,故把計數器變數設為「counter = counter + 1」;3、讓迴圈結束的條件為當計數器把串列的東西全都執行結束時,因此把計數器的值設定為「最大的索引數」, 變成:
the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
counter = 0
max_index = len(the_BIG4)-1

while counter <= max_index:
   bandname = the_BIG4[counter]
   print(bandname + " is a thrash metal band.")
   counter = counter + 1 

比起來,for 迴圈自帶計數的特性,真的簡化了 Python 程式碼的寫法。所以遇到有次數限制的迴圈時,不妨使用 for 迴圈吧!



相關文章 

2019年10月17日 星期四

Python控制結構教學(九) 數列生成

Python小教室來囉!一起學學數列生成怎麼做吧!


Python小教室來囉!一起學學數列生成怎麼做吧!


Python教學今天要給大家說說 Python 的「range」函數。這函數可以用來生成數字序列,若無指定,數字序列由「0」開始。下例指定數字序列生成到 20 個,如下例所示:
numbers = list(range(20))
print(numbers)
上述範例結果為:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Python 的「range」函數可以用來生成由零開始的數字序列,但是我們仍然可以指定起始值如下:
numbers = list(range(7, 14))
print(numbers)

print(range(20) == range(0, 20))
上述例子結果為:
[7, 8, 9, 10, 11, 12, 13]

True

Python 中我們除了可以輸入兩個參數,指定序列的起始值外,還可以指定第三個參數(必須為整數)以定義每個數字中間間隔為多少。如下:
numbers = list(range(7, 14, 2))
print(numbers)
上述例子結果:
[7, 9, 11, 13]


相關文章 

2019年10月16日 星期三

Python控制結構教學(八) 多樣化的串列

Python小教室來啦!還在用那麼一種串列嗎?來多學幾招吧!


Python小教室來啦!還在用那麼一種串列嗎?來多學幾招吧!



Python教學 系列又來啦!先前的文章曾提過, 在 Python 的 List 串列【基本的List串列說明,請參考:Python控制結構6.List串列】中,我們不僅可以隨意替換、索引 List 中的物件【請參考:Python控制結構7.List串列與其他運算子的應用】,我們還可以使用「append」來增加串列中的物件。如下例所示:

GearList = ["BCD", "調節器", "蛙鞋"]
GearList.append("潛水面罩")
print(GearList)

上述範例結果為:
['BCD', '調節器', '蛙鞋', '潛水面罩']

我們可以使用「len」來計算 List 串列中有多少物件:
GearList = ["BCD", "調節器", "蛙鞋"]
print(len(GearList))
上述例子結果為「3」。

「len」可與「append」合用,Python 語法範例如下:
GearList = ["BCD", "調節器", "蛙鞋"]
GearList.append("潛水面罩")
print(len(GearList))
上述例子結果為「4」。

剛剛提到,在 Python 中我們可以使用「append」來增加串列中的物件。但是「append」都是把物件增加在串列的最後面。若希望物件增加到串列的中間,就用「insert」:
GearList = ["BCD", "調節器", "蛙鞋"]
index=1
GearList.insert(index,"潛水面罩")
print(GearList)

結果為:
['BCD', '潛水面罩', '調節器', '蛙鞋']

以上範例,我們在 List 串列那一行的後方,加入了「index=1」,指定索引號碼為「1」。所以,"潛水面罩"這物件就被安插在索引序號為「1」的位置。

Python 的 List 串列用法可說是多樣化。我們甚至可以使用「index」來查看指定物件的索引序號如下:
GearList = ["BCD", "調節器", "蛙鞋"]
index=2
GearList.insert(index,"潛水面罩")
print(GearList.index("BCD"))
print(GearList.index("蛙鞋"))
print(GearList.index("調節器"))
print(GearList.index("潛水面罩"))

結果為:
0
3
1
2

List串列尚可搭配 for 迴圈,讓 List串列中的所有物件都可以被 Python 程式執行!【請參考:Python控制結構10.for迴圈



相關文章 

2019年10月15日 星期二

Python控制結構教學(七) 串列與其他應用

Python教學教室來囉!學學串列與其他應用吧!


Python教學教室來囉!學學串列與其他應用吧!


List 串列-重新定義物件

Python教學 今天要來說說串列的部分!之前在「Python控制結構6.List串列」中,我們已經了解了基本的 List串列索引的概念。在 Python 中,同一 List 串列內的任一物件(元素),不是固定的,物件是可以隨時替換的,如下:
GearList = ["BCD", "調節器", "蛙鞋", "潛水面罩", "氣瓶", "潛水衣"]
GearList[5] = "Dry Suit"
print(GearList)

上述範例結果為:
['BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', 'Dry Suit']
是否注意到最後一個物件(索引編號:5)從 "潛水衣" 變成了 "Dry Suit"?

List 串列-print時增加、複製物件

Python 中,也可以使用運算子「+」、「*」,來使 List 串列被輸出時,可以增加、複製物件。如下面例子所示:
GearList = ["BCD", "調節器", "蛙鞋", "潛水面罩", "氣瓶", "潛水衣"]
print(GearList+["潛水電腦"])
print(GearList*2)

結果如下(以一行指令、一行輸出結果的方式表示):
>>> print(GearList+["潛水電腦"])
['BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣', '潛水電腦']

>>> print(GearList*2)
['BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣', 'BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣']

以上範例的結果,第一個程式碼在輸出時增加了"潛水電腦";第二個輸出的結果為原有程式碼的兩倍。

檢查 List 串列表中的物件

我們可以在 print 時,運用「in」運算子來檢查指定的物件(元素)是否在串列中。若有,則回傳為 True;反之為 False。寫法為如下方範例所示:
Fruits = ["芭樂", "榴蓮", "柳丁", "草莓"]
print("榴蓮" in Fruits)
print("草莓" in Fruits)
print("牛肉" in Fruits)

結果為:
True
True
False

以上Python範例,還可以搭配「not」運算子【not 運算子請參考:Python控制結構3.布林邏輯:and,or,not】來檢查指定的物件(元素)是否「沒有」在串列中。若沒有,則回傳為 True;有的話則為 False。
Fruits = ["芭樂", "榴蓮", "柳丁", "草莓"]
print(not "榴蓮" in Fruits)
print("榴蓮" not in Fruits)
print(not "草莓" in Fruits)
print("牛肉" not in Fruits)

結果為:
False
False
False
True

除了上述介紹的 List 串列索引功能之外,你也可以活用各種函數來增加索引中的物件或是計算索引中的物件數量【請參考:Python控制結構8.List-append,insert,index,len函數】。
List串列尚可搭配 for 迴圈,讓 List串列中的所有物件都可以被 Python 程式執行!【請參考:Python控制結構10.for迴圈



相關文章 


2019年10月14日 星期一

Python控制結構教學(六) 串列

Python教學教室,今天要告訴大家如何做串列!


Python教學教室,今天要告訴大家如何做串列!


List 串列

Python教學 今天要來跟大家說說List 串列! 串列是什麼呢?其實就是 Python 中表示資料的方法(資料結構),有順序地將一系列的物件集合在一起,具有索引特性。
List 串列的語法,是用「[]」包覆一系列的物件,每個物件(元素)均使用逗號「,」區隔,如以下例子所示:
GearList = ["Scuba BCD", "Scuba Diving Regulator", "Diving Fins", "Diving Mask", "Scuba Tank", "Wet Suit"]
print(GearList[0])
print(GearList[1])
print(GearList[2])
print(GearList[3])
print(GearList[4])
print(GearList[5])

上述範例結果為:
Scuba BCD
Scuba Diving Regulator
Diving Fins
Diving Mask
Scuba Tank
Wet Suit

注意:List 串列的語法中,第一個物件(元素)的索引號為 0,而不是 1。
我們還可以創建沒有物件的 List 串列,如下所示:
empty_list = []
print(empty_list)

結果如下:
[]

List 串列中所包含的元素種類眾多,有字串(string)、整數與浮點數、變數等,甚至在包含另一個 List 串列(也是以「[]」包覆)。一個 Lise 串列可以囊括不同種類的物件,如下所示:
變數 = 3
一堆雜物 = ["string", 0, [1, 2, 變數], 4.56]
print(一堆雜物[1])
print(一堆雜物[2])
print(一堆雜物[2][2])

以上範例結果如下所示:
0
[1, 2, 變數]
3

上述的 「print(一堆雜物[2][2])」意思為輸出列表中索引「2」的物件列表中的索引「2」物件,該物件為「變數」,而變數等於三,故 print(一堆雜物[2][2]) 的結果為「3」。

 

字串 (strings) 類型也可以逐字被索引

Python 字串類型的物件,也可以像 List 串列一樣,逐字被索引。我們可以輸入 print(str[n]) 指令,讓他抓出字串元素的第 n+1 個字。【關於字串,請參考:Python基本概念第四課-Strings字串
在字串中,第一個字母的索引號也是 0,而不是 1。
str = "潛水用具包含 BCD、水肺等."
print(str[0])
print(str[1])
print(str[6])
print(str[9])
print(str[10])
print(str[14])

結果如下(以一行指令、一行輸出結果的方式表示):
>>> print(str[0])
潛
>>> print(str[1])
水
>>> print(str[6])
 
>>> print(str[9])
D
>>> print(str[10])
、
>>> print(str[14])
.

由此可見,無論是全形、半形、中文、英文、空格、標點符號等等,全部在 Python 程式裡面都可以被索引出來!
學會了 List 串列,可以應用的地方非常廣。無論是本章介紹的基本索引功能,也有進階的索引用法【請參考:Python控制結構7.List串列與其他運算子的應用】,除此之外,你也可以活用各種函數來增加索引中的物件或是計算索引中的物件數量【請參考:Python控制結構8.List-append,insert,index,len函數
List串列尚可搭配 for 迴圈,讓 List串列中的所有物件都可以被 Python 程式執行!【請參考:Python控制結構10.for迴圈


相關文章 

2019年10月9日 星期三

Python控制結構教學(五) while迴圈

Python教學時間到! while 迴圈是什麼呢?想學就看過來吧!


Python教學時間到! while 迴圈是什麼呢?想學就看過來吧!

Python-while 迴圈

今天的 Python教學 時間,要帶大家了解Python 的 if 條件判斷式【請參考:Python控制結構2.if else條件判斷(1)】與while 迴圈的差異。若評估為 True【請參考:Python控制結構1.布林值Boolean-True or False?】 的話,就會執行一次;反之則不執行。
Python 的 while 迴圈跟 if 條件判斷式相似,但是不同的是,它不只執行一次。只要條件成立,它就會不斷地重複執行。就算是有其中一段代碼被評估為 False,下一段代碼仍會被執行。

while 迴圈構成,包含了 以下範例的 while 迴圈中有一個變數「i」,初始值為「1」;更新值(又稱為調整值)為「i+1」;讓迴圈結束的條件為「i <=5」。
以下範例讓 i 的從初始值開始,程式每執行一次,i 就等於上一回合的數值再「+1」一次,直到 i 等於 5 為止停止,寫法如下:
 i = 1 #初始值
 while i <=5:       #讓迴圈結束的條件
    print(i)
    i = i + 1       #更新值 (調整) 

則結果為:
1
2
3
4
5
>>>

while迴圈的「infinite loop(無限循環)」

Python 的 while 迴圈中,有一種被稱作「infinite loop(無限循環)」,當條件(為True)成立時,程式就會永不停止地重複執行。
「infinite loop(無限循環)」的範例如下:
while 7==7:
  print("這是無限循環迴圈")

結果,「這是無限循環迴圈」這行字就會不斷的重複顯示。
若你真的受不了,你可以按鍵盤快速鍵「Ctrl-C」以阻止它繼續重複顯示。
以下也是無限循環迴圈的另一個例子,看看它的結果如何。
x=1
>>> while x>0:
         print(x)
         x+2

結果馬上會跳出一堆數字,且不斷的在跳出中。後出來的數字,都是前一個數字 +2 的結果。真的受不了,就按鍵盤快速鍵「Ctrl-C 」跳出吧!

跳出while迴圈:break

要結束 while 迴圈循環,就使用 break 敘述。在迴圈循環時,一遇到 break 敘述,就會讓迴圈立即停止循環。範例如下:
i = 1 #初始值
while 1==1:
  print(i)
  i = i + 1  #更新值 (調整) 
  if i >= 5: #讓迴圈結束的條件
    print("Breaking")
    break
>>>

上述的代碼,意思若「1 等於 1」的敘述為真,則 i 就從 1 開始輸出,之後程式跑到「i = i + 1」,i 就以 i+1 的形式繼續循環輸出,直到 i 為「5」時,就輸出「Breaking」並結束循環。因此這段 Python 程式的執行結果為:
1
2
3
4
Breaking

繼續while迴圈:continue

Python 的 while 迴圈中,有一個與 break 敘述相對的,就是 continue —— 跳回到迴圈的頂部繼續循環,而不是停止循環。
i = 1 #初始值
while True:
  print(i)   
  i = i + 1  #更新值 (調整) 
  if i == 5: 
    print("Skipping 5")
    continue
  if i == 7: #讓迴圈結束的條件
    print("Breaking")
    break

上述的 Python 代碼,意思若「1 等於 1」的敘述為真,則 i 就從 1 開始輸出,之後程式跑到「i = i + 1」,i 就以 i+1 的形式繼續循環輸出,直到 i 等於「5」時,就輸出「Skipping 5」並且跳回到迴圈的頂部「print(i)」繼續從「5」循環,直到 i 等於「7」時輸出「Breaking」並結束循環。因此這段 Python 程式的執行結果為:
1
2
3
4
Skipping 5
5
6
Breaking



相關文章 


2019年10月7日 星期一

Python控制結構教學(三) 布林邏輯


Python小教室又來囉!知道了布林值,你也該知道什麼是布林邏輯吧? 

Python小教室又來囉!知道了布林值,你也該知道什麼是布林邏輯吧?



Python教學 時間到!當 Pythonif 條件判斷式(想知道什麼是if...else條件判斷式請看這篇)開始變得更複雜的時候,就使用 Boolean Logic 布林邏輯式。
Python 的 Boolean 運算子包含:and(和)、or(或)、not(不是)。
and 運算子包含兩個條件參數,當兩個條件都成立時,才會被評估為「True」。只要其中有一個不成立,則為「False」。【參考:Python控制結構1.布林值Boolean-True or False?
>>> bool( 1 == 1 and 2 == 2 )
True
>>> bool( 1 == 1 and 2 != 2 )
False
>>> bool( 1 < 1 and 2 >= 2 )
False
>>> bool( 1 < 1 and 2 != 2 )
False

下方 Python 程式例子為只要符合「年滿18歲」及「低消超過180元」才會輸出「welcome」的例子
age=21
money=500
if age >= 18 and money >= 180:
 print("welcome")
結果顯示如下:
>>>
welcome
>>>

Python 的 or 運算子包含兩個參數,只要其中有一個條件成立,就會被評估為「True」。兩個條件都不成立才會被判定為「False」
>>> bool( 1 == 1 or 2 == 2 )
True
>>> bool( 1 != 1 or 2 == 2 )
True
>>> bool( 1 != 1 or 2 != 2)
False

下方例子為只要符合「年滿65歲」或是「你付超過3000元」兩條件任一種,就會輸出「You'll get a Wacken Open Air 2020 ticket」的例子
age=77
money=0
if age >= 65 or money >= 3000:
 print("You'll get a Wacken Open Air 2020 ticket")

結果顯示如下:
>>>
You'll get a Megadeth concert ticket
>>>

not 運算子只有包含「一個」條件參數,條件成立(就是合乎邏輯)就會顯示為「False」。條件不成立才會被判定為「True」
>>> bool( not 1 == 1 )
False
>>> bool( not 1 != 1 )
True

下方例子為只要不符合「年滿18歲」就會顯示「未滿18歲不得進入」的例子
age=14
if not (age>=18):
 print("未滿18歲不得進入")

結果顯示如下:
>>>
未滿18歲不得進入
>>>

"
以上是今日的 Python教學 時間。


相關閱讀


2019年10月5日 星期六

Python控制結構教學(二)else條件判斷

Python教學又來囉!else的功能是什麼呢?



Python教學又來囉!else的功能是什麼呢?



Python教學 時間又來啦!上一篇文章中Python控制結構2.if else條件判斷(1),我們已經知道 if...else 的 if 的用法,對吧!這一篇就要來說說 else 的功能啦!
Python 的 if...else 條件判斷式,除了單純的 if 設定一組條件之外,還可加上 else...if 或 else 增加條件。每一個 if,都可以設定不同的條件。例如:今天你要寫出一個Python程式,判斷你所輸入的樂團名稱「Megadeth」,是否在四大鞭擊金屬樂團之列。則程式如下例所示:

bandname = "Metallica"
if bandname == "Megadeth":
    print("無庸置疑,Megadeth 無論在歌曲的編制、樂句的表現與技巧的專精,都勝過其他的鞭擊金屬樂團。")
else: 
    if bandname == "Metallica":
        print("Metallica 也是四大鞭擊金屬樂團之一。但是最好的是前四張專輯")
    else:
        if bandname == "Anthrax":
            print("Anthrax 也是四大鞭擊金屬樂團之一。但是地位不如 Megadeth 與 Metallica")
        else: 
            if bandname == "Slayer":
                print("Slayer 確實是四大鞭擊金屬樂團之一。但是我對他們不熟")
            else:
                print("你輸入的樂團名稱不在四大鞭擊金屬樂團之中")

結果顯示如下:

>>>
Metallica 也是四大鞭擊金屬樂團之一。但是最好的是前四張專輯
>>>

以上Python的例子,你可以把樂團名稱換成 "Megadeth"、"Anthrax"、"Slayer" 或是其他的名稱試試看喔!
else if 可以縮寫成「elif」,承上方的例子,把所有的 else if 都改成「elif」則結果如下例所示(下例也把樂團名稱改成 "Megadeth"):

bandname = "Megadeth"
if bandname == "Megadeth":
    print("無庸置疑,Megadeth 無論在歌曲的編制、樂句的表現與技巧的專精,都勝過其他的鞭擊金屬樂團")
elif bandname == "Metallica":
    print("Metallica 也是四大鞭擊金屬樂團之一。但是最好的是前四張專輯")
elif bandname == "Anthrax":
    print("Anthrax 也是四大鞭擊金屬樂團之一。但是地位不如 Megadeth 與 Metallica")
elif bandname == "Slayer":
    print("Slayer 確實是四大鞭擊金屬樂團之一。但是我對他們不熟")
else:
    print("你輸入的樂團名稱不在四大鞭擊金屬樂團之中")

結果顯示如下:
>>>
無庸置疑,Megadeth 無論在歌曲的編制、樂句的表現與技巧的專精,都勝過其他的鞭擊金屬樂團
>>>

承上例,我們把第一行的 「bandname = "Megadeth"」改成「bandname = "Anthrax"」結果顯示如下:

>>>
Anthrax 也是四大鞭擊金屬樂團之一。但是地位不如 Megadeth 與 Metallica
>>>

承上例,我們再把第一行的 「bandname = "Anthrax"」改成「bandname = "Slayer"」結果顯示如下:

>>>
Slayer 確實是四大鞭擊金屬樂團之一。但是我對他們不熟
>>>

承上例,我們再把第一行的 「bandname = "Slayer"」,將 Slayer 改成隨便一個你知道的樂團名稱,也許結果顯示如下:
>>>
你輸入的樂團名稱不在四大鞭擊金屬樂團之中
>>>




相關文章

速食店龍頭也用AI 人工智慧!點餐.炸薯條這就搞定了!?

IG靠AI人工智慧反擊網路霸凌

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

人工智慧點餐不稀奇~現在還能幫你炸薯條雞塊喔!!

聽對音樂可以提升工作效率?!連研究人工智慧的工程師都超推薦!

人工智慧也能幫導演推估票房?怎麼辦到的?

2019年10月4日 星期五

Python控制結構教學(二)if條件判斷式

Python教學又來啦!if指令下下去!


Python教學又來啦!if指令下下去!



Python教學 時間到!在 Python 中,如果有滿足特定的條件,就可以使用 if 指令。要是滿足了某個指定的條件(即是布林值為「True」,若不懂什麼是布林值,請看這篇:Python控制結構1.布林值Boolean-True or False?),則這個程式的片段會被執行。反之,則不執行。


if 指令的語法如下
if <條件>:
   執行的狀況

範例:如果 x 小於 0 則輸出「x 是負數」,而不論 x 的值為何,最後都會輸出「此Python程式結束」。
x=-10
if x < 0:
    print("x 是負數")
print("此Python程式結束")

結果顯示如下:
>>>
x 是負數
此Python程式結束
>>>

呈上例,若 x=10 的話,則結果只會顯示「此Python程式結束」。

有時,if 條件式裡還會有另一組 if 條件式,就形成多層 if 條件式的架構。這種情況稱為「巢狀 if 條件式」。巢狀 if 條件式就好像設定多道關卡,資料必須經過每一道關卡的檢驗。滿足了第一關的條件,才會到第二關。這是用來檢視是否滿足多種條件的方法。如下例,如果要判斷一個人是否可以觀看輔導級、甚至限制級的電影,必須先知道他的年齡。我們把輔導級的年齡設定為 15 歲,限制級的年齡設定為 18 歲。若能觀看輔導級,不見得可以看限制級的電影;但若能看限制級的電影,則輔導級電影也可以看。今天來了一個 17 歲的人,正從以下電影考慮挑一部電影看。他們是:限制級的「藍波:最後一滴血」和輔 15 級的「無間行動」。他的年齡可以看哪一部電影呢?請參考以下程式碼:

age = 17
if age >= 15:
   print("已滿15歲,可以觀賞輔15級的電影")
   if age <18:
      print("未滿18歲不得觀賞限制級的電影")

結果顯示如下:
已滿15歲,可以觀賞輔15級的電影
未滿18歲不得觀賞限制級的電影

因此,他必須放棄「藍波:最後一滴血」這部片子,而選擇「無間行動」。

if 條件判斷式,可以不只有一種條件。若要新增條件的話,就必須要加「else」。else 的用法將在Python控制結構2.if else條件判斷(2)中說明。



相關文章

"最接近神的男人"早就預言人工智慧等科技的出現!?

影響人工智慧等新科技發展是特斯拉還是愛迪生!?

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

人工智慧主宰的世界長怎樣?他們用音樂說給你聽!!

可以靠自學成為前端工程師嗎?首先你要先會這個...

''Python''怎麼唸?''派森''還是''派桑''傻傻分不清?

2019年10月3日 星期四

Python控制結構教學(一)布林值

Python小教室又來啦!來學學什麼是控制結構吧!


Python小教室又來啦!來學學什麼是控制結構吧!


Python教學 時間來囉!今天要來說說Python 程式語法中的其中一種,是布林代數 (Boolean algebra),Python 的布林型態為 bool。布林值 (Boolean value) 僅有兩種: True 和 False。布林值可以藉由關係運算子 (Relational operator) 來建立,例如兩個等號 == 用來比較兩個值,如果相等就回覆 True,否則回覆 False:

>>> Megadeth = True
>>> bool(Megadeth)
True
>>> bool(2==3)
False
>>> bool(3==3)
True
>>> bool("Hangar 18"=="Hangar 18")
True
>>> bool("Return to Hangar"=="Return to Hangar")
True

與兩個等號「==」相反的關係運算子「!=」,也是用來比較兩個值,如果「不」相等就回覆 True,否則回覆 False:

>>> bool(2!=3)
True
>>> bool(2!=2)
False
>>> bool("Megadeth"!="Megadeth")
False
>>> bool("megadeth"!="Megadeth")
True

因為在 Python 中,大小寫是不能視為相等的。所以上方最後兩個例子雖然字母都一樣(都為 “Megadeth”),但是後一個例子的開頭字母的大小寫不同,所以被視為「不」相等。
比較兩個數值(不限整數或是浮點數)大小的運算子「>(大於)」、「<(小於)」、「>=(大於或等於)」、「<=(小於或等於)」例子如下:

>>> bool(2<3)
True
>>> bool(2>2)
False
>>> bool(2<3.0)
True
>>> bool(2.0>2)
False
>>> bool(2.0>=2)
True
>>> bool(2.0<=3.9)
True


相關文章

真人冒充人工智慧,幕後藏鏡人是誰!?(上)

真人冒充人工智慧,幕後藏鏡人是誰!?(下)

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

無俚頭的Python,Java程式名稱由來竟是這樣?

IG用人工智慧偵測惡意圖文,就要讓網路霸凌喊卡!

學會Python,這七種白領職業也不怕被取代!!

2019年9月20日 星期五

掌握Python第九步-原地運算符


想要掌握Python?原地運算符你一定要會!

想要掌握Python?原地運算符你一定要會!



Python 的原地運算符 (In-place operators) ,可以方便工程師來精簡代碼,例如「x=x+3」就可以精簡為「x+=3」。加減乘除都可以用喔!
>>> x = 70
>>> print(x)
70
>>> x += 7
>>> print(x)
77
>>> x = 70
>>> print(x)
70
>>> x *= 7
>>> print(x)
490


Python 中,原地運算符 (In-place operators) 除了用在數值外,也可以用在字串中,範例如下。
>>> x = "cat"
>>> print(x)
cat

>>> x += "meow"
>>> print(x)
catmeow
>>> x = "cat"
>>> print(x)
cat

>>> x *=3
>>> print(x)
catcatcat



相關文章

做Python小遊戲,第一次就上手!

誒!Python的命名由來竟是這樣!?

Python究竟怎麼念?細數工程師常念錯的英文單字!

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

就此揮別人工手動去背,有了人工智慧五秒就搞定!!

Photoshop去背教學,教你修出網美圖!

搞懂這些,Python變得好實用!(1)加減乘除四則運算練習