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ử
in
vànot in
- Các toán tử nối [
+
] và sao chép [
0]>>> a = b'abcde' >>> a b'abcde >>> b = b'fghij' >>> b b'fghij' >>> a + b b'abcdefghij' >>> a * 3 b'fghijfghijfghij'
- Lập chỉ mục và cắt lát
- Các chức năng tích hợp sẵn
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' >>> a b'abcde >>> b = b'fghij' >>> b b'fghij' >>> a + b b'abcdefghij' >>> a * 3 b'fghijfghijfghij'
- Các phương thức cho đối tượng
bytes
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'abcde' >>> a b'abcde >>> b = b'fghij' >>> b b'fghij' >>> a + b b'abcdefghij' >>> a * 3 b'fghijfghijfghij'
Để 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ử in
và not 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