Python 布林值

Python 提供了 bool 型別,它可以有兩個值:True 和 False(大小寫有別)。 done = False done = True 布林值在條件控制結構(如 if 語句)中尤其有用: done = True if done: # 在這裡運行一些程式碼 else: # 在這裡運行一些其他程式碼 在評估一個值是 True 還是 False 時,如果該值不是布林值,我們有一些規則,取決於我們要檢查的型別: 數字除了數字 0 外,都是 True 空字串是 False 列表、元組、集合、字典只有在空的時候才是 False 你可以這樣檢查一個值是否為布林值: done = True type(done) == bool #True 或者使用 isinstance() 函數,傳入兩個參數:變數和 bool 類: done = True isinstance(done, bool) #True 全局函數 any() 在處理布林值時也非常有用,它在傳入的可迭代物(例如列表)中的任何值為 True 時返回 True: book_1_read = True book_2_read = False read_any_book = any([book_1_read, book_2_read]) 全局函數 all() 類似,但它只有在傳入的所有值都為 True 時返回 True:...

Python 循環

循環是程式設計中一個重要的部分。 在 Python 中,我們有兩種類型的循環:while 循環和 for 循環。 while 循環 使用 while 關鍵字定義 while 循環,直到條件求值為 False,它會重複執行其區塊: condition = True while condition == True: print("條件為 True") 這是一個無窮循環,它永遠不會結束。 讓我們在第一次迭代後停止循環: condition = True while condition == True: print("條件為 True") condition = False print("循環結束後") 在這個案例中,第一次迭代運行,因為條件測試求值為 True,第二次迭代時條件測試求值為 False,所以控制權轉移到循環後的下一條指令。 通常會有一個計數器,在某些循環之後停止迭代一定次數: count = 0 while count < 10: print("條件為 True") count = count + 1 print("循環結束後") for 循環 使用 for 循環,我們可以告訴 Python 在預先決定的次數內執行一個區塊,而無需使用獨立的變數和條件來檢查其值。 例如,我們可以迭代列表中的項目: items = [1, 2, 3, 4] for item in items: print(item) 或者,您可以使用 range() 函數迭代指定的次數:...

Python 控制語句

使用布林值和返回布林值的表達式,我們可以根據它們的 True 或 False 值來做出決策並選擇不同的路徑。 在 Python 中,我們可以使用 if 語句來實現這一點: condition = True if condition == True: # 執行某些操作 當條件測試結果為 True 時,像上面的例子一樣,它的代碼塊就會被執行。 什麼是代碼塊?代碼塊是縮進了一級(通常是4個空格)的程式碼塊類型: condition = True if condition == True: print("這個條件") print("是真的") 代碼塊可以由單行或多行代碼構成,並且在回到先前縮進級別時結束: condition = True if condition == True: print("這個條件") print("是真的") print("if 語句之外") 結合 if 語句,還可以使用 else 代碼塊,在條件測試結果為 False 時執行: condition = True if condition == True: print("這個條件") print("是真的") else: print("這個條件") print("是假的") 你還可以使用 elif 搭配不同的連接 if 條件來進行多重檢測,如果前一個檢測為 False 時執行:...

Python 簡介

