• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

Python 位元組序列 bytes 使用教學與範例

介紹 Python 的位元組(bytes)函數的使用方式,並提供幾種常用的範例程式碼。


Python 的位元組(bytes)物件就是一串不可修改的序列,每個元素值都介於 0 到 255,若要將其他的物件轉換為位元組物件,可以使用 bytes 函數,以下是 bytes 函數的使用方式與範例。

如果需要可以修改的位元組陣列,可以改用 bytearray 函數。

建立位元組

若在呼叫 bytes 時只傳入一個整數值 n,則會建立長度為 n,並且由 null 字元組成的位元組序列:

# 建立長度為 5 的位元組
bytes(5)
b'\x00\x00\x00\x00\x00'

若傳入一個 list,則可直接轉為位元組序列:

# 將 list 轉為位元組
bytes([1, 2, 3, 4])
b'\x01\x02\x03\x04'

亦可將字串以指定的編碼方式,轉換為位元組序列:

# 將字串以 UTF-8 編碼轉為位元組
bytes("python", "utf-8")
b'python'
# 將字串以 UTF-16 編碼轉為位元組
bytes("python", "utf-16")
b'\xff\xfep\x00y\x00t\x00h\x00o\x00n\x00'

對於簡單的資料,亦可用字串實字直接建立位元組序列:

# 以字串實字建立位元組序列
b'\x01\x02\x03\x04'
b'\x01\x02\x03\x04'

位元組索引

若要取用位元組序列中的元素,可以使用索引:

# 建立位元組序列
b = b"\x01\x02\x03\x04"

# 取用第一個元素
b[0]
1

迴圈處理位元組序列

我們也可以用 for 迴圈來逐一處理位元組的每個元素:

# 建立位元組序列
b = b"\x01\x02\x03\x04"

# 以迴圈逐一處理位元組序列的元素
for x in b:
    print(x)
1
2
3
4

字串與位元組轉換

若要將位元組序列轉換為普通的字串,可以使用 str 函數:

# 建立位元組序列
b = b"python"

# 位元組序列轉為字串
str(b, encoding = "UTF-8")
'python'

另外亦可使用 bytes 的 decode 函數,寫法不同但作用都相同:

# 位元組序列轉為字串
bytes.decode(b, encoding = "utf-8")

# 位元組序列轉為字串
b.decode(encoding = "utf-8")

若要將普通的字串轉換為位元組序列,則可使用 bytes 函數:

# 字串
s = "python"

# 字串轉為位元組序列
bytes(s, encoding = "utf8")
b'python'

另外亦可使用 str 的 decode 函數:

# 字串轉為位元組序列
str.encode(s, encoding = "utf-8")

# 字串轉為位元組序列
s.encode(encoding = "utf-8")

數值陣列與位元組轉換

位元組序列可以透過 list 轉換為普通的列表(list):

# 建立位元組序列
b = b"\x01\x02\x03\x04"

# 轉為列表(list)
list(b)
[1, 2, 3, 4]

若要轉為 NumPy 的陣列,可以先轉為 bytearray 之後,再轉為 NumPy 陣列:

import numpy as np

# 位元組序列轉為 NumPy 陣列
np.array(bytearray(b))
array([1, 2, 3, 4], dtype=uint8)

參考資料:Programiz、BeginnersBook、AppDividend

分類:Python

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide