發表文章

目前顯示的是有「python程式語言」標籤的文章

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 = fl...

Python控制結構一點就通!(10)for迴圈

圖片
Python的While迴圈和for迴圈可不一樣!怎麼說?這不就要娓娓道來了嗎~ 看這一篇之前,建議先看這一篇 Python教學 :「 Python控制結構5.while 迴圈 」複習 while 迴圈。 Python 中,若我們要多次重複執行一個指令,我們可以使用迴圈(loops)。迴圈中的程式碼會用以下的方式執行指令:1、按照所指定的次數,重複執行;2、重複執行,直到特定的條件成立時結束;3、針對某一集合(例如: Python list串列之中的物件)中的所有項目,都各執行一次。 for 迴圈 vs. while 迴圈 先前我們曾經介紹過的 while 迴圈 用法與 if 條件判斷式 相似,只要給予的條件成立(即為「True(真)」),它就會執行。不同的是執行次數,if 只執行一次;while 迴圈則輪迴執行無限多次 (除非有設定讓迴圈結束的條件且條件成立)。 while 迴圈只要「沒有」另外設定「迴圈結束的條件(如:if 、break)」,迴圈就會無限的循環。這次我們要介紹的 for 迴圈則是在一行內就 自帶計數功能的迴圈,可以將重複循環控制在固定的數量內。 讓我們來看看 Python教學 ,給的以下這個 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 卻只要兩行...

Python控制結構一點就通!(9)Range數列生成

圖片
Python的函數百百種!今天要來帶你看的是"range"函數!還不熟悉的趕快抓住這機會! 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] 下篇的 Python教學 要教你Python控制結構的for迴圈,敬請期待! 相關文章: Python控制結構一點就通!(8)List串列的函數 Python控制結構一點就通!(10)for迴圈 Python控制結構一點就通!(終)實作簡單的計算機 邀你認識「KISS 原則」神奇的網路行銷課程 Python人工智慧對人類的影響到底大不大!?(上) 暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~ 達內課程先就業再付款- 中時電子報

Python控制結構一點就通!(8)List串列的函數

圖片
Python的List串列函數都還沒提到呢!函數append,insert,index,len通通一網打盡! 在 Python 的 List 串列【基本的List串列說明,請參考之前的 Python教學 : 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', '潛水面罩', '調節器', ...

Python控制結構一點就通!(7)List串列與其他運算子

圖片
  Python的Lsit串列,還有更多你該學的呢!這篇教你如何對它的物件"動手腳"! List 串列-重新定義物件 在「 Python控制結構6.List串列 」中,我們了解了基本的 List串列索引的概念。而今天的 Python教學 要告訴你,在 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', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣', '潛水電腦'] >>> pri...

Python控制結構一點就通!(6)List串列

圖片
Python的List串列包含了哪些東西?我又該怎麼使用它?這篇就好好來解你的惑! Python教學 必教的:List 串列 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。 另外, Python教學 也告訴我們,想創建沒有物件的 List 串列?當然也可以!請看以下所示: empty_list = [] print(empty_list) 結果如下: [] List 串列中所包含的元素種類眾多,有字串(string)、整數與浮點數、變數等,甚至在包含另一個 List 串列(也是以「[]」包覆)。一個 List 串列可以囊括不同種類的物件,如下所示: 變數 = 3 一堆雜物 = ["string", 0, [1, 2, 變數], 4.56] print(一堆雜物[1]) print(一堆雜物[2]) print(一堆雜物[2][2]) 以上範例結果如下所示: 0 [1, 2, 變數] 3 上述的 「print(一堆雜物[2][2])」意思為輸出列表中索引「2」的物件列表中的索引「2」物件,該物...

Python控制結構一點就通!(5)while迴圈

圖片
關於Python的while迴圈,它可以製造出那些效果?一步步跟著這篇走,剩下的你不用怕啦! 關於Python-while 迴圈 Python 的 if 條件判斷式【請參考上篇的 Python教學 : Python控制結構2.if else條件判斷(1) 】,若評估為 True【請參考: Python控制結構1.布林值Boolean-True or False? 】 的話,就會執行一次;反之則不執行。 Python 的 while 迴圈跟 if 條件判斷式相似,但是不同的是,它不只執行一次。只要條件成立,它就會不斷地重複執行。就算是有其中一段代碼被評估為 False,下一段代碼仍會被執行。 while 迴圈構成,包含了 。 以下範例的 while 迴圈中有一個變數「i」, 初始值 為「1」; 更新值(又稱為調整值) 為「i+1」; 讓迴圈結束的條件 為「i <=5」。 這次 Python教學 給你以下範例,讓 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 結果馬上會跳出一堆數字,且不斷的在跳出中。後出來的數字,都是...

Python控制結構入門必學(4)運算子優先順序一覽

圖片
想知道更多關於 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("Ye...

Python控制結構一點就通!(3)布林邏輯

圖片
Python的if條件判斷式變得複雜,就是時候派出布林邏輯啦!一起來看看Python有哪些運算子! 當 Python 的 if 條件判斷式 (需要複習if...else條件判斷式?請看 這篇 !)變得更複雜,有超過一種的狀況時,就使用 Boolean Logic 布林邏輯式。 Python 的 Boolean 運算子包含: and(和) 、 or(或) 、 not(不是) 。 今天的 Python教學 就來介紹它們! Python 的 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...

Python控制結構一點就通!(2-2)else的條件判斷

圖片
Python的if條件判斷學完之後,怎能虎頭蛇尾不學另一個else呢?快繼續看下去! 上一篇文章: Python控制結構2.if else條件判斷(1) ,我們已經知道 if...else 的 if 的用法,這一篇當然就來講述 else 的功能! Python 的 if...else 條件判斷式,除了單純的 if 設定一組條件之外,還可加上 else...if 或 else 增加條件。而每一個 if,都可以設定不同的條件。 例如:在上 Python教學 時,你要想要試著寫出一個 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 的例子,你可以把樂...

Python控制結構一點就通!(2-1)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歲不得觀賞限制級的電影 因此,他必須放棄...