What is the result of the following statement: list((b'abcde' + 'fghi')[3:6])

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở
Đáp án đúng: "It raises an exception". Biểu thức trong ngoặc được tính trước: b'abcde' là đối tượng bytes còn 'fghi' là chuỗi str, và Python 3 không cho nối hai kiểu này bằng dấu cộng, nên ngay bước b'abcde' + 'fghi' đã phát sinh TypeError (can't concat str to bytes); lát cắt [3:6] và list() không bao giờ được chạy. "[100, 101, 102]" là kết quả nếu vế sau cũng là bytes b'fghi', vì phần tử của bytes khi lấy ra là số nguyên mã byte (d = 100, e = 101, f = 102). "b'def'" là kết quả của lát cắt b'abcdefghi'[3:6] nếu không bọc list(). "[b'd', b'e', b'f']" sai cả trong trường hợp nối được, vì duyệt bytes cho số nguyên chứ không cho các bytes một ký tự. Muốn nối hợp lệ phải mã hoá chuỗi bằng 'fghi'.encode().

Cùng phần 3

Xuất hiện trong 1 bộ đề