Python變數

救苦救难韩天尊發表於2024-08-28

本篇是 Python 系列教程第 5 篇,更多內容敬請訪問我的 Python 合集

1 定義變數

在Python中定義變數非常簡單,你只需要給變數賦值即可。Python會自動檢測變數的資料型別。下面是一些基本的例子來展示如何定義不同型別的變數:

1.1 整數

age = 25

1.2 浮點數

height = 1.75

1.3 字串

name = "Alice"

1.4 布林

is_student = True

1.5 列表

numbers = [1, 2, 3, 4, 5]

1.6 元組

(類似於列表,有序但不可變)

colors = ("red", "green", "blue")

1.7 字典

person = {"name": "Bob", "age": 30}

1.8 集合

fruits = {"apple", "banana", "cherry"}

我們可以直接使用這些變數而無需事先宣告它們的型別。例如:

print(age)
print(name)
print(numbers)

如果我們需要檢視變數的型別,可以使用 type() 函式:

print(type(age))  # <class 'int'>
print(type(name))  # <class 'str'>
print(type(numbers))  # <class 'list'>

2 關鍵字

在Python中,有一些保留的關鍵字是不能被用作變數名、函式名或其他識別符號的名字的。這些關鍵字具有特殊的含義,用於語言結構和控制流等。以下是Python中的關鍵字列表:

  • False小寫的false不是關鍵字
  • None小寫的none不是關鍵字
  • True小寫的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

這些關鍵字都不能作為變數名使用。例如,你不能將一個變數命名為ifforclass等。如果嘗試這樣做,Python直譯器會丟擲一個SyntaxError錯誤。

示例:

# 錯誤用法
if = 5  # SyntaxError: invalid syntax

正確的做法是選擇一個合法變數名,它應該符合以下規則:

  • 只能由字母、數字和下劃線組成。
  • 必須以字母或下劃線開頭。
  • 區分大小寫。如Variable, variable, 和 VARIABLE 是三個不同的變數。

例如:

# 正確用法
my_variable = 5

3 命名規則

在Python中,變數命名遵循一定的規則和約定。下面是關於如何正確命名Python變數的一些指導原則:

  1. 只能包含字母、數字和下劃線
  • 字母可以是大寫(A-Z)或小寫(a-z)。
  • 數字可以是0到9。
  • 下劃線(_)可以用作單詞之間的分隔符。
  1. 必須以字母或下劃線開頭
  • 不能以數字開頭,例如 1variable 是非法的,但 variable1 是合法的。
  1. 區分大小寫
  • Variable, variable, 和 VARIABLE 是三個不同的變數。
  1. 避免使用Python關鍵字和內建函式名
  • 雖然不是語法錯誤,但是使用如 list, str, print 等作為變數名可能會導致意外的行為或混淆。
  1. 建議使用小寫字母和下劃線
  • 按照PEP 8(Python的官方編碼風格指南),變數名一般採用小寫字母加下劃線的方式,如 first_nametotal_cost
  1. 模組名、包名、類名和其他識別符號也有各自的命名約定
  • 模組名通常使用小寫字母。
  • 類名通常使用駝峰式命名法(CamelCase),例如 MyClass
  • 常量(值不會改變的變數)通常全部使用大寫字母,並用下劃線分隔單詞,如 PIMAX_CONNECTIONS
  1. 私有屬性和方法的命名
  • 如果希望某個類的屬性或方法不被外部直接訪問,可以使用單個前導下劃線 _ (例如 _secret),這表示這是一個內部實現細節。
  • 如果希望完全隱藏一個屬性或方法,可以使用雙前導下劃線 __ (例如 __private)。這將觸發名稱改編機制,使得該屬性或方法在類的外部無法直接訪問。
  1. 避免使用過於簡短的變數名
  • 使用有意義的名稱可以讓程式碼更易讀,例如使用 student_id 而不是 sid

下面是一些合法的變數名示例:

# 合法的變數命名
first_name = 'John'
last_name = 'Doe'
age = 30
pi = 3.14159
max_connections = 1000
is_student = True

下面是一些不合法的變數名示例:

# 不合法的變數命名
1_first_name = 'John'  # 不能以數字開頭
if = 5                 # 不能使用關鍵字
my-variable = 'test'   # 不能包含特殊字元

4 基本資料型別

Python支援多種基本資料型別,這些型別可以用來儲存不同型別的資料。以下是Python中最常見的幾種基本資料型別:

  1. 整數 (int):
  • 用於表示整數值,如 42-7
  1. 浮點數 (float):
  • 用於表示帶有小數部分的數值,如 3.14-0.001
  1. 複數 (complex):
  • 用於表示複數值,如 3+4j5.6j
  1. 字串 (str):
  • 用於表示文字資料,可以使用單引號 'hello' 或雙引號 "world" 來建立字串。
  1. 布林值 (bool):
  • 表示邏輯值 TrueFalse
  1. 列表 (list):
  • 用於儲存有序且可變的元素集合,如 [1, 2, 3]
  1. 元組 (tuple):
  • 類似於列表,有序但不可變,如 (1, 2, 3)
  1. 集合 (set):
  • 用於儲存無序且不重複的元素集合,如 {1, 2, 3}
  1. 字典 (dict):
  • 用於儲存鍵值對,如 {'name': 'Alice', 'age': 30}

示例:

# 整數
age = 25

# 浮點數
height = 1.75

# 複數
complex_number = 3 + 4j

# 字串
name = "Alice"

# 布林值
is_student = True

# 列表
numbers = [1, 2, 3, 4, 5]

# 元組
colors = ("red", "green", "blue")

# 集合
fruits = {"apple", "banana", "cherry"}

# 字典
person = {"name": "Bob", "age": 30}

除了這些基本資料型別之外,Python還支援其他一些高階資料型別,例如:

  1. 範圍 (range):
  • 用於生成一系列連續的整數,如 range(1, 10)
  1. 位元組 (bytes):
  • 用於表示不可變的位元組序列,如 b'hello'
  1. 位元組陣列 (bytearray):
  • bytes 類似,但可變,如 bytearray(b'hello')
  1. 記憶體檢視 (memoryview):
  • 提供了一個物件的記憶體檢視,允許高效地操作二進位制資料,如 memoryview(bytearray(b'hello'))

這些資料型別為Python提供了強大的功能,使其能夠處理各種資料結構和計算任務。

5 型別轉換

在Python中進行型別轉換非常簡單,你可以使用內建的型別轉換函式來實現。下面是一些常用的型別轉換方法及其例子:

5.1 將其他型別轉換為整數 (int())

  1. 將其他型別轉換為整數 (int())
  • 使用 int() 函式可以將字串、浮點數等轉換成整數,如果字串不能被解析為整數,則會丟擲異常。
  • 示例:
int("42")       # 結果是 42
int(3.14)       # 結果是 3

5.2 將其他型別轉換為浮點數 (float())

  • 使用 float() 函式可以將整數、字串等轉換成浮點數,如果字串不能被解析為浮點數,則會丟擲異常。
  • 示例:
float(42)       # 結果是 42.0
float("3.14")   # 結果是 3.14

5.3 將其他型別轉換為字串 (str())

  • 使用 str() 函式可以將幾乎所有型別的變數轉換為字串形式。
  • 示例:
str(42)         # 結果是 "42"
str(3.14)       # 結果是 "3.14"
str(True)       # 結果是 "True"

5.4 將其他型別轉換為布林值 (bool())

  • 使用 bool() 函式可以將其他型別的值轉換為布林值。通常情況下,空值(如 None, False, 0, "", [], {}, 等)會被轉換為 False,非空值則轉換為 True
  • 示例:
bool(0)         # 結果是 False
bool(1)         # 結果是 True
bool("")        # 結果是 False
bool("hello")   # 結果是 True

5.5 將其他型別轉換為列表 (list())

  • 使用 list() 函式可以將字串、元組等轉換成列表。
  • 示例:
list("abc")     # 結果是 ['a', 'b', 'c']
list((1, 2, 3)) # 結果是 [1, 2, 3]

5.6 將其他型別轉換為元組 (tuple())

  • 使用 tuple() 函式可以將列表、字串等轉換成元組。
  • 示例:
tuple([1, 2, 3]) # 結果是 (1, 2, 3)
tuple("abc")     # 結果是 ('a', 'b', 'c')

5.7 將其他型別轉換為集合 (set())

  • 使用 set() 函式可以將列表、元組等轉換成集合。
  • 示例:
set([1, 2, 3, 3]) # 結果是 {1, 2, 3}
set("abracadabra") # 結果是 {'a', 'r', 'b', 'c', 'd'}

5.8 將其他型別轉換為字典 (dict())

  • 使用 dict() 函式可以將元組列表轉換成字典。
  • 示例:
dict([("name", "Alice"), ("age", 30)]) # 結果是 {'name': 'Alice', 'age': 30}

注意事項:

  • 在進行型別轉換時需要注意源資料的有效性和相容性。
  • 如果源資料不能正確地轉換為目標型別,可能會引發異常。

相關文章