Python 程式語言介紹系列 Python 正在吞噬著整個程式設計世界。它正以一種史無前例的方式在流行度和使用上不斷成長。 Python 在各種場景中都表現出色,既能用於「Shell 腳本」、「任務自動化」,也適用於「網頁開發」等基本應用。 Python 是「數據分析」和「機器學習」的首選程式語言,同時也能用於遊戲開發和嵌入式設備工作。 更重要的是,它是世界各地大學入門的「計算機科學課程」中的首選程式語言。 許多學生將 Python 作為他們的第一個程式語言學習。許多人正在學習它,許多人將在未來學習它。對於他們中的許多人來說,Python 將是他們唯一需要的程式語言。 由於這種獨特的地位,Python 很可能在未來持續成長。 這種程式語言簡單易懂、表達力強,並且相當直觀。 Python 生態系統龐大。幾乎可以想像到的所有功能都已經有相應的庫。 Python 是一種高級程式語言,對於初學者來說非常適合,因為它有直觀的語法、龐大的社群和繁榮的生態系統。 它也受到來自不同領域的專業人士的青睞。 從技術上講,Python 是一種解釋性語言,不像 C 或 Java 等編譯語言有中間編譯階段。 像許多解釋性語言一樣,它是動態類型的,這意味著您不需要指示使用的變數類型,並且變數不會結合特定的類型。 這有優點和缺點。特別是,您可以更快地編寫程式,但另一方面,在預防可能的錯誤方面,工具的幫助較少,只有在運行時才能發現某些問題。 Python 支持各種不同的編程範式,包括過程式編程、物件導向編程和函數式編程。它靈活適應許多不同的需求。 Python 是由 Guido van Rossum 於 1991 年創建的,隨著時間的推移,它的受歡迎程度不斷上升,特別是在過去的五年中,正如 Google Trends 的資訊圖表所顯示的: 開始使用 Python 非常簡單。您只需要從 python.org 官方網站安裝官方套件,適用於 Windows、macOS 或 Linux,就可以開始了。 如果您是初學者,我將在接下來的文章中指導您從零開始成為 Python 程式設計師。 即使您目前是專門使用其他程式語言的開發人員,Python 也值得了解,因為我認為我們只是剛剛開始。 對於專業的程式設計師來說,低階語言(如 C++ 和 Rust)可能非常出色,但對於初學者來說可能有些難以入門,並且需要很長時間的學習。相反,Python 是一種編程語言,適用於程式設計師當然,也適用於非程式設計師,例如學生、使用 Excel 的人、科學家等等。 每個對編程感興趣的人應該首先學習的語言。 從這篇文章開始,我想開始一個專門介紹 Python 程式語言的系列。 開始吧。 在 macOS 上安裝 Python 運行 Python 程式 Python 2 vs Python 3 基本的 Python 使用方法 數據類型 運算符 字符串 布林值 處理數字 接受輸入 控制語句 列表 元組 字典 集合 函數 物件 迴圈 使用類定義新物件 模組 標準庫 除錯 變數作用域 從命令行接受參數 Lambda 函式 遞歸 巢狀函式 閉包 裝飾器 文檔字符串 內省 註解 列出目錄中的文件 獲取文件的詳細信息 異常處理 檢查文件或目錄是否存在 創建空文件 創建目錄 將內容寫入文件 讀取文件的內容 with 語句 創建網絡請求 創建 Web(HTTP)伺服器 創建 TCP 伺服器 安裝第三方套件 正則表達式 列表生成式 使用 Tkinter 進行 GUI 編程 多態 運算符重載 多執行緒簡介 map reduce filter …更多即將推出!

Python 虛擬環境

在您的系統上運行多個 Python 應用程序很常見。 當應用程序需要相同的模塊時,您可能會遇到一個棘手的情況,其中一個應用程序需要一個模塊的版本,而另一個應用程序需要該模塊的不同版本。 為了解決這個問題,您可以使用 虛擬環境。 我們將使用 venv,其他工具的運作方式類似,比如 pipenv。 使用以下命令在您要啟動項目的文件夾中創建一個虛擬環境: python -m venv .venv 或者在已經存在的項目所在的文件夾中運行該命令。 然後運行以下命令: source .venv/bin/activate 在 Fish shell 中,請使用 source .venv/bin/activate.fish 執行該程序將啟用 Python 虛擬環境。根據您的配置,您可能還會看到終端提示符發生變化。 我的提示符從 ➜ 文件夾 變成了 (.venv) ➜ 文件夾 現在運行 pip 將使用這個虛擬環境,而不是全局環境。

Python 裝飾器

裝飾器是一種改變、增強或以任何方式修改函數運作方式的方法。 使用裝飾器可以在函數定義之前使用@符號以及裝飾器名稱來定義裝飾器。 例如: @logtime def hello(): print('hello!') 這個 hello 函數有一個被指定為 logtime 的裝飾器。 每當我們呼叫 hello() 時,裝飾器會被呼叫。 裝飾器是一個接受函數作為參數的函數,它將函數包裝在一個執行特定任務的內部函數中,然後返回該內部函數。換句話說: def logtime(func): def wrapper(): # 在執行前做一些事情 val = func() # 在執行後做一些事情 return val return wrapper

Python 運算子

Python 運算子是我們用來對值和變數執行操作的符號。 我們可以根據它們執行的操作種類將運算子分為以下幾類: 指派運算子 算術運算子 比較運算子 邏輯運算子 位元運算子 還有一些有趣的運算子,比如 is 和 in。 指派運算子 指派運算子用於將值賦予一個變數: age = 8 或者將一個變數的值賦予另一個變數: age = 8 anotherVariable = age 自 Python 3.8 開始,:= 名為「齊肩大象運算子(walrus operator)」的運算子可以在另一個操作的一部分中將值賦予變數。例如,在 if 語句中或在循環的條件部分中使用。稍後將更詳細地談到。 算術運算子 Python 有許多算術運算子:+、-、*、/(除法)、%(取餘數)、**(幂運算)和 //(整數除法): 1 + 1 #2 2 - 1 #1 2 * 2 #4 4 / 2 #2 4 % 3 #1 4 ** 2 #16 4 // 2 #2 注意,操作數之間不需要空格,但為了可讀性,最好空一格。 - 也可以作為一元負號運算子使用: print(-4) #-4 + 也用於連接字符串值:...

Python 閉包

之前我們已經看過如何在 Python 中建立巢狀函式。 如果從函式中返回一個巢狀函式,那個巢狀函式可以訪問該函式中定義的變數,即使該函式已經不再活動。 以下是一個簡單的計數器範例。 def counter(): count = 0 def increment(): nonlocal count count = count + 1 return count return increment increment = counter() print(increment()) # 1 print(increment()) # 2 print(increment()) # 3 我們返回了 increment() 內部函式,而該函式仍然可以訪問到 count 變數的狀態,即使 counter() 函式已經結束。

Python 集合

集合是Python中另一個重要的資料結構。 我們可以說它們和元組(tuples)的運作方式相似,但它們並不是有序的,且它們是可變的。 或者我們可以說它們和字典(dictionaries)的運作方式相似,但它們沒有鍵(keys)。 它們還有一個不可變的版本,稱為frozenset。 你可以使用以下語法來建立一個集合: names = {"Roger", "Syd"} 當你把集合當作數學集合時,它們的運作效果很好。 你可以取兩個集合的交集: set1 = {"Roger", "Syd"} set2 = {"Roger"} intersect = set1 & set2 #{'Roger'} 你可以將兩個集合合併: set1 = {"Roger", "Syd"} set2 = {"Luna"} union = set1 | set2 #{'Syd', 'Luna', 'Roger'} 你可以獲取兩個集合之間的差異: set1 = {"Roger", "Syd"} set2 = {"Roger"} difference = set1 - set2 #{'Syd'} 你可以檢查一個集合是否為另一個集合的超集(當然也可以檢查一個集合是否為另一個集合的子集): set1 = {"Roger", "Syd"} set2 = {"Roger"} isSuperset = set1 > set2 # True 你可以使用len()全局函數計算集合中的項目數量:...

python-create-empty-file

#Python 如何創建一個空文件 要創建一個文件,請使用open()全局函數。 它接受兩個參數:文件路徑和模式。 你可以使用a作為模式,告訴Python以追加模式打開文件: file = '/Users/flavio/test.txt' open(file, 'a').close() #或者 open(file, mode='a').close() 如果文件已經存在,它的內容不會被修改。要清空文件的內容,請改用w標誌: open(file, 'w').close() #或者 open(file, mode='w').close() 在打開文件後,你必須記得在完成後關閉它。在這種情況下,我們立即關閉它,因為我們的目標是創建一個空文件。 請記得關閉文件,否則它將一直保持打開狀態,直到程序結束時才會自動關閉。 或者,你可以使用with: with open(file, mode='a'): pass 這將自動關閉文件。 創建文件可能會引發OSError異常,例如如果磁盤已滿,因此我們使用try塊來捕獲它並優雅地處理問題,通過打印錯誤消息: file = '/Users/flavio/test.txt' try: open(file, 'a').close() except OSError: print('創建文件失敗') else: print('文件已創建')