一、變量與命名規則

1.0 變量名與值

變量名是值的容器,用於存儲數值。實際上,數值存儲在內存中,變量名是數值內存的訪問地址的別名(可理解為名稱),

1.1 變量命名規範

必須遵守(硬性要求)

  • 長度建議 不超過 256 個字符(雖無強制限制,但過長影響可讀性)。
  • 不能包含空格
  • 只能包含:字母(a-z, A-Z)、數字(0-9)、下劃線(_)
  • 區分大小寫nameName 是兩個不同變量。
  • 不能以數字開頭:如 1var 是非法的。

建議(良好編程習慣)

  • 變量名應有意義:能反映其用途(如 user_agex 更好),方便其他人或後期閲讀(後期維護)。
  • 不要使用 Python 關鍵字、函數名、調用的庫名、模塊名作為變量名:會導致錯誤或難以調試。

舉例:

a = 1
print(a)
# 我們將1賦值給變量名a,

1.2 關鍵字與函數名

關鍵字與函數名實際上是特殊的變量名,內置了魔法方法 __call__ 使其可以調用。關鍵字是強制性的,函數名不是強制性的。魔法方法在類、對象區域【暫時瞭解即可】

關鍵字

  • 這些詞有特殊語法含義,不能用作變量名,否則報錯為語法錯誤 SyntaxError
  • 完整列表(共 35 個,截至 Python 3.11):
'False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await',
'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except',
'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is',
'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',
'try', 'while', 'with', 'yield'
  • 查看關鍵字列表的方法
import keyword
print(keyword.kwlist)

函數名

  • 函數分為兩類:
  1. 內置函數:Python內置定義的函數,如 print(), len(), type() 等。
  2. 自定義函數:由用户使用 deflambda 定義的函數。

二、註釋

2.1 單行註釋

  • 使用 #
# 這是一條單行註釋
x = 1  # 行尾也可以加註釋
  • 也可用字符串(不推薦,僅作了解):
"這其實不是標準註釋,只是未使用的字符串"
'同上'

2.2 多行註釋

  • 使用三對引號:"""..."""'''...'''
'''
這是多行註釋
可以寫很多行
通常用於函數或模塊説明
'''

建議:每行註釋不超過 120 個字符,保持代碼整潔。

2.3 函數説明


三、數據結構

3.1 數字型

類型

説明

示例

int

整數

42, -7

float

浮點數(帶小數)

3.14, -0.001, 0.

bool

布爾值(邏輯值)

True, False

complex

複數

3+4j, complex(3, 4)

關於布爾型 bool

  • 在 Python 3 中,boolint 的子類:
  • True == 1True
  • False == 0True
  • 哪些值轉為 False
  • None
  • False
  • 數字零:0, 0.0, 0j
  • 空容器:''(空字符串)、()(空元組)、[](空列表)、{}(空字典/集合)
  • 其他所有值轉為 True

複數 complex

  • 兩種寫法:
z1 = 3 + 4j
z2 = complex(3, 4)  # 實部=3,虛部=4
  • 注意:實部和虛部在內部都存儲為 float 類型。

3.2 非數字型

類型

英文名

説明

字符串

str

文本數據,如 "Hello"

列表

list

有序、可變序列,如 [1, 2, 3]

元組

tuple

有序、不可變序列,如 (1, 2, 3)

字典

dict

鍵值對映射,如 {"name": "Alice",}"name"為鍵,"Alice" 為值

集合

set

無序、不重複元素集合,如 {1, 2, 3}

空值:None

  • 表示“無值”或“空”,是 NoneType 類型的唯一實例。
  • 常用於函數無返回值時的默認返回。

3.3 數據類型轉換

函數

作用

int(x)

轉為整數

float(x)

轉為浮點數

complex(x, y)

轉為複數(x 為實部,y 為虛部)

str(x)

轉為字符串

list()

轉為列表

tuple()

轉為元組

set()

轉為集合

dict()

轉為字典

repr(x)

返回對象的“官方”字符串表示(常用於調試)

示例:

str(123) # '123' int("45") # 45 float(True) # 1.0


3.4 查詢數據類型

方法

説明

type(value)

返回 value 的具體類型

isinstance(value, 類型)

判斷 value 是否屬於指定類型(支持繼承判斷)

示例:

x = 100 print(type(x)) # <class 'int'> print(isinstance(x, int)) # True print(isinstance(x, (int, float))) # True(檢查是否為 int 或 float)


四、運算符

4.1 賦值運算符

運算符

説明

示例

=

基本賦值

a = 5

a = b = c = 1

多變量同值(共享同一內存地址)

任意變量值改變,其他變量值也會改變

a, b, c = 1, '2', [2,3]

多變量分別賦值(解

增強賦值(複合賦值)

運算符

等價形式

+=

a = a + b

-=

a = a - b

*=

a = a * b

/=

a = a / b

%=

a = a % b

**=

a = a ** b

//=

a = a // b

:=

海象運算符(表達式內賦值)


4.2 算術運算符

符號

含義

+

加法

-

減法

*

乘法

**

冪運算(如 2**3 = 8

/

除法(結果為 float)

//

整除(向下取整)

%

取模(餘數)

運算優先級(遵循數學規則):** > * = / = // = % > + = -


4.3 比較運算符

運算符

含義(返回 bool 型)

==

等於

!=

不等於

> / >=

大於 / 大於等於

< / <=

小於 / 小於等於


4.4 邏輯運算符

運算符

含義(返回 bool 型)

優先級

not


最高

and



or


最低

示例:

條件1 or 條件2


4.5 成員運算符

運算符

含義

示例

in

是否在容器中

'a' in 'abc'True

not in

是否不在容器中

5 not in [1,2,3]True


4.6 身份運算符(比較內存地址)

運算符

含義

示例

is

是否為同一個對象(內存地址相同)

a is b

is not

是否不是同一個對象

⚠️ 注意:is== 不同!

a = [1, 2] b = [1, 2] print(a == b) # True(值相等) print(a is b) # False(不同對象)


五、Python 函數基礎

5.1 常用內置函數(粗略認識)

函數

常用參數

解釋

示例

print()

字符型打印

len()

5.2 參數類型

形參(定義時)

  • 必要參數:調用時必須提供。
  • *args:接收任意數量的非關鍵字參數,打包成 元組
def func(*args):
    print(args)  # args 是一個 tuple
func(1, 2, 3)  # (1, 2, 3)
  • **kwargs:接收任意數量的關鍵字參數,打包成 字典
def func(**kwargs):
    print(kwargs)  # kwargs 是一個 dict
func(name="Alice", age=25)  # {'name': 'Alice', 'age': 25}

💡 *** 也用於“拆包”(unpacking)。


5.3 內置函數底層實現【進階內容,新手跳過】

iter():

底層對象含有 __iter__

next():底層對象含有 __next__

obj
len(obj) is obj.__len__()
srt(obj) is obj.__str__()

iter(obj) is obj.__iter__()

def func():return
func() is func.__call__()

函數

用途

iter(obj)

返回對象的迭代器

next(iterator)

獲取迭代器的下一個元素


5.4 函數定義增強語法

返回值類型提示(Type Hint)

def greet(name: str) -> str:
    return f"Hello, {name}"
  • -> str:表示預期返回字符串
  • 注意:這只是提示,Python 不會強制檢查類型

省略號 ...

  • 是內置對象 Ellipsis 的字面量。
  • 常用於佔位(如抽象方法):
def todo_function():
    ...

九、面向對象

對象

魔法方法

十、字符串(str)詳解

10.1 多行字符串

text = """
這是
多行
字符串
"""

10.2 索引(Indexing)

  • 字符串是序列類型,支持索引。
  • 正向索引:從 0 開始(s[0] 是第一個字符)。
  • 反向索引:從 -1 開始(s[-1] 是最後一個字符)。

10.3 切片(Slicing)

  • 語法:s[start:stop:step]
  • start:起始位置(包含)
  • stop:結束位置(不包含)
  • step:步長(可省略,默認為 1)
  • 常見用法:
s = "abcdef"
s[:]        # "abcdef"(複製整個字符串)
s[::-1]     # "fedcba"(反轉字符串)
s[1:4]      # "bcd"

10.4 常用字符串方法

方法

説明

.lower()

轉小寫

.upper()

轉大寫

.strip()

去除首尾空白

.lstrip()

去除左側空白

.rstrip()

去除右側空白

.split(sep)

sep 分割為列表

.find(sub)

查找子串位置(未找到返回 -1)

.replace(old, new)

替換子串

len(s)

獲取字符串長度(字符數)


10.5 轉義字符

轉義符

含義

\n

換行

\t

製表符(Tab)

\'

單引號

\"

雙引號

\\

反斜槓本身


常用函數

容器類型
列表
字典
元組
集合

條件語句

嵌套

循環語句
for循環
while循環
任務目標:手寫氣泡排序法,楊輝三角

十一、庫

常用必會的Python內置庫:(至少需要了解)

庫名

用途

time

獲取時間戳、延遲等

datetime

處理日期和時間

random

生成隨機數

os

與操作系統交互(文件、路徑、環境變量等)

re

正則表達式,自定義規則提取或檢查字符【AI 問一下就知道是什麼了】

tkinter

簡易 UI 界面【學會了可以給自己的對象寫一個表白動畫】

第三方庫:
安裝庫【建議使用 uv 包管理器來安裝】

自定義庫:

十二、變量作用域(Scope)

Python 中變量的作用域按 LEGB 規則查找:

  1. Local(局部):函數內部定義的變量。
  2. Enclosing(嵌套):外層函數的變量(閉包)。
  3. Global(全局):模塊級別定義的變量。
  4. Built-in(內建):Python 內置名稱(如 len, print)。

12.1 局部作用域

  • def 內定義的變量。
  • 一旦在函數內對變量賦值,它就被視為局部變量
  • 若只讀取未賦值,則會查找全局變量。

12.2 全局變量聲明

  • 使用 global 聲明,可在函數內修改全局變量:
x = 10
def func():
    global x
    x = 20

12.3 嵌套作用域與 nonlocal

  • 在嵌套函數中,若要修改外層函數的變量,使用 nonlocal
def outer():
    x = 1
    def inner():
        nonlocal x
        x = 2
    inner()
    print(x)  # 輸出 2

十三、異常處理

基本結構:try-except

try:
    # 可能出錯的代碼
    risky_code()
except ValueError:
    # 捕獲特定異常
    print("值錯誤!")
except Exception as e:
    # 捕獲其他所有異常
    print("發生錯誤:", e)
  • try:嘗試執行可能引發異常的代碼塊。
  • except:當異常發生時執行的處理代碼。
  • 可指定異常類型(如 ValueError, TypeError)。
  • 也可捕獲通用異常 Exception

✅ 良好實踐:儘量捕獲具體異常類型,而非籠統使用 except:

九、佔位符

代碼結構佔位符
表示“此處待實現”。【將來可能會實現,但要保證結構完整】

  • ... :python內置Ellipsis對象,省略號。
  • pass
  • """TODO"""

值佔位

  • None:空值
  • NotImplemented:讓 Python 嘗試 other 的 __radd__

格式化佔位【已被新式輸出取代,現較不常用】

  • %
  • %s:輸出字符串
  • %d:輸出int類型數字
  • %f:輸出浮點數 %.nf:可以保留n位小數,n=0則不保留小數,四捨五入
  • %x:輸出16進制數字
  • : 使用方式:print('%s_%d_%f_%x', %(a,b,c,d))
  • "{ }".format()
  • 命名佔位符
  • "{} {}".format("hello", 123) #-> "hello 123"
  • 位置佔位符
  • "{name} {value} {}".format(2, name="id", value=123)#->"id 123 2"
  • f"{ }" 【格式化輸出】

約定佔位符

  • _:for循環不調用【推薦】
  • for _ in range(10):循環體