Chèn byte Python

Trong bài học này, bạn sẽ khám phá các thao tác tuần tự phổ biến mà các đối tượng bytes hỗ trợ. Bạn sẽ xem xét kỹ hơn

  • Toán tử innot in
  • Các toán tử nối [+] và sao chép [
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    0]
  • Lập chỉ mục và cắt lát
  • Các chức năng tích hợp sẵn
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    1,
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    2 và
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    3
  • Các phương thức cho đối tượng bytes
  • >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    5 và
    >>> a = b'abcde'
    >>> a
    b'abcde
    >>> b = b'fghij'
    >>> b
    b'fghij'
    
    >>> a + b
    b'abcdefghij'
    
    >>> a * 3
    b'fghijfghijfghij'
    
    6

Để biết thêm thông tin về các giá trị thập lục phân, hãy xem các tài nguyên sau

  • Mã hóa Unicode & ký tự trong Python. Hướng dẫn không đau
  • Mục nhập Wikipedia hệ thập lục phân

Đây là cách sử dụng các toán tử innot in

>>>

>>> a = b'abcde'
>>> a
b'abcde'

>>> b'cd' in a
True
>>> b'spam' in a
False
>>> b'spam' not in a
True

Dưới đây là cách sử dụng toán tử nối [+] và sao chép [

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
0]

>>>

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'

Đây là cách lập chỉ mục và cắt

>>>

>>> a = b'abcde'
>>> a[2]
99
>>> a[1]
98
>>> a[2:4]
b'cd'
>>> a[1:5]
b'bcde'

Dưới đây là cách sử dụng các hàm tích hợp sẵn

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
1,
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
2 và
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
3

>>>

>>> a = b'abcde'
>>> len[a]
5
>>> max[a]
101
>>> chr[101]
'e'
>>> min[a]
97
>>> chr[97]
'a'

Đây là cách sử dụng các phương thức cho đối tượng bytes

>>>

>>> a = b'spam,egg,spam,bacon,spam,lobster'
>>> a
b'spam,egg,spam,bacon,spam,lobster'
>>> a.count[b'spam']
3
>>> a.count['spam']
Traceback [most recent call last]:
  File "", line 1, in 
    a.count['spam']
TypeError: argument should be integer or bytes-like object, not 'str'

>>> a.endswith[b'ster']
True

>>> a.find[b'bacon']
14

>>> a
b'spam,egg,spam,bacon,spam,lobster'
>>> a.split[sep=b',']
[b'spam', b'egg', b'spam', b'bacon' , b'spam', b'lobster']

>>> a.center[40, b'-']
b'----spam,egg,spam,bacon,spam,lobster----'

>>> a.center[40, ' ']
Traceback [most recent call last]:
  File "", line 1, in 
    a.center[40, ' ']
TypeError: center[] argument 2 must be a byte string of length 1, not 'str'

Đây là cách sử dụng

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
5 và
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
6

>>>

>>> a = b'spam,egg,spam,bacon,spam,lobster'
>>> a[1]
112
>>> a[3]
109
>>> hex[a[0]]
'0x73'
>>> a[0]
115
>>> list[a]
[115, 112, 97, 109, 44, 101, 103, 103, 44, 115, 112, 97, 109, 44, 98, 97, 99, 111, 110, 44, 115, 112, 97, 109, 44, 108, 111, 98, 115, 116, 101, 114]

>>> b = bytes.fromhex[' aa 68 32 af ']
>>> b
b'\xaah2\xaf'
>>> list[b]
[170, 104, 50, 175]

>>> b
b'\xaah2\xaf'
>>> b.hex[]
'aa6832af'
>>> type[b.hex[]]

Alain Rouleau trên

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
49 đó khá là đau đầu. Và tại sao đầu ra có cả
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
50 và
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
51 trong
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
52?

Nhưng điều dường như đang xảy ra là hệ thập lục phân 68 bằng số thập phân 104, đến lượt nó là ascii cho

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
50. Cộng với số thập lục phân 32 là số thập phân 50, lần lượt là ascii cho
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
51. Tất cả đều khá điên rồ

Veda trên

Làm thế nào để giao diện điều khiển trên Mã VS trông rất sặc sỡ?

Ricky White Nhóm RP trên

Tôi tin rằng Chris sử dụng BPython làm REPL Python của anh ấy. Đó là những gì bạn đang thấy bên trong VS Code Terminal của anh ấy

Veda trên

Cảm ơn vì đã trả lời. Tôi đã thử cài đặt nó trên windows, nhưng gặp lỗi phụ thuộc khác khi gọi nó. [không tìm thấy mô-đun fcntl ]. Tôi đoán tôi phải gắn bó với REPL mặc định thông thường

Veda trên

Đã sửa xong. Trên cửa sổ, chúng ta cần sử dụng python -m bpython. cli thay vì python để truy cập CLI này

Chris Bailey Nhóm RP trên

Xin chào @Veda, tôi rất vui vì bạn đã tìm ra giải pháp.

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
57 trên windows đôi khi hơi rắc rối. Tôi đã phát hiện ra rằng nó thường là do sự hỗ trợ của một số gói cơ bản [lời nguyền, v.v.]

Trong tương lai, nếu bạn muốn xem xét một số lựa chọn thay thế có thể có, với các tính năng tương tự.

>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
58 và
>>> a = b'abcde'
>>> a
b'abcde
>>> b = b'fghij'
>>> b
b'fghij'

>>> a + b
b'abcdefghij'

>>> a * 3
b'fghijfghijfghij'
59

Python lưu trữ dữ liệu theo byte như thế nào?

Các đối tượng byte có thể được xây dựng từ hàm tạo, byte[] và từ các ký tự; . b'trăn' . Để xây dựng các mảng byte, hãy sử dụng hàm bytearray[].

Có loại byte nào trong Python không?

Định nghĩa. Hàm bytes[] của Python được sử dụng để chuyển đổi một đối tượng thành một đối tượng byte bất biến [không thể sửa đổi] với kích thước và dữ liệu đã cho . Hàm bytes[] của Python trả về một đối tượng byte, là một chuỗi số nguyên bất biến trong khoảng từ 0 đến 256.

Đối tượng byte trong Python là gì?

Dữ liệu chuỗi và ký tự trong Python . Một đối tượng bytes là một chuỗi bất biến của các giá trị byte đơn. Mỗi phần tử trong đối tượng bytes là một số nguyên nhỏ trong khoảng từ 0 đến 255. one of the core built-in types for manipulating binary data. A bytes object is an immutable sequence of single byte values. Each element in a bytes object is a small integer in the range of 0 to 255.

Chủ Đề