【Python基礎教學】基本排序法 & 二分搜尋法【part-13】
【Python基礎教學】基本排序法 & 二分搜尋法【part-13】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 接下來,讓我們進入正題。 排序(Sort) 說到排序,我們第一個會想到的那個排序演算法,同時也是最常見最常用的,它就是所謂的「泡沫排序法」或者你也可以說它是「氣泡排序法」都可以,英文都一樣叫作「Bubble Sort」。 而排序在電腦科學中,是指能夠將一串資料依據特定方式排列的演算法。 排列演算法有以下兩種原則: 輸出結果是原始資料位置重組的結果 輸出結果是「遞增」的序列。 如果我們沒有特別說資料要由小到大還是由大到小排序,那麼排序的預設就會是由小到大(升序)遞增排列。而相反的,如果說要由大到小(降序)排序的話,就需要特別給程式說明這是由大到小排序,而這種形式我們就稱為反向排序(reversed sort)或遞減排序。 排序能夠應用到很多地方,例如:成績排序、排名排序、號碼排序等。 排序...
【Python基礎教學】lambda & 裝飾器 & 命名空間及作用域【part-12】
【Python基礎教學】lambda & 裝飾器 & 命名空間及作用域【part-12】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 上次我們談完了遞迴,也介紹比列表更快的資料結構:陣列(array),陣列結束後緊接著是類別(class)的介紹,在類別中,又有項功能叫做繼承,繼承不只單一繼承,也能夠多重繼承。今天將上一篇所挖的坑來填補一下(命名空間),也來額外教給各位匿名函數 lambda、裝飾器(decorator)的使用教學。 接下來,讓我們進入正題(本篇長文請注意!)。 lambda(匿名函數) Image Source:Mastering Lambda Expressions in Python: A Hands-On Guide | by John Vastola | Level Up Coding lambda 函式是「只有一行」的函式,可以用來處理一些小型函式,就可以不用為了一...
【Python基礎教學】遞迴(下)&陣列&類別【part-11】
【Python基礎教學】遞迴(下)&陣列&類別【part-11】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 上次我們講到了基本演算法的概念跟介紹,以及遞迴的概念及實作,今天讓我們繼續完成遞迴的實作,以及說明遞迴的限制及複雜度問題,順便跟大家介紹類別語法。 接下來,讓我們進入正題。 遞迴(Recursion) 遞迴,簡單來說,就是一個函數呼叫自己的函數,像是這樣: 12def a(b): a(b - 1) 上次我們講解遞迴時,以階乘跟費氏數列當作例子進行實作,同時也替大家複習了高一下數學學過的遞迴關係式,我們可以利用這個遞迴關係式來進行解題。 另外遞迴的特點是淺顯易懂,且設計方便簡易,能夠將大問題分解成多個子問題,這凸顯了演算法中的分治法(Divide and Conquer)之精神。 分治法的意思是把一個複雜的問題分成兩個或更多的相同或相似的子問題,直到最後子問題可以簡單的直接求解,這點...
【Python基礎教學】生成式&演算法&遞迴【part-10】
【Python基礎教學】生成式&演算法&遞迴【part-10】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 本篇將講解生成式(Comprehension)、演算法(Algorithm)、遞迴(Recursion),這些東西都是將來實作Python時非常常見且常用的語法及演算法,總之,你學了這些東西就知道它們到底有多好用了。 生成式(Comprehension) 生成式,又稱為推導式(大陸說法),英文名為 Comprehension。 生成式可以運用在可迭代的物件上,只要撰寫一行程式碼就能完成多行的任務,大幅增加程式碼的簡潔性與可讀性。 在 Python 具有以下幾種生成式: 列表生成式 字典生成式 集合生成式 元組生成式 註:元組 tuple 並沒有生成式,而是用類似生成式的方式產生 tuple。 2024/08/14 補:生成式要從右邊讀到左邊。 列表生成式(List Compre...
【Python基礎教學】資料型態函數及方法(下)【part-9】
【Python基礎教學】資料型態函數及方法(下)【part-9】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 上次我們講到了 Number、String 更深入的用法,以及介紹他們特有的函數及方法。本篇教學【part 9】繼續延續上篇尚未講完的資料型態:list、tuple、set。 列表(List) 列表,也可稱為串列(List),說到列表,就讓我們來談及一個概念:序列(Sequence) 序列,是 Python 中最基本的資料結構,是 Python 中的一種內建型態(built-in type)。 內建型態就是建構在 Python Interpreter(Python 直譯器)裡面的型態 簡單來說,內建型態就是在 Python 中不需要額外安裝模組或套件,就能直接使用的資料型態,如同:Number、String 等等。 序列中的每個值都具有對應的位置值,稱為索引(index)。所有索引的開頭都預設為 0...
【Python基礎教學】資料型態函數及方法(上)【part-8】
【Python基礎教學】資料型態函數及方法(上)【part-8】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 接下來,讓我們進入正題。 當我們在 part 7 談完迴圈以後,其實大部分的簡易實作題型都能勉強應付了,不過我們現在所缺少的是「演算法」、「Python 內建函數及方法」的認知學習及實際應用,接下來會慢慢教給各位上述所言,首先,讓我們先從資料型態的函數及方法開始。 數字(Number) Number 的資料型態被定義為不可變物件,這意味著如果改變 Number 的數值的話,Python 將會自動分配記憶體空間給新的數值。 Python 支援以下三種不同的數值型態: 整數(integer-簡寫為 int):通常被稱為是整數,可以是正或負整數,「不含小數點」。 Python3 整數是沒有限制大小的,可以當作 Long 型態使用,所以 Python3 沒有 Python2 的 Long 型態。布林 (bo...
【Python基礎教學】迴圈【part-7】
【Python基礎教學】迴圈【part-7】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 接下來,讓我們進入正題。 之前我們說到字典時,講到他內建的方法(method),那麼方法跟函數有什麼差別呢?我們看以下圖表便知: 圖源:類別方法 (Method) VS. 函數 (Function) - Vinci AI 蘊思智能 我們看到定義的部分,前面我們都說物件(object),而在這裡卻說對象,不過按照英文翻譯解釋,object 也有對象的意思,所以各位不用對此感到任何疑慮。 接下來看基本句法的部分,method 的部分上面還多了一個 class,這我們稱為「類別」,它像是一個模板,能夠產出相似特性的物件,不過我們今天不會介紹到這個部分,挪移到之後再說。 接下來,讓我們進入只要是程式語言,最至關重要,非常非常重要的語法:迴圈。 迴圈(loop) 迴圈,不只 Python,是程式語言中最重要的核心,它能夠重複處理數...
【Python基礎教學】match...case&函數&字典【part-6】
【Python基礎教學】match…case&函數&字典【part-6】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 接下來,讓我們進入正題。 在上次我們談完了條件控制及運算子後,我們繼續前進,來到函數及迴圈的世界。 函數的概念我們在 Part 2 的部分已經有談到小部分,print() 是一個函數,不過這種格式的函數只能用來呼叫(call)它,不能夠定義且宣告它。 不過本次教學就要來教各位如何在 Python 中,宣告且定義它。在此之前,我們先來說說上次未說完的條件控制: match…case ※註:match…case 這個功能只有在 Python 3.10 以上版本才有。 match…case 是 python 版的 switch…case,在其他程式語言如:C 語言使用的語法就是 switch…case。 那麼要 match…case 做什麼用呢?主要是用於簡化 if… else 的判斷...
【Python基礎教學】型態轉換&運算子&條件控制【part-5】
【Python基礎教學】型態轉換&運算子&條件控制【part-5】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 接下來,讓我們進入正題。 數據型態的轉換 之前我們有說到關於隱式轉換的部分,那既然會有隱式轉換(implicit conversion),當然也就有顯式轉換(explicit cast)了。 Python 資料型態轉換可以分為兩種: 隱式轉換(implicit conversion):自動完成。 顯式轉換(explicit cast):需要使用函數來轉換。 隱式轉換(implicit conversion) 在隱式轉換中,Python 會自動將一種資料型態轉換為另一種資料型態,不需要我們自己去干預。 接下來我們來看一個範例,在這範例中,我們將兩種不同型態的資料進行運算,較低資料型態(整數)就會轉換為較高資料型態(浮點數)以避免資料遺失。 至於什麼是較低資料型態、較高資料型態?...
【Windows 11/10】 透過系統設定提升電腦效能及系統執行速度,五步驟優化電腦效能!
【Windows 11/10】 透過系統設定提升電腦效能及系統執行速度 不知道各位是否對於電腦卡頓、遊戲卡頓等等感到困擾?又或者你是老舊電腦,想要對電腦進行優化,想盡可能讓他跑順一點?接下來本文可能對你非常有幫助! 註:作者所使用的系統為 Windows 11,設定上可能與 Windows 10 或之前版本有所相差,敬請見諒。 一、遊戲模式/圖形設定 為了接下來教學方便與減少複雜度,我們一律使用 Windows 10/11 下方工作列內建的搜尋欄。 接下來會來到設定,我們將其按下開啟。 開啟以後,在執行遊戲時,系統會自動關閉背景執行中的應用程式,估計至少能提升 5~10 FPS,雖幅度不大,但又更加提升了順暢度。 接下來我們繼續回到搜尋欄,搜尋「圖形設定」。 點開 [更變預設圖形設定] 後,我們就來到以下圖片的介面,兩個選項請勾起來。 之後再回到原來的地方: 選擇 [傳統型應用程式] 後,我們便可按下瀏覽,搜尋桌面上的捷徑或其他資料夾中你想設定的程式,點下確認後,我們可針對個別的應用程式來進行相關的設定。我以 Adobe Premiere Pro 2021 舉例:...
【Python基礎教學】基本資料型態(下)【part-4】
【Python基礎教學】基本資料型態(下)【part-4】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 接下來,讓我們進入正題。 上一次我們談到變數與基本資料型態的部分,今日我們就繼續來談剩下的部分與變數命名規則的部分。 變數命名規則 Python 與其他大部分的程式語言是差不多的,對於變數命名規則來說,接下來會列出以下幾種命名規則: 必須由英文字母、_(底線)或中文字開頭,建議使用英文字母(因為編碼上的問題)。 變數名稱只能由英文字母、數字、_(底線)或中文字所組成,底線開頭的變數會被特別處理,這個待說明。 英文字母大小寫是截然不同的變數。例如:Var跟var兩者被視為不同的變數名稱。 Python 系統保留字(或稱關鍵字)不可當作變數名稱,會讓程式產生錯誤,Python 內建函數名稱不建議當作變數名稱,因為會造成函數失效。 不過,Python 的關鍵字有哪些呢?我們可以使用函數 help(),然後打 h...
【Python基礎教學】變數&基本資料型態(上)【part-3】
【Python基礎教學】變數&基本資料型態(上)【part-3】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 接下來,讓我們進入正題。 上次我們介紹到 IDLE 開發環境的使用與教學,那麼我們學會使用工具後,接下來就來進一步的認識程式語言囉。 不過,在此之前,作者需要在此補充上次沒講到的部分:註解、副檔名的部分。 副檔名(Filename Extension) 副檔名是什麼? 副檔名(Filename Extension)或稱「延伸檔名」、「字尾名」或「文件擴展名」,若在中國則稱為「後綴名」或「擴展名」,這些都是副檔名的意思。 副檔名具有下列一些性質: 副檔名在主檔名的後面,以一個小逗點(半形)「.」分隔開來。 例如:「example.txt」的 txt 就是副檔名、example 為主檔名。 副檔名的作用是讓系統決定當使用者想打開這個檔案的時候,要用哪種軟體執行。 副檔名通常用來表示檔案類型 ...
【Python基礎教學】開發環境介紹&基礎程式設計【part-2】
【Python基礎教學】開發環境介紹&基礎程式設計【part-2】 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 接下來,讓我們進入正題。 上次簡短介紹了 Python、環境安裝,本次教學就來教各位如何使用 IDLE 環境及對於 Python 程式的一些基本認識。 print() 指令 學習程式語言的第一件事,當然就是在 terminal(終端)印出 Hello World 啦。print() 是個函數,也可稱其為函式、副程式,而括號內我們需要輸入字串值或是數值進去,而這個數值、字串值我們稱為引數(Argument)。 你聽起來似乎會感覺有點複雜。 我們可以做這樣的理解:我們可以把函數想像成像是一個自動販賣機,自動販賣機中有賣很多不同種類的飲料,而我們將數值、字串值輸入進去的動作,就像是在投幣口投幣的動作一樣,我們可以把它想成是在輸入引數。接下來,按下按鈕的同時,飲料從底下跑出來,我們稱其為輸出。 若你理解上...
【Python基礎教學】介紹及環境安裝【part-1】
【Python基礎教學】介紹及環境安裝【part-1】 (此篇為本人撰寫之第一篇文章,文章若有謬誤敬請見諒) 哈囉大家好,很感謝你點進本文章,我是一名高中生,是電腦社社團的社長,由於我並不是 Python 這方面非常精通的專家,所以若文章有些錯誤請見諒,也可向我指正錯誤。另外本文章的用意是作為電腦社社團的教材使用而編寫的。 接下來,讓我們進入正題。 Python 這門程式語言是近年來最為熱門的高階程式語言,其原因在於該語言對人類來說淺顯易懂,容易理解,通常是作為自學程式者的第一個選擇。Python直接英翻中的話其名為「蟒蛇」,所以人們都將他與蟒蛇的形象聯想在一起。 Python 是高階語言,也是直譯式語言。不過,問題來了,高階語言與直譯式語言是什麼? 名詞解釋:高階、低階、編譯式、直譯式? 高階語言 敘述性語言,簡單來說就是以人類所學的語法較為接近。 較容易編寫(Coding or Programming)及除錯(Debug) 對硬體的控制能力較差、效率也較差(記憶體用量會較大) 高階語言如:Python, java, perl 等 低階語言 較難閱讀、編寫與維護。...



