[5 min python] 內建函數 - bytearray()

更新 發佈閱讀 5 分鐘

Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。

bytearray():可變的位元組序列

語法:

bytearray(整數)        # 建立指定長度的零填充
bytearray(可迭代物件)  # 從整數列表建立
bytearray(字串, encoding)  # 從字串編碼建立
bytearray(bytes物件)   # 從 bytes 複製建立

bytearray 跟 bytes 很像,差別在於 bytearray 是「可變的」,可以修改裡面的內容:

# 建立 bytearray
ba = bytearray(b'Hello')
print(ba)       # bytearray(b'Hello')
print(ba[0])    # 72(H 的 ASCII 碼)

# 可以修改!(bytes 不行)
ba[0] = 74      # 改成 J
print(ba)       # bytearray(b'Jello')

# 從整數列表建立
ba2 = bytearray([65, 66, 67])
print(ba2)  # bytearray(b'ABC')

bytearray 支援很多 list 的操作:

ba = bytearray(b'Hello')

# append:加一個 byte
ba.append(33)   # 33 是 '!' 的 ASCII
print(ba)       # bytearray(b'Hello!')

# extend:加多個 bytes
ba.extend(b' World')
print(ba)       # bytearray(b'Hello! World')

# pop:移除最後一個
last = ba.pop()
print(chr(last))  # 'd'
print(ba)         # bytearray(b'Hello! Worl')

# slice 切片
print(ba[0:5])  # bytearray(b'Hello')

bytearray 和 bytes 的互相轉換:

# bytes → bytearray
b = b'Hello'
ba = bytearray(b)
ba[0] = 104  # 改成小寫 h
print(ba)    # bytearray(b'hello')

# bytearray → bytes
b2 = bytes(ba)
print(b2)    # b'hello'
print(type(b2))  # <class 'bytes'>

小小綜合例子

# 簡單的凱薩加密(Caesar Cipher)
def caesar_encrypt(text, shift):
    data = bytearray(text.encode('ascii'))
    for i in range(len(data)):
        if 65 <= data[i] <= 90:   # 大寫字母
            data[i] = (data[i] - 65 + shift) % 26 + 65
        elif 97 <= data[i] <= 122:  # 小寫字母
            data[i] = (data[i] - 97 + shift) % 26 + 97
    return data.decode('ascii')

message = "Hello Python"
encrypted = caesar_encrypt(message, 3)
print(f"原文:{message}")
print(f"加密:{encrypted}")

# 解密就是反向位移
decrypted = caesar_encrypt(encrypted, -3)
print(f"解密:{decrypted}")
留言
avatar-img
艾利斯幻想旅程
5會員
431內容數
網路世界是一個充滿多元性與無限可能的空間,人們可以在此分享資訊、交流思想,並展現無盡的創造力。然而,隨著社交媒體和線上論壇的普及,一種有趣且獨特的現象也隨之興起——廢文。廢文指的是那些內容看似無聊、無害,或表面上毫無意義的帖子、留言或圖片,通常目的在於娛樂或逗趣,而非提供實質價值的資訊。
艾利斯幻想旅程的其他內容
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 bytes():不可變的位元組序列 語法: bytes(整數) # 建立指定長度的零填充 bytes by
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 bytes():不可變的位元組序列 語法: bytes(整數) # 建立指定長度的零填充 bytes by
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 str():字串轉換 語法: str(物件) str(bytes物件, encoding='utf-8', errors
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 str():字串轉換 語法: str(物件) str(bytes物件, encoding='utf-8', errors
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 complex():複數 語法: complex(real, imag) complex(字串) 建立一個複數(有實部
2026/02/21
Python「內建函數」(built-in functions)就是不用 import,隨時可以直接呼叫的函數,像 print()、len()、range() 這些,都算。 complex():複數 語法: complex(real, imag) complex(字串) 建立一個複數(有實部
看更多