程式語言入門學習網站
本站教材的設計目標是以程式設計的完全新手為主
我們的生活幾乎與工業密不可分,從日常用品到門鈴、電梯、路燈、指示牌等等 .... 等等,這全都是工業化的製品。工業,藉由機器早已取代了大量的人力,齒輪是很多機器裡的基本組成元件之一
大齒輪可以省力,小齒輪可以增加轉速,不同尺寸的齒輪相互巧妙的疊合,便可做出許許多多實用的機器來。利用齒輪的方式,我們需要了解齒輪間如何相互轉動的基本原理,也就是說,大小齒輪之間如何組合達到力矩平衡,齒輪的齒數、轉動的圈數、排列方式等等都得列入考量,這會是我們設計以齒輪為主要元件的機器前,所要先具備的知識。
早期的計算機也有利用齒輪製造的,不過當電子技術發展日新月異的今天,絕大多數的電腦都已經由電子線路所取代。電子線路的優點在於只需考慮有電壓及沒有電壓兩種情況,有電壓時,值趨近於 1 ,反倒沒有電壓時,其值趨近於 0 ,這樣一來,電子線路的思考變成 010101 .... 的方式,這便是數位化的由來。
0 與 1 構成二進位數字,就是說逢二就進位,以下為二進位數字與十進位數字對照表
十進位 | 二進位 | 十進位 | 二進位 | 十進位 | 二進位 | 十進位 | 二進位 |
---|---|---|---|---|---|---|---|
0 | 0 | 16 | 10000 | 32 | 100000 | 48 | 110000 |
1 | 1 | 17 | 10001 | 33 | 100001 | 49 | 110001 |
2 | 10 | 18 | 10010 | 34 | 100010 | 50 | 110010 |
3 | 11 | 19 | 10011 | 35 | 100011 | 51 | 110011 |
4 | 100 | 20 | 10100 | 36 | 100100 | 52 | 110100 |
5 | 101 | 21 | 10101 | 37 | 100101 | 53 | 110101 |
6 | 110 | 22 | 10110 | 38 | 100110 | 54 | 110110 |
7 | 111 | 23 | 10111 | 39 | 100111 | 55 | 110111 |
8 | 1000 | 24 | 11000 | 40 | 101000 | 56 | 111000 |
9 | 1001 | 25 | 11001 | 41 | 101001 | 57 | 111001 |
10 | 1010 | 26 | 11010 | 42 | 101010 | 58 | 111010 |
11 | 1011 | 27 | 11011 | 43 | 101011 | 59 | 111011 |
12 | 1100 | 28 | 11100 | 44 | 101100 | 60 | 111100 |
13 | 1101 | 29 | 11101 | 45 | 101101 | 61 | 111101 |
14 | 1110 | 30 | 11110 | 46 | 101110 | 62 | 111110 |
15 | 1111 | 31 | 11111 | 47 | 101111 | 63 | 111111 |
ASCII 則是利用七位元的二進位所組成的編碼系統,例如 1100001 表示十進位數字的 97 ,在 ASCII 中則表示英文小寫字母 a 。類似的方式,有許多不同需求的編碼系統衍生出來,如 Unicode 、 JPEG 、 MIDI 等。
電腦程式的主要工作就是處理編碼,不論把編碼形式儲存到檔案、傳送到輸出設備上,或是轉換成另一種編碼形式,這全都是電腦程式的功能。我們該如何寫程式呢?有許多不同的方法,最常見的就是準備好文字編輯器囉!
怎麼寫程式
程式語言與金庸小說中的絕世武功
C 比之九陰真經,學會並掌握指標,天下無敵。
C++ 比之龍象般若功,有十三層,但修煉不易,無人超過第十層。
C# 比之彈指神通,高手運用手指的巧勁就能施展。
Java 比之獨孤九劍,敗中變化出的招式,不限平台的 JVM 。
JavaScript 比之胡家刀法,六字訣變幻莫測,瀏覽器上都能運作。
Objective-C 比之六脈神劍,獨家不傳絕技。
Perl 比之龍爪手,少林正宗武學,幾乎 Linux 高手必備。
PHP 比之黯然銷魂掌,需要深厚內力才能使出。
Python 比之降龍十八掌,簡單卻威力強大。
Ruby 比之乾坤大挪移,這要用過了才會知道。
Swift 比之一陽指,六脈神劍的精髓,本來同樣是獨家不傳絕技,不過現在 open source 了。
程式語言自修指南
1. 弄清楚程式語言能做什麼事情,也就是先了解程式語言的用途,技術面來說就是開發項目,像是桌上型電腦應用軟體、手機應用程式、遊戲或架設網站等等。
2. 弄清楚怎麼樣才能稱作一個程式,例如 Java 的可執行程式要有個 main() 方法, Python 的程式檔案都稱作模組。
3. 弄清楚程式的結構,也就是搞懂每個關鍵字的用途,基本上來說這就是邏輯的部份。
4. 弄清楚型態是什麼,型態跟變數有什麼關係,型態跟函數或方法又有什麼關係。
5. 最後,弄清楚程式庫是什麼,程式庫有什麼方便的地方。
程式設計解題指南
1. 弄清楚輸入項目,以及輸入的方式,例如從命令列輸入或是從檔案、網頁或 GUI 輸入。
2. 弄清楚輸入的內容要用什麼資料結構儲存,例如 C 、 C++ 、 Java 等有陣列, Python 有串列等。
3. 弄清楚怎麼處理資料,是否需要計算,計算結果要儲存到哪裡。
4. 弄清輸出項目,也就是要輸出什麼,計算結果抑或某種演算法。
5. 弄清楚要怎麼輸出,以及輸出到什麼設備上,例如命令列、檔案、網頁或 GUI 等。
程式設計問問題指南
1. 請說明程式的目的,例如要做什麼事情或計算出什麼結果。
2. 請說明自己的努力,自己寫了什麼東西或想要怎麼寫。
3. 請說明直譯器或編譯器提供的錯誤訊息,或是程式跑出哪些不如預期的結果。
4. 請提供排版過的程式原始碼,盡可能將程式碼張貼在分享網站上。
程式語言教材
C 的開發環境
C 速查手冊
C++ 的開發環境
- 在 Visual Studio Code 安裝 Code Runner
- 在 Windows 中點擊兩下執行程式
- 在 Windows 11 中安裝 mingw-w64 及設定環境變數
- 安裝 Geany 及設定字型、配色方案
- 如何在 Geany 中編譯 C++11 等各種新 C++ 標準的程式
- 如何安裝 Qt
- 在 Qt Creator 中建立新 Qt Quick 專案
- Windows PowerShell 簡易教學
C++ 速查手冊
- 單元 1 - 基本概念
- 單元 2 - 標記
- 單元 3 - 基本內建型態
- 單元 4 - 運算式
- 4.1 - 算術運算
- 4.2 - 遞增、遞減運算
- 4.3 - 關係運算
- 4.4 - 邏輯運算
- 4.5 - 位元運算
- 4.6 - sizeof 運算
- 4.7 - typeid 運算
- 4.8 - alignof 運算
- 4.9 - 指派運算
- 4.10 - 條件運算
- 單元 5 - 控制結構
- 5.1 - if 陳述
- 5.2 - else 陳述
- 5.3 - switch 陳述
- 5.4 - for 陳述
- 5.5 - while 陳述
- 5.6 - do-while 陳述
- 5.7 - break 陳述
- 5.8 - continue 陳述
- 5.9 - goto 陳述
- 單元 6 - 例外處理
- 單元 7 - 複合資料型態
- 單元 8 - 函數
- 8.1 - 函數原型
- 8.2 - 指標參數
- 8.3 - 參考參數
- 8.4 - 預設參數
- 8.5 - 可變參數
- 8.6 - lambda 函數
- 8.7 - inline 函數
- 8.8 - 多載函數
- 8.9 - 函數指標
- 單元 9 - 類別
- 9.1 - 建構函數
- 9.2 - 初值串列
- 9.3 - explicit 指示詞
- 9.4 - private 成員
- 9.5 - protected 成員
- 9.6 - 存取函數與修改函數
- 9.7 - this 指標
- 9.8 - friend 成員
- 9.9 - static 成員
- 9.10 - static const 成員
- 9.11 - const 成員函數
- 9.12 - mutable 成員
- 9.13 - 巢狀類別
- 9.14 - Copy 建構函數
- 9.15 - 解構函數
- 9.16 - 多載運算子
- 9.17 - 繼承
- 9.18 - 多重繼承
- 9.19 - virtual 函數
- 9.20 - 虛擬繼承
- 單元 10 - 樣板
- 單元 11 - 命名空間
- 單元 12 - 型態轉換
- 單元 13 - 其他宣告內容
- 單元 14 - 前置處理器
- 單元 15 - 標準程式庫
C++ 入門指南 4.01
- 基礎篇
- 單元 1 - 認識 C++ 語言
- 單元 2 - 如何編譯與執行
- 單元 3 - 基本內建型態與物件
- 單元 4 - 指標與參考
- 單元 5 - 變數命名規則
- 單元 6 - 運算式與陳述
- 單元 7 - 選擇
- 單元 8 - 迴圈
- 單元 9 - 函數
- 單元 10 - 類別
- 單元 11 - 物件導向與封裝
- 單元 12 - 建構函數
- 單元 13 - 設計專屬的標頭檔
- 軟體開發篇
- 單元 14 - Encrypt 類別
- 單元 15 - 實作 set_code_array()
- 單元 16 - 繼續測試
- 單元 17 - 修正後的數學公式
- 單元 18 - 編碼
- 單元 19 - 解碼
- 單元 20 - 型態轉換問題
- 單元 21 - 前置處理
- 單元 22 - 重構
- 單元 23 - 認識標準程式庫
- 單元 24 - 認識第三方程式庫 - Qt
- GUI 篇
- 單元 25 - Qt Creator 使用簡介
- 單元 26 - MVC 模式與 QML
- 單元 27 - 使用 QML 設計視窗外觀
- 單元 28 - EncryptController 類別
- 單元 29 - 整合 Encrypt
- 單元 30 - QString 的問題
- 單元 31 - 完成版的 encrypt_gui
- 單元 32 - 下一步
- 範例程式篇
- encrypt.h
- encrypt.cxx
- encrypt_demo.cxx
- encrypt_refactor.h
- encrypt_refactor.cxx
- encrypt_refactor_demo.cxx
- encryptor_gui_demo/main.qml
- encryptor_demo/main.qml
- encryptcontroller.h
- encryptcontroller.cpp
- 附錄
C++ 專案開發入門的八堂課
- 第一堂課 認識 C++ 程式語言
- 第一堂課導覽 ⇨ YouTube 頁面連結
- C++ 與標準程式庫 ⇨ YouTube 頁面連結
- 建立 GCC 與 Geany 的開發環境 ⇨ YouTube 頁面連結
- C++ 程式的基本結構與第一個範例詳解 ⇨ YouTube 頁面連結
- 關鍵字、識別字、字面常數與運算子 ⇨ YouTube 頁面連結
- 第一堂課舉一反三 ⇨ YouTube 頁面連結
- 第二堂課 基本內建型態與命名習慣
- 第二堂課導覽 ⇨ YouTube 頁面連結
- 基本內建型態、參考與指標 ⇨ YouTube 頁面連結
- 識別字命名規則 ⇨ YouTube 頁面連結
- 命名習慣 ⇨ YouTube 頁面連結
- 第二堂課舉一反三 ⇨ YouTube 頁面連結
- 補充:整數、浮點數自動轉換規則 ⇨ YouTube 頁面連結
- 補充: signed 與 unsigned ⇨ YouTube 頁面連結
- 第三堂課 運算式、陳述與控制結構
- 第三堂課導覽 ⇨ YouTube 頁面連結
- 運算式與陳述 ⇨ YouTube 頁面連結
- 算術運算與遞增、遞減 ⇨ YouTube 頁面連結
- 關係與邏輯運算 ⇨ YouTube 頁面連結
- 位元運算 ⇨ YouTube 頁面連結
- sizeof 與 typeid ⇨ YouTube 頁面連結
- 條件運算 ⇨ YouTube 頁面連結
- 選擇 ⇨ YouTube 頁面連結
- 迴圈 ⇨ YouTube 頁面連結
- 例外處理 ⇨ YouTube 頁面連結
- 第三堂課舉一反三 ⇨ YouTube 頁面連結
- 第四堂課 複合資料型態、函數與前置處理器
- 第四堂課導覽 ⇨ YouTube 頁面連結
- 列舉 ⇨ YouTube 頁面連結
- 陣列 ⇨ YouTube 頁面連結
- 字串 ⇨ YouTube 頁面連結
- 結構 ⇨ YouTube 頁面連結
- 聯合 ⇨ YouTube 頁面連結
- 函數 ⇨ YouTube 頁面連結
- 函數樣板 ⇨ YouTube 頁面連結
- 無名函數 ⇨ YouTube 頁面連結
- inline 函數 ⇨ YouTube 頁面連結
- 前置處理器與巨集 ⇨ YouTube 頁面連結
- 第四堂課舉一反三 ⇨ YouTube 頁面連結
- 第五堂課 類別、物件導向程式設計、樣板、命名空間與標頭檔
- 第五堂課導覽 ⇨ YouTube 頁面連結
- 類別 ⇨ YouTube 頁面連結
- 封裝 ⇨ YouTube 頁面連結
- static 、 const 與 mutable 成員 ⇨ YouTube 頁面連結
- 巢狀類別 ⇨ YouTube 頁面連結
- Copy 建構函數 ⇨ YouTube 頁面連結
- 多載運算子 ⇨ YouTube 頁面連結
- 繼承 ⇨ YouTube 頁面連結
- 多型 ⇨ YouTube 頁面連結
- 類別樣板 ⇨ YouTube 頁面連結
- 命名空間 ⇨ YouTube 頁面連結
- 標頭檔與標準程式庫 ⇨ YouTube 頁面連結
- 第五堂課舉一反三 ⇨ YouTube 頁面連結
- 第六堂課 開發計算核心
- 第六堂課導覽 ⇨ YouTube 頁面連結
- Encrypt 類別的規格 ⇨ YouTube 頁面連結
- 第一次實作 setCode() 與繼續測試 ⇨ YouTube 頁面連結
- 修正數學公式 ⇨ YouTube 頁面連結
- 編碼與解碼 ⇨ YouTube 頁面連結
- 重構 ⇨ YouTube 頁面連結
- 猜數字遊戲的計算核心 ⇨ YouTube 頁面連結
- 第六堂課舉一反三 ⇨ YouTube 頁面連結
- 第七堂課 Qt 專案
- 第七堂課導覽 ⇨ YouTube 頁面連結
- 在 Windows 中安裝 Qt ⇨ YouTube 頁面連結
- 利用 Qt Creator 建立 Qt Quick 專案 ⇨ YouTube 頁面連結
- 利用 QML 設計介面與觸發按鈕方法 ⇨ YouTube 頁面連結
- 整合 Encrypt 類別 ⇨ YouTube 頁面連結
- 實作存檔、載入、拷貝與清除 ⇨ YouTube 頁面連結
- 猜數字遊戲的 Qt Quick 專案 ⇨ YouTube 頁面連結
- 第七堂課舉一反三 ⇨ YouTube 頁面連結
- 第八堂課 Android 專案
COBOL 教材目錄(施工中 🚧)
C# 開發工具
C# 入門指南
- 基礎篇
- 單元 1 - 認識 C# 語言
- 單元 2 - 在 Visual Studio Code 建立 C# 的 .NET 專案與執行
- 單元 3 - 實值型態與參考
- 單元 4 - 命名規則與習慣
- 單元 5 - 陳述與運算式
- 單元 6 - 選擇
- 單元 7 - 迴圈
- 單元 8 - 陣列與字串
- 單元 9 - 列舉與結構
- 單元 10 - 類別
- 單元 11 - 建構子與屬性
- 單元 12 - 物件導向程式設計
- 單元 13 - 介面、命名空間與 using
- 軟體開發篇
- 單元 14 - Encrypt 類別
- 單元 15 - 實作 SetCode()
- 單元 16 - 繼續測試
- 單元 17 - 修正後的數學公式
- 單元 18 - 編碼
- 單元 19 - 解碼
- 單元 20 - 程式結構與重構
- 單元 21 - 認識 Visual Studio Community 2019
- WPF App 篇
- 單元 22 - 建立 WPF 專案
- 單元 23 - 設計介面
- 單元 24 - 觸發按鈕方法
- 單元 25 - 整合 Encrypt 類別
- 單元 26 - 存檔與載入
- 單元 27 - 完成版的 WpfAppDemo 專案
- 單元 28 - 認識 Android App 開發
- Android App 篇
- 單元 29 - 建立 Android App 專案
- 單元 30 - 首頁
- 單元 31 - 換頁
- 單元 32 - 整合功能
- 單元 33 - 自訂 App 圖示與實機測試
- 單元 34 - 封存與散發
- 單元 35 - 下一步
- 範例程式篇
- 📁EncryptNamspace 專案
- 📁WPF 專案
- 📁AndroidAppDemo 專案
C# 專案開發入門的八堂課
- 第一堂課 認識 C# 程式語言
- 第一堂課導覽 ⇨ YouTube 頁面連結
- C# 與 .NET ⇨ YouTube 頁面連結
- 利用 Visual Studio Code 建立 C# 專案 ⇨ YouTube 頁面連結
- C# 程式的基本結構 ⇨ YouTube 頁面連結
- 關鍵字、識別字、字面常數與運算子 ⇨ YouTube 頁面連結
- 第一堂課舉一反三 ⇨ YouTube 頁面連結
- 第二堂課 資料型態與命名習慣
- 第二堂課導覽 ⇨ YouTube 頁面連結
- 實質型態與參考 ⇨ YouTube 頁面連結
- 識別字命名規則 ⇨ YouTube 頁面連結
- 命名習慣 ⇨ YouTube 頁面連結
- 第二堂課舉一反三 ⇨ YouTube 頁面連結
- 第三堂課 運算式、陳述與控制結構
- 第三堂課導覽 ⇨ YouTube 頁面連結
- 陳述與運算式 ⇨ YouTube 頁面連結
- 選擇 ⇨ YouTube 頁面連結
- 迴圈 ⇨ YouTube 頁面連結
- 第三堂課舉一反三 ⇨ YouTube 頁面連結
- 第四堂課 陣列、字串、列舉與結構
- 第四堂課導覽 ⇨ YouTube 頁面連結
- 陣列 ⇨ YouTube 頁面連結
- 字串 ⇨ YouTube 頁面連結
- 列舉 ⇨ YouTube 頁面連結
- 結構 ⇨ YouTube 頁面連結
- 第四堂課舉一反三 ⇨ YouTube 頁面連結
- 第五堂課 類別與物件導向程式設計
- 第五堂課導覽 ⇨ YouTube 頁面連結
- 類別 ⇨ YouTube 頁面連結
- 建構子與屬性 ⇨ YouTube 頁面連結
- 繼承與多型 ⇨ YouTube 頁面連結
- 介面、命名空間與 using ⇨ YouTube 頁面連結
- 第五堂課舉一反三 ⇨ YouTube 頁面連結
- 第六堂課 開發計算核心
- 第六堂課導覽 ⇨ YouTube 頁面連結
- Encrypt 類別的規格 ⇨ YouTube 頁面連結
- 第一次實作 SetCode() 與繼續測試 ⇨ YouTube 頁面連結
- 修正數學公式 ⇨ YouTube 頁面連結
- 編碼與解碼 ⇨ YouTube 頁面連結
- 重構 ⇨ YouTube 頁面連結
- 猜數字遊戲的計算核心 ⇨ YouTube 頁面連結
- 第六堂課舉一反三 ⇨ YouTube 頁面連結
- 第七堂課 WPF 專案
- 第七堂課導覽 ⇨ YouTube 頁面連結
- 利用 Visual Studio Community 2019 建立 WPF 專案 ⇨ YouTube 頁面連結
- 設計介面與觸發按鈕方法 ⇨ YouTube 頁面連結
- 整合 Encrypt 類別 ⇨ YouTube 頁面連結
- 實作存檔、載入、拷貝與清除 ⇨ YouTube 頁面連結
- 猜數字遊戲的 WPF 專案 ⇨ YouTube 頁面連結
- 第七堂課舉一反三 ⇨ YouTube 頁面連結
- 第八堂課 Android 專案
Dart 教材目錄(施工中 🚧)
Fortran 教材目錄(施工中 🚧)
Go 教材目錄(施工中 🚧)
Java 的開發環境
- JDK 8u111 with NetBeans 8.2
- Download Android Studio and SDK tools | Android Developers
- 如何在命令列編譯執行 Java 程式
- 如何建立 Android 的模擬器
Java 入門指南
- 基礎篇
- 軟體開發篇
- JavaFX App 篇
- Android App 篇
- 範例程式篇
- 📁Encrypt06 專案
- 📁Encrypt 專案
- 📁JavaFX 專案
- 📁AndroidAppDemo 專案
Java 專案開發入門的八堂課
- 第一堂課 認識 Java 程式語言
- 第一堂課導覽 ⇨ YouTube 頁面連結
- Java 與 Java API ⇨ YouTube 頁面連結
- 利用 IntelliJ IDEA CE 建立 Java 專案 ⇨ YouTube 頁面連結
- Java 程式的基本結構 ⇨ YouTube 頁面連結
- 關鍵字、識別字、字面常數與運算子 ⇨ YouTube 頁面連結
- 第一堂課舉一反三 ⇨ YouTube 頁面連結
- 第二堂課 基本資料型態與命名習慣
- 第二堂課導覽 ⇨ YouTube 頁面連結
- 基本資料型態與參考 ⇨ YouTube 頁面連結
- 識別字命名規則 ⇨ YouTube 頁面連結
- 命名習慣 ⇨ YouTube 頁面連結
- 第二堂課舉一反三 ⇨ YouTube 頁面連結
- 第三堂課 運算式、陳述與控制結構
- 第三堂課導覽 ⇨ YouTube 頁面連結
- 陳述與運算式 ⇨ YouTube 頁面連結
- 選擇 ⇨ YouTube 頁面連結
- 迴圈 ⇨ YouTube 頁面連結
- 例外處理 ⇨ YouTube 頁面連結
- 第三堂課舉一反三 ⇨ YouTube 頁面連結
- 第四堂課 陣列、字串、列舉與 ArrayList
- 第四堂課導覽 ⇨ YouTube 頁面連結
- 陣列 ⇨ YouTube 頁面連結
- 字串 ⇨ YouTube 頁面連結
- 列舉 ⇨ YouTube 頁面連結
- ArrayList ⇨ YouTube 頁面連結
- 第四堂課舉一反三 ⇨ YouTube 頁面連結
- 第五堂課 類別與物件導向程式設計
- 第五堂課導覽 ⇨ YouTube 頁面連結
- 類別 ⇨ YouTube 頁面連結
- 建構子、多載與封裝 ⇨ YouTube 頁面連結
- 繼承、改寫與多型 ⇨ YouTube 頁面連結
- 介面與套件 ⇨ YouTube 頁面連結
- 存取層級 ⇨ YouTube 頁面連結
- static ⇨ YouTube 頁面連結
- 第五堂課舉一反三 ⇨ YouTube 頁面連結
- 第六堂課 開發計算核心
- 第六堂課導覽 ⇨ YouTube 頁面連結
- Encrypt 類別的規格 ⇨ YouTube 頁面連結
- 第一次實作 SetCode() 與繼續測試 ⇨ YouTube 頁面連結
- 修正數學公式 ⇨ YouTube 頁面連結
- 編碼與解碼 ⇨ YouTube 頁面連結
- 重構 ⇨ YouTube 頁面連結
- 猜數字遊戲的計算核心 ⇨ YouTube 頁面連結
- 第六堂課舉一反三 ⇨ YouTube 頁面連結
- 第七堂課 JavaFX 專案
- 第七堂課導覽 ⇨ YouTube 頁面連結
- 利用 IntelliJ IDEA CE 建立 JavaFX 專案 ⇨ YouTube 頁面連結
- 設計介面與觸發按鈕方法 ⇨ YouTube 頁面連結
- 整合 Encrypt 類別 ⇨ YouTube 頁面連結
- 實作存檔、載入、拷貝與清除 ⇨ YouTube 頁面連結
- 猜數字遊戲的 JavaFX 專案 ⇨ YouTube 頁面連結
- 第七堂課舉一反三 ⇨ YouTube 頁面連結
- 第八堂課 Android 專案
JavaScript 教材目錄(施工中 🚧)
Kotlin 教材目錄(施工中 🚧)
Lua 教材目錄(施工中 🚧)
Pascal 教材目錄(施工中 🚧)
Perl 教材目錄(施工中 🚧)
PHP 教材目錄(施工中 🚧)
Powershell 教材目錄(施工中 🚧)
Python 的開發環境
- 寫 Python 程式的工具
- 如何安裝 Python
- 如何設定 MS-Windows 系統的 Python 的命令列路徑
- 利用 Visual Studio Code 寫 Python 程式
- 在 MS-Windows 快速點兩下執行 Python 程式
- 如何建立 Python 的模擬環境
- 程式語言初學者利器 - IDLE(Integrated Development and Learning Environment)
- 程式語言初學者利器 - Thonny
Python 速查手冊
- 單元 1 - 基本概念
- 單元 2 - 基本內建型態
- 單元 3 - 運算子與運算式
- 3.1 算術運算
- 3.2 位元運算
- 3.3 比較運算
- 3.4 指派運算
- 3.5 邏輯運算
- 3.6 del 運算
- 3.7 is 運算
- 3.8 in 運算
- 3.9 lambda 運算
- 3.10 yield 運算
- 3.11 串列的綜合運算
- 單元 4 - 陳述
- 4.1 簡單陳述 assert
- 4.2 簡單陳述 pass
- 4.3 簡單陳述 return
- 4.4 簡單陳述 raise
- 4.5 簡單陳述 break
- 4.6 簡單陳述 continue
- 4.7 簡單陳述 import from as
- 4.8 簡單陳述 global
- 4.9 簡單陳述 nonlocal
- 4.10 複合陳述 if elif else
- 4.11 複合陳述 for in else
- 4.12 複合陳述 while else
- 4.13 複合陳述 try except finally else
- 4.14 複合陳述 with as
- 單元 5 - 函數
- 單元 6 - 類別
- 6.1 __init__()
- 6.2 __str__()
- 6.3 __doc__
- 6.4 類別屬性與實體屬性
- 6.5 static 方法與類別方法
- 6.6 封裝
- 6.7 繼承
- 6.8 子類別的方法改寫
- 6.9 多重繼承
- 6.10 多型
- 6.11 __del__()
- 6.12 迭代器
- 6.13 物件模型
- 單元 7 - 模組與 __name__
- 單元 8 - 套件與組織程式庫
- 單元 9 - 內建函數
- 9.1 型態相關
- 9.2 串列排序
- 9.3 字串相關
- 9.4 迭代器相關
- 9.5 裝飾子相關
- 9.6 執行相關
- 9.7 作用域相關
- 9.8 屬性相關
- 9.9 數字處理
- 9.10 檔案處理
- 9.11 基本輸入輸出
- 9.12 內建說明
- 9.13 物件相關
- 單元 10 - 內建型態
- 10.1 串列 list
- 10.2 序對 tuple
- 10.3 range
- 10.4 字串 str
- 10.5 集合 set
- 10.6 frozenset
- 10.7 字典 dict
- 10.8 其他內建型態
- 單元 11 - 內建例外
- 單元 12 - 標準程式庫導覽
Python 入門指南
- 基礎學習篇
- 單元 1 - 認識 Python 語言
- 單元 2 - 如何執行 Python 程式
- 單元 3 - 資料型態與變數
- 單元 4 - 變數命名規則與縮排
- 單元 5 - 運算式與陳述
- 單元 6 - 選擇
- 單元 7 - 迴圈
- 單元 8 - 例外處理
- 單元 9 - 序列、字典與集合
- 單元 10 - 函數
- 單元 11 - 進一步講指派與相等運算
- 單元 12 - 類別
- 單元 13 - 資料類別、 __init__() 方法與封裝
- 單元 14 - 資料模型、特別屬性與迭代器
- 單元 15 - 繼承與多型
- 單元 16 - 靜態方法與抽象方法
- 單元 17 - 型態標記與檢查資料型態
- 單元 18 - 模組與套件
- 單元 19 - 作用域問題
- 單元 20 - 文件字串
- 單元 21 - 非同步程式設計與認識標準程式庫
- 軟體開發篇
- 單元 22 - Encrypt 類別
- 單元 23 - 實作 setcode()
- 單元 24 - 繼續測試
- 單元 25 - 修正後的數學公式
- 單元 26 - 編碼
- 單元 27 - 解碼
- 單元 28 - 重構
- 單元 29 - 認識 Tk
- GUI 篇
- 單元 30 - GUI 的基本概念與 MVC 模式
- 單元 31 - Tk 的視窗元件與 V 的部分
- 單元 32 - 視窗元件的排版及樣式主題
- 單元 33 - C 的部分與設定 command
- 單元 34 - 整合 Encrypt 類別
- 單元 35 - 存檔與載入
- 單元 36 - 完成版的 EncryptController
- 單元 37 - 認識第三方程式庫與 Brython
- Brython 篇
- 單元 38 - 網頁設計的基本概念
- 單元 39 - HTML 5 元素導覽
- 單元 40 - CSS 3 規則簡介
- 單元 41 - Brython 與 JavaScript
- 單元 42 - 啟動伺服器與加入 encrypt.py
- 單元 43 - 存檔問題
- 單元 44 - 完成版的 controller.py
- 單元 45 - 下一步
- 範例程式篇
- Python 入門指南 5.0 - 範例及練習演示
舊版 Python 入門指南目錄
Python 專案開發入門的十堂課
- 第一堂課 認識數位化程式設計與 Python
- 第一堂課導覽 ⇨ YouTube 頁面連結
- 電腦語言與 Python ⇨ YouTube 頁面連結
- 在 Windows 中下載安裝 Python 直譯器 ⇨ YouTube 頁面連結
- 在 Windows 中寫 Python 程式 ⇨ YouTube 頁面連結
- 在 Mac 下載安裝 Python 直譯器 ⇨ YouTube 頁面連結
- 在 Mac 中寫 Python 程式 ⇨ YouTube 頁面連結
- Python 程式概觀與縮排 ⇨ YouTube 頁面連結
- Python 的關鍵字與識別字 ⇨ YouTube 頁面連結
- Python 的運算子與特殊符號 ⇨ YouTube 頁面連結
- Python 的字面常數與文件字串 ⇨ YouTube 頁面連結
- Python 的標準程式庫與第三方程式庫 ⇨ YouTube 頁面連結
- 第一堂課舉一反三 ⇨ YouTube 頁面連結
- 第二堂 利用 Python 處理資料
- 第二堂課導覽 ⇨ YouTube 頁面連結
- Python 的資料型態、變數與物件 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 真假值 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 整數 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 浮點數 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 複數 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 迭代器與產生器 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 字串與跳脫序列 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 串列 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 序對 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - range ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 位元組與位元組陣列 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 字典 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 集合 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 資源管理器 ⇨ YouTube 頁面連結
- Python 的內建資料型態 - 其他與例外 ⇨ YouTube 頁面連結
- Python 的內建型態轉換規則 ⇨ YouTube 頁面連結
- Python 的物件模型 ⇨ YouTube 頁面連結
- 第二堂課舉一反三 ⇨ YouTube 頁面連結
- 第三堂 利用 Python 進行計算
- 第三堂課導覽 ⇨ YouTube 頁面連結
- Python 的運算子與運算式 ⇨ YouTube 頁面連結
- Python 的邏輯運算子 ⇨ YouTube 頁面連結
- Python 的算術運算子 ⇨ YouTube 頁面連結
- Python 的位元運算子 ⇨ YouTube 頁面連結
- Python 的關係運算子 ⇨ YouTube 頁面連結
- Python 的指派運算子 ⇨ YouTube 頁面連結
- Python 的 del 運算子 ⇨ YouTube 頁面連結
- Python 的 is 運算子 ⇨ YouTube 頁面連結
- Python 的 in 運算子 ⇨ YouTube 頁面連結
- Python 的 lambda 運算子 ⇨ YouTube 頁面連結
- Python 的 yield 運算子 ⇨ YouTube 頁面連結
- Python 的反斜線、逗號與分號 ⇨ YouTube 頁面連結
- Python 的引號、井字號與不使用的符號 ⇨ YouTube 頁面連結
- 第三堂課舉一反三 ⇨ YouTube 頁面連結
- 第四堂 利用 Python 寫結構化控制的程式
- 第四堂課導覽 ⇨ YouTube 頁面連結
- Python 的陳述種類 ⇨ YouTube 頁面連結
- Python 的簡單陳述 assert ⇨ YouTube 頁面連結
- Python 的簡單陳述 pass ⇨ YouTube 頁面連結
- Python 的簡單陳述 return ⇨ YouTube 頁面連結
- Python 的簡單陳述 raise ⇨ YouTube 頁面連結
- Python 的簡單陳述 break ⇨ YouTube 頁面連結
- Python 的簡單陳述 continue ⇨ YouTube 頁面連結
- Python 的簡單陳述 from import as ⇨ YouTube 頁面連結
- Python 的簡單陳述 global ⇨ YouTube 頁面連結
- Python 的簡單陳述 nonlocal ⇨ YouTube 頁面連結
- Python 的複合陳述 if elif else ⇨ YouTube 頁面連結
- Python 的複合陳述 while ⇨ YouTube 頁面連結
- Python 的複合陳述 for in ⇨ YouTube 頁面連結
- Python 的複合陳述 try except finally ⇨ YouTube 頁面連結
- Python 的複合陳述 with as ⇨ YouTube 頁面連結
- 第四堂課舉一反三 ⇨ YouTube 頁面連結
- 第五堂 利用 Python 模組化與物件導向
- 第五堂課導覽 ⇨ YouTube 頁面連結
- Python 的內建函數與自訂函數 ⇨ YouTube 頁面連結
- Python 函數的關鍵字引數 ⇨ YouTube 頁面連結
- Python 函數的預設引數 ⇨ YouTube 頁面連結
- Python 函數的函數參數 ⇨ YouTube 頁面連結
- Python 函數的不限個數參數 ⇨ YouTube 頁面連結
- Python 函數的回傳值 ⇨ YouTube 頁面連結
- Python 中參數與引數的不同 ⇨ YouTube 頁面連結
- Python 的協程函數 ⇨ YouTube 頁面連結
- Python 的裝飾子 ⇨ YouTube 頁面連結
- Python 的內建型態與自訂類別 ⇨ YouTube 頁面連結
- Python 類別的實體屬性與實體方法 ⇨ YouTube 頁面連結
- Python 類別的類別屬性與類別方法 ⇨ YouTube 頁面連結
- Python 類別的解構子 ⇨ YouTube 頁面連結
- Python 類別的 static 方法 ⇨ YouTube 頁面連結
- Python 物件導向中的封裝 ⇨ YouTube 頁面連結
- Python 物件導向中的繼承 ⇨ YouTube 頁面連結
- Python 物件導向中的多型 ⇨ YouTube 頁面連結
- Python 的模組 ⇨ YouTube 頁面連結
- Python 的套件 ⇨ YouTube 頁面連結
- 第五堂課舉一反三 ⇨ YouTube 頁面連結
- 第六堂 利用 Python 進行軟體開發
- 第六堂課導覽 ⇨ YouTube 頁面連結
- 什麼是軟體規格與專案開發? ⇨ YouTube 頁面連結
- 什麼是軟體的生命週期? ⇨ YouTube 頁面連結
- 錯誤的種類 ⇨ YouTube 頁面連結
- 利用 Python 開發 Encrypt 類別 ⇨ YouTube 頁面連結
- 實作、測試、除錯及修改 ⇨ YouTube 頁面連結
- 繼續實作編碼及解碼 ⇨ YouTube 頁面連結
- 重構 Encrypt 類別 ⇨ YouTube 頁面連結
- 第六堂課舉一反三 ⇨ YouTube 頁面連結
- 第七堂 利用 Python 標準程式庫開發程式
- 第七堂課導覽 ⇨ YouTube 頁面連結
- Python 標準程式庫的正規運算式 re ⇨ YouTube 頁面連結
- Python 標準程式庫的基本檔案與目錄處理 os ⇨ YouTube 頁面連結
- 認識 SQL 語法 ⇨ YouTube 頁面連結
- Python 標準程式庫的資料庫 sqlite3 ⇨ YouTube 頁面連結
- Python 標準程式庫的發展工具 2to3 ⇨ YouTube 頁面連結
- Python 標準程式庫的發展工具 pydoc ⇨ YouTube 頁面連結
- Python 標準程式庫的發展工具 unittest ⇨ YouTube 頁面連結
- Python 標準程式庫的 圖形介面 Tk - tkinter ⇨ YouTube 頁面連結
- 第七堂課舉一反三 ⇨ YouTube 頁面連結
- 第八堂 利用 Python 的 tkinter 開發 GUI
- 第八堂課導覽 ⇨ YouTube 頁面連結
- 什麼是 MVC 模式? ⇨ YouTube 頁面連結
- 製作 Tk 應用程式的基本步驟 ⇨ YouTube 頁面連結
- Tk 的三種版面管理員 ⇨ YouTube 頁面連結
- Tk 的各種視窗元件 ⇨ YouTube 頁面連結
- 用類別設計 Tk 應用程式的步驟 ⇨ YouTube 頁面連結
- EncryptView 與 EncryptController ⇨ YouTube 頁面連結
- 整合 Encrypt 類別與實作其他功能 ⇨ YouTube 頁面連結
- 第八堂課舉一反三 ⇨ YouTube 頁面連結
- 第九堂 利用 Python 開發各種項目
- 第九堂課導覽 ⇨ YouTube 頁面連結
- 什麼是第三方程式庫? ⇨ YouTube 頁面連結
- PyPI 及基本安裝指令 ⇨ YouTube 頁面連結
- 網路爬蟲程式庫 BeautifulSoup4 ⇨ YouTube 頁面連結
- 資料科學程式庫 Pandas 、 NumPy 及 Matplotlib ⇨ YouTube 頁面連結
- 2D 遊戲介面 Pygame ⇨ YouTube 頁面連結
- 3D 遊戲介面 Panda3D ⇨ YouTube 頁面連結
- 圖形介面程式庫 PyQt5 ⇨ YouTube 頁面連結
- 打包成 Windows 執行檔 ⇨ YouTube 頁面連結
- 第九堂課舉一反三 ⇨ YouTube 頁面連結
- 第十堂 利用 Python 與 Django 開發網站
- 第十堂課導覽 ⇨ YouTube 頁面連結
- Django 的設計哲學與建立 Django 的開發環境 ⇨ YouTube 頁面連結
- 建立 Django 專案與內建伺服器 ⇨ YouTube 頁面連結
- Django 的基本運作模式與建立網站首頁 ⇨ YouTube 頁面連結
- 用 Django 建立 App ⇨ YouTube 頁面連結
- 認識 HTML 文件的基本概念與架構 ⇨ YouTube 頁面連結
- 認識 CSS 規則及盒子模式 ⇨ YouTube 頁面連結
- 製作 Django 網站的樣板 ⇨ YouTube 頁面連結
- Django 網站的客製化後台 ⇨ YouTube 頁面連結
- 第十堂課舉一反三 ⇨ YouTube 頁面連結
Python 開源遊戲
- 開放原始碼的 2D 跑酷遊戲 - 超級企鵝 SuperTux ⇨ YouTube 頁面連結
- 開放原始碼的即時戰略遊戲 - 0 A.D. ⇨ YouTube 頁面連結
- 開放原始碼的賽車遊戲 - SuperTuxKart ⇨ YouTube 頁面連結
- 開放原始碼的即時戰略射擊遊戲 - Unvanquished ⇨ YouTube 頁面連結
- 開放原始碼的大型多人線上角色扮演遊戲 - Ryzom ⇨ YouTube 頁面連結
- 開放原始碼的 3D 捲軸射擊遊戲 - AstroMenace ⇨ YouTube 頁面連結
- 開放原始碼的 Python 小遊戲 - Free Python Games ⇨ YouTube 頁面連結
- 開放原始碼的 Python 牌類遊戲 - PySol ⇨ YouTube 頁面連結
- 開放原始碼的 Python 棋類遊戲 - PyChess ⇨ YouTube 頁面連結
- 開放原始碼的 Pygame 益智遊戲 - SolarWolf ⇨ YouTube 頁面連結
- 開放原始碼的 Panda3D 射擊遊戲 - A3P ⇨ YouTube 頁面連結
- PyWeek: Hobot's Ascent ⇨ YouTube 頁面連結
R 教材目錄(施工中 🚧)
Ruby 教材目錄(施工中 🚧)
Swift 教材目錄(施工中 🚧)
Zsh 教材目錄(施工中 🚧)
程式語言初學者利器
Python - IDLE(Integrated Development and Learning Environment)
標記語言教材
遊戲
免費遊戲
- 免費學習寫 Swift 程式的遊戲 - Swift Playgrounds (macOS, iPadOS) ⇨ YouTube
- 免費學習寫 Scratch 程式的遊戲 - Scratch Desktop ⇨ YouTube
- 免費線上學習電腦科學及程式設計的網站 - Code.org ⇨ YouTube
- 免費線上學習 Python 、 JavaScript 或 CoffeeScript 程式設計的網站 - CodeCombat ⇨ YouTube
- 免費線上學習 Python 或 TypeScript 程式設計的網站 - CheckiO ⇨ YouTube
- 免費線上練習 JavaScript 的網站 - Elevator Saga ⇨ YouTube
- 免費學習程式設計基礎概念的 Google 遊戲專案 - Blockly ⇨ YouTube
- 練習 Scratch 、 Python 或 JavaScript 的微軟網站 - MakeCode ⇨ YouTube
付費遊戲
Nvidia Jetson Nano 與 JetBot
術語
語法高亮度