Python列表

列表是一种基本的Python数据结构。 它们允许您将多个值分组并使用一个常用名称引用它们。 例如: dogs = ["Roger", "Syd"] 列表可以保存不同类型的值: items = ["Roger", 1, "Syd", True] 您可以使用in运算符检查一个项是否包含在列表中: print("Roger" in items) # True 列表也可以定义为空: items = [] 您可以通过索引引用列表中的项,索引从零开始: items[0] # "Roger" items[1] # 1 items[3] # True 使用相同的表示法,您可以更改存储在特定索引处的值: items[0] = "Roger" 您还可以使用index()方法: items.index("Roger") # 0 items.index("Syd") # 2 与字符串一样,使用负索引将从末尾开始搜索: items[-1] # True 您还可以使用切片提取列表的一部分: items[0:2] # ["Roger", 1] items[2:] # ["Syd", True] 使用len()全局函数可以获得列表中包含的项数,与我们用于获取字符串长度相同: len(items) # 4 您可以使用列表的append()方法将项添加到列表中: items.append("Test") 或者使用extend()方法: items.extend(["Test"]) 您也可以使用+=运算符: items += ["Test"] 提示:使用extend()或+=时,请不要忘记方括号。不要写成items += "Test"或items....

Python如何檢查一個數字是奇數還是偶數

當一個數字除以2的餘數為0時,該數字是偶數。例如2、4、10、200,000。 奇數除以2的餘數為1,例如1、3、5、15。 你可以使用if條件語句來檢查一個數字是奇數還是偶數: num = 3 if (num % 2) == 0: print('偶數') else: print('奇數') 如果你有一個數字的數組,並且想要獲取其中的偶數或奇數,可以使用filter()函數結合lambda表達式: numbers = [1, 2, 3] even = filter(lambda n: n % 2 == 0, numbers) odd = filter(lambda n: n % 2 == 1, numbers) print(list(even)) # [2] print(list(odd)) # [1, 3]

Python字符串

Python中的字符串是一系列由引号或双引号括起来的字符: "Roger" 'Roger' 你可以将字符串值赋给一个变量: name = "Roger" 你可以使用+运算符连接两个字符串: phrase = "Roger" + " is a good dog" 你可以使用+=来追加字符串: name = "Roger" name += " is a good dog" print(name) # Roger is a good dog 你可以使用str类构造函数将数字转换为字符串: str(8) # "8" 这对于将数字连接到字符串中非常重要: print("Roger is " + str(8) + " years old") # Roger is 8 years old 当使用一组3个引号将字符串括起来时,字符串可以是多行的: print("""Roger is 8 years old """) print(''' Roger is 8 years old ''') 字符串有一组内置方法,例如:...

Python安裝第三方套件使用 `pip`

Python標準函式庫包含了大量的實用工具,可以滿足我們的大部分需求,但並不能滿足所有需求。 這就是為什麼有人和公司會創建套件,並將它們作為開源軟體提供給整個社群。 這些模組都被集中在一個地方,即 Python套件索引,可以在 https://pypi.org 上找到,並且可以使用 pip 安裝在你的系統上。 截至撰寫本文時,有超過 270,000 個套件可供免費使用。 如果你按照Python的安裝說明安裝過程中,你應該已經安裝了 pip。 使用以下命令安裝任何套件: pip install <套件名稱> 如果安裝過程有問題,你也可以通過以下命令執行安裝: python -m pip install <套件名稱> 例如,你可以安裝 requests 套件,這是一個流行的HTTP庫: pip install requests 安裝完成後,它將對所有的Python腳本可用,因為套件是全局安裝的。 具體位置取決於你的操作系統。 在macOS上,執行Python 3.9,位置為 /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages。 使用以下命令將套件升級到最新版本: pip install –U <套件名稱> 使用以下命令安裝特定版本的套件: pip install <套件名稱>==<版本號> 使用以下命令卸載套件: pip uninstall <套件名稱> 使用以下命令顯示已安裝套件的詳細資訊,包括版本、文檔網站和作者資訊: pip show <套件名稱>

Python例外處理

處理錯誤的方式非常重要。 Python提供了異常處理功能。 如果將一些代碼放在try:區塊中: try: # 一些代碼 如果發生錯誤,Python將會提示您,您可以使用except區塊來確定發生了哪種錯誤: try: # 一些代碼 except <錯誤1>: # <錯誤1>的處理方式 except <錯誤2>: # <錯誤2>的處理方式 如果要捕獲所有異常,您可以在except中使用任何錯誤類型: try: # 一些代碼 except <錯誤1>: # <錯誤1>的處理方式 except: # 捕獲所有其他異常 如果沒有發生任何異常,則會執行else區塊: try: # 一些代碼 except <錯誤1>: # <錯誤1>的處理方式 except <錯誤2>: # <錯誤2>的處理方式 else: # 沒有發生異常,代碼順利執行 finally區塊可以讓您在任何情況下執行某些操作,無論發生錯誤與否: try: # 一些代碼 except <錯誤1>: # <錯誤1>的處理方式 except <錯誤2>: # <錯誤2>的處理方式 else: # 沒有發生異常,代碼順利執行 finally: # 無論如何都要執行的操作 要發生的具體錯誤取決於您正在執行的操作。 例如,如果您正在讀取文件,可能會出現EOFError。如果您將數字除以零,將會出現ZeroDivisionError。如果有類型轉換問題,可能會出現TypeError。 試試這段代碼: result = 2 / 0 print(result) 程式將以錯誤結束:...

Python物件

在Python中,一切皆為物件。 甚至基本資料型別(整數、字串、浮點數等)的值也都是物件。串列是物件,元組、字典等等都是物件。 物件具有屬性和方法,可以使用點語法來存取它們。 例如,嘗試定義一個新的 int 型別的變數: age = 8 現在,age 可以存取所有 int 物件的屬性和方法。 例如存取該數字的實部和虛部: print(age.real) # 8 print(age.imag) # 0 print(age.bit_length()) # 4 存放串列值的變數則有不同的一組方法: items = [1, 2] items.append(3) items.pop() 方法的可用性取決於值的類型。 Python 提供的 id() 全域函數可讓您檢查特定物件在內存中的位置。 id(age) # 140170065725376 你的記憶體位置將會不同,這只是一個示範 如果將不同的值分配給變數,它的位置將會變化,因為變數的內容已被替換為另一個位於記憶體中的位置的值: age = 8 print(id(age)) # 140535918671808 age = 9 print(id(age)) # 140535918671840 但如果使用物件的方法修改物件,其位置將保持不變: items = [1, 2] print(id(items)) # 140093713593920 items.append(3) print(items) # [1, 2, 3] print(id(items)) # 140093713593920 只有在將變數重新分配給另一個值時,位置才會變化。...

Python的基礎知識

變數 我們可以通過將值賦給標籤來創建一個新的Python變數,使用=賦值運算符。 在這個例子中,我們將一個值為"Roger"的字符串賦給name這個標籤: name = "Roger" 這是一個帶有數字的例子: age = 8 變數名稱可以由字符、數字、下劃線_字符組成。不能以數字開頭。這些都是有效的變數名稱: name1 AGE aGE a11111 my_name _name 這些是無效的變數名稱: 123 test! name% 除此以外,除非是Python的關鍵字,其他任何名稱都是有效的。Python中有一些像for、if、while、import等關鍵字。 無需記住它們,因為如果你將這些當作變數使用,Python會警告你,並且你會逐漸認識它們作為Python編程語言語法的一部分。 表達式與語句 我們可以表達任何返回值的代碼。例如: 1 + 1 "Roger" 另一方面,語句是對值進行操作的操作,例如這是2個語句: name = "Roger" print(name) 一個程序由一系列語句組成。每個語句放在自己的一行上,但是你可以使用分號在一行上有多個語句: name = "Roger"; print(name) 註釋 在Python程序中,井號後的所有內容都會被忽略,被視為註釋: #這是一行注釋 name = "Roger" #這是一個行內註釋 縮進 在Python中縮進是有意義的。 不能像這樣隨意縮進: name = "Flavio" print(name) 有些其他語言沒有有意義的空白,但是在Python中,縮進是重要的。 在這個例子中,如果你嘗試運行這個程序,你會得到一個IndentationError: unexpected indent的錯誤,因為縮進有特殊的含義。 縮進的部分屬於一個塊,比如控制語句或條件塊,或者函數或類的主體。我們以後會更多地了解這些。

Python巢狀函式

在Python中,函式可以嵌套在其他函式內。 在函式內定義的函式僅在該函式內部可見。 這對於創建對於函式有用但對於其他地方無用的工具非常有用。 也許你會問:如果它對其他地方無害,為什麼我要“隱藏”此函式? 首先,因為最好隱藏僅限於函式內部且其他地方無用的功能。 此外,我們還可以利用閉包(稍後會介紹)。 這是一個示例: def talk(phrase): def say(word): print(word) words = phrase.split(' ') for word in words: say(word) talk('我要去買牛奶') 如果你想要從內部函式中訪問外部函式中定義的變數,你需要首先將其聲明為「nonlocal」: def count(): count = 0 def increment(): nonlocal count count = count + 1 print(count) increment() count() 這在使用閉包時非常有用,稍後我們會介紹。

Python常量

Python沒有強制變量成為常量的方式。 最接近的方法是使用枚舉(enum): class Constants(Enum): WIDTH = 1024 HEIGHT = 256 然後可以使用例如Constants.WIDTH.value來獲取每個值。 這樣的值是無法重新賦值的。 另外,如果你想依賴命名慣例,可以遵循這個:將永遠不會更改的變量以大寫來聲明: WIDTH = 1024 沒有人會阻止覆蓋這個值,而Python也不會阻止這樣的操作。 這是大部分Python代碼所使用的方式。

Python註釋

Python是動態型別的語言。我們不需要指定變數、函數參數或函數返回值的型別。 註釋讓我們有了這個選擇。 下面是一個沒有註釋的函數: def increment(n): return n + 1 下面是相同函數帶有註釋的版本: def increment(n: int) -> int: return n + 1 你也可以對變數進行註釋: count: int = 0 Python會忽略這些註釋。一個叫做 mypy 的工具可以獨立運行,或者集成在像 VS Code 或 PyCharm 這樣的IDE中,它可以在你編寫代碼時靜態地自動檢查類型錯誤,幫助你在運行代碼之前捕捉到類型不匹配的錯誤。 當你的軟件變得龐大並且你需要重構代碼時,它將非常有幫助。