Python中的字串和位元組字串有什麼區別?


在Python中,字串是Unicode字元序列,而位元組字串是原始位元組序列。

以下三個例子演示了字串和位元組字串的區別

建立字串

示例

在這個例子中,我們使用雙引號定義了一個字串“Lorem Ipsum”。這個字串由Unicode字元組成,可以用不同的方式編碼。

# Define a string
my_string = "Lorem Ipsum"
# Print the string
print(my_string)

輸出

Lorem Ipsum

建立位元組字串

示例

在這個例子中,我們使用b字首定義了一個位元組字串“Lorem Ipsum”。這個位元組字串由原始位元組組成,使用ASCII編碼表示。請注意,b字首表示這是一個位元組字串,而不是普通字串。

# Define a byte string
my_byte_string = b"Lorem Ipsum"


# Print the byte string
print(my_byte_string)

輸出

 b'Lorem Ipsum'

將字串編碼為位元組字串

示例

在這個例子中,我們定義了一個字串“Lorem Ipsum”,然後使用encode()方法將其轉換為位元組字串。此方法返回一個新的位元組字串,預設使用UTF-8編碼。請注意,生成的位元組字串以b字元為字首,表示它是一個位元組字串。

# Define a string
my_string = "Lorem Ipsum"

# Encode the string as a byte string
my_byte_string = my_string.encode()

# Print the byte string
print(my_byte_string)

輸出

b'Lorem Ipsum'

將位元組字串解碼為字串

示例

在這個例子中,我們定義了一個位元組字串“Lorem Ipsum”,然後使用decode()方法將其轉換為字串。此方法返回一個新的字串,預設使用UTF-8解碼。請注意,生成的字串沒有b字首,表示它是一個普通字串。

# Define a byte string
my_byte_string = b"Lorem Ipsum"
# Decode the byte string into a string
my_string = my_byte_string.decode()
# Print the string
print(my_string)

輸出

Lorem Ipsum

連線字串和位元組字串

示例

在這個例子中,我們定義了一個普通字串“Hello”和一個位元組字串“ World”。然後,我們使用decode()方法將位元組字串轉換為普通字串,並使用+運算子連線這兩個字串。最後,我們列印組合後的字串。

# Define a string
my_string = "Lorem"

# Define a byte string

my_byte_string = b" Ipsum"

# Concatenate the string and byte string
my_combined_string = my_string + my_byte_string.decode()

# Print the combined string
print(my_combined_string)

輸出

Lorem Ipsum

將位元組字串寫入檔案

示例

在這個例子中,我們定義了一個位元組字串“Lorem Ipsum”。然後,我們使用open()函式以二進位制模式(“wb”)開啟名為“my_file.txt”的檔案。我們將位元組字串傳遞給檔案物件的write()方法,以將位元組字串寫入檔案。with語句確保在程式碼塊執行完畢後正確關閉檔案。請注意,將位元組字串寫入檔案在處理二進位制資料(如影像或音訊檔案)時非常有用。

# Define a byte string
my_byte_string = b"Lorem Ipsum"
# Write the byte string to a file

with open("my_file.txt", "wb") as f:
    f.write(my_byte_string)

總而言之,Python中字串和位元組字串的主要區別在於,字串由Unicode字元組成,而位元組字串由原始位元組組成。理解這兩種型別之間的區別非常重要,因為它們具有不同的用例,並且在某些情況下行為可能不同。

更新於:2023年8月11日

2K+ 次瀏覽

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.