Python 數字

Python中的數字可以是三種類型:int 整數、float 浮點數和 complex 複數。 整數數字 整數數字使用 int 類別來表示。您可以使用數值字面值來定義整數: age = 8 您也可以使用 int() 建構函式來定義整數數字: age = int(8) 若要檢查變數是否為 int 類型,您可以使用 type() 全域函式: type(age) == int #True 浮點數數字 浮點數數字(分數)是 float 類型。您可以使用數值字面值來定義浮點數: fraction = 0.1 或使用 float() 建構函式: fraction = float(0.1) 若要檢查變數是否為 float 類型,您可以使用 type() 全域函式: type(fraction) == float #True 複數數字 複數數字是 complex 類型。 您可以使用數值字面值來定義複數: complexNumber = 2+3j 或使用 complex() 建構函式: complexNumber = complex(2, 3) 一旦有了複數數字,您可以獲取它的實數部分和虛數部分: complexNumber.real #2.0 complexNumber.imag #3.0 同樣,若要檢查變數是否為 complex 類型,您可以使用 type() 全域函式:...

Python 調試

調試(Debugging) 是你可以學習的最好的技能之一,因為它將幫助你解決許多困難的情況。 每一種語言都有它自己的調試器。Python 通過標準庫提供了 pdb。 你可以通過在代碼中添加一個斷點來進行調試: breakpoint() 如果需要,你還可以添加更多斷點。 當 Python 解釋器遇到代碼中的斷點時,它會停下來,並告訴你接下來將執行的指令是什麼。 然後,你可以做一些事情。 你可以輸入任何變量的名稱來檢查它的值。 你可以按下 n 進行當前函數中的下一行。如果代碼調用了其他函數,調試器不會進入這些函數,而是將它們視為“黑盒子”。 你可以按下 s 跳轉到當前函數中的下一行。如果下一行是函數,調試器會進入該函數,然後你可以逐步運行該函數的每個指令。 你可以按下 c 以正常執行程序,無需逐步執行。 你可以按下 q 來停止程序的執行。 調試對於評估指令的結果很有用,尤其在你有復雜的迭代或算法需要修復時,熟悉調試如何使用尤其好用。

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 變數的作用域

在你宣告一個變數時,該變數在程式的不同部分有不同的可見性,取決於你在哪個位置宣告變數。 如果你在任何函式之外宣告一個變數,該變數對於在宣告之後運行的任何程式碼都是可見的,包括函式內部: age = 8 def test(): print(age) print(age) # 8 test() # 8 我們稱之為全域變數。 如果你在函式內部定義一個變數,該變數是一個區域變數,它只在該函式內部可見。在函式外部,它是無法存取的: def test(): age = 8 print(age) test() # 8 print(age)

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('文件已創建')

python-modules

# Python模組 每個Python檔案都是一個模組。 您可以從其他檔案中導入模組,這是任何具有適度複雜度的程式的基礎,因為它促進了合理的組織和程式碼重用。 在典型的Python程式中,有一個檔案充當入口點。其他檔案是模組,它們公開了我們可以從其他檔案中呼叫的函數。 dog.py這個檔案包含以下程式碼: def bark(): print('WOF!') 我們可以使用import從其他檔案導入這個函數,一旦這樣做,我們就可以使用點符號法來引用這個函數,像這樣dog.bark(): import dog dog.bark() 或者,我們可以使用from .. import語法直接呼叫這個函數: from dog import bark bark() 第一種策略允許我們載入在檔案中定義的所有東西。 第二種策略讓我們選擇我們需要的東西。 這些模組是特定於您的程式的,導入取決於檔案在檔案系統中的位置。 假設您將dog.py放在lib子文件夾中。 在該文件夾中,您需要創建一個名為__init__.py的空檔案。這告訴Python這個文件夾包含模組。 現在你可以選擇從lib導入dog: from lib import dog dog.bark() 或者你可以從lib.dog引用dog模組特定的函數: from lib.dog import bark bark()

Python, 創建一個 TCP 伺服器

Python 標準庫提供了 socketserver 套件,我們可以使用它來創建一個 TCP 伺服器。 from socketserver import BaseRequestHandler, TCPServer class handler(BaseRequestHandler): def handle(self): while True: msg = self.request.recv(1024) if msg == b'quit\n': break self.request.send(b'Message received: ' + msg) with TCPServer(('', 8000), handler) as server: server.serve\_forever() 使用 Netcat 連接到這個伺服器,Netcat 是一個很方便的工具,非常適合用來測試 TCP 和 UDP 伺服器。它默認安裝在 Linux 和 macOS 上,在 nc 命令下可用: nc localhost 8000 連接到伺服器後,您可以通過輸入消息來向其發送任何消息。伺服器將回復一則確認收到消息的回應。 除非您輸入 quit,否則連接將關閉(但伺服器仍然運行,您可以再次連接)。

Python, 讀取文件的內容

要讀取文件的內容,首先需要使用 open() 全局函數打開它,該函數接受兩個參數:文件路徑和模式。 如果要進行讀取操作,可以使用 read(r)模式: filename = '/Users/flavio/test.txt' file = open(filename, 'r') #或者 file = open(filename, mode='r') 一旦打開文件,就可以使用 read() 方法將文件的整個內容讀取為一個字串: content = file.read() 也可以選擇逐行讀取內容: line = file.readline() 通常可以與迴圈結合使用,例如逐行讀取並將每行添加到列表中: filename = '/Users/flavio/test.txt' file = open(filename, 'r') while True: line = file.readline() if line == '': break print(line) 文件處理結束後,記得關閉文件: file.close()

Python,`with`語句

with語句在處理異常時非常有用。 例如,在使用文件時,每次打開文件後都要記得關閉。 with可以使這個過程變得透明。 不用寫下面的代碼了: filename = '/Users/flavio/test.txt' try: file = open(filename, 'r') content = file.read() print(content) finally: file.close() 你可以這樣寫代碼: filename = '/Users/flavio/test.txt' with open(filename, 'r') as file: content = file.read() print(content) 換句話說,我們內置了隱式的異常處理,因為close()會自動為我們調用。 with不僅僅是用於處理文件。上面的例子只是為了介紹它的功能。

Python,如何列出目錄中的文件和文件夾

要列出目錄中的文件,可以使用內置模組 os 提供的 listdir() 方法: import os dirname = '/users/Flavio/dev' files = os.listdir(dirname) print(files) 要獲取文件的完整路徑,可以使用 os.path.join() 方法將文件夾的路徑與文件名結合起來: import os dirname = '/users/Flavio/dev' files = os.listdir(dirname) temp = map(lambda name: os.path.join(dirname, name), files) print(list(temp)) 要僅列出文件或僅列出文件夾,可以使用 os.path.isfile() 和 os.path.isdir() 方法: import os dirname = '/users/Flavio/dev' dirfiles = os.listdir(dirname) fullpaths = map(lambda name: os.path.join(dirname, name), dirfiles) dirs = [] files = [] for file in fullpaths: if os.path.isdir(file): dirs.append(file) if os.path.isfile(file): files.append(file) print(list(dirs)) print(list(files))