Hàm str() trong Python

Thứ bảy - 22/04/2023 00:13

Str trong Python là gì? Cách dùng str Python như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!

Python hiện là một trong số ngôn ngữ lập trình được ưa chuộng hiện tại. Bạn dễ dàng tìm thấy Python ở nhiều sản phẩm phần mềm, web, thậm chí cả ứng dụng. Nếu muốn lập trình tốt cùng ngôn ngữ này, nhất định bạn không thể bỏ qua các hàm. Str() là một trong số đó.

Trong Python, hàm str() sẽ đưa đối tượng được chọn về dạng chuỗi.

Cú pháp của hàm str() trong Python

Hàm str() trong Python có cú pháp là:

str(object, encoding='utf-8', errors='strict')

Tham số của hàm str()

Hàm str() có 3 tham số:

  • Đối tượng: Là đối tượng có thể hiển thị theo dạng chuỗi. Nếu không được cung cấp, kết quả trả về là một chuỗi trống.
  • encoding: Encoding của một đối tượng. Nếu không được cung cấp, encoding mặc định là UTF-8.
  • errors: Phản hồi khi encoding bị lỗi. Giá trị mặc định là 'strict'

Có 6 loại errors:

  • strict: Phản hồi mặc định làm tăng ngoại lệ UnicodeDecodeError khi gặp lỗi
  • ignore: Loại bỏ Unicode không thể encoding trong kết quả
  • replace: Thay thế Unicode không thể encoding bằng một dấu chấm hỏi
  • xmlcharrefreplace: Chèn tham chiếu ký tự XML thay cho Unicode không thể encoding
  • blackslashreplace: Chèn một chuỗi \uNNNN thay cho Unicode không thể encoding
  • nameraplace: Chèn một chuỗi \N{...} thay cho Unicode không thể encoding
Hàm str() trong Python trả về dạng chuỗi của một đối tượng
Hàm str() trong Python trả về dạng chuỗi của một đối tượng

Giá trị trả về của hàm str()

Hàm str() trả về một chuỗi được coi là đại diện không chính thức hoặc có thể in được của một đối tượng.

Ví dụ 1: Chuyển đổi đối tượng thành chuỗi bằng str()

Nếu 2 tham số encoding và errors không được cung cấp, hàm str() gọi method __str__() nội bộ của một đối tượng.

Nếu không thể tìm thấy method __str__(), nó sẽ gọi hàm repr(obj) để thay thế.

Ví dụ:

tentrang = str('Quantrimang.com')
print(tentrang)

Khi chạy chương trình, kết quả chúng ta thu được là:

Quantrimang.com

Lưu ý: Biến kết quả sẽ chứa một chuỗi.

Ví dụ 2: Hàm str() hoạt động như thế nào với các bytes?

Nếu tham số encoding và errors được cung cấp, tham số đầu tiên - đối tượng - sẽ phải là một đối tượng dạng bytes (bytes hoặc bytearray).

Nếu đối tượng dạng bytes hoặc bytearray, hàm str() sẽ gọi method bytes.decode(ecoding, errors).

Bên cạnh đó, nó sẽ lấy đối tượng bytes trong buffer trước khi gọi method decode().

Lỗi trong chuỗi

Khi dùng hàm str() trong Python, bạn có thể gặp phải 6 kiểu lỗi sau.

  • strict (mặc định): Gây lỗi UnicodeDecodeError.
  • Ignore: Bỏ qua Unicode chưa được mã hóa.
  • Replace: Thay thế unicode chưa được mã hóa bằng dấu chấm hỏi.
  • xmlcharrefreplace: Chèn tham chiếu ký tự XML thay cho Unicode không thể mã hóa.
  • Namereplace: Chèn chuỗi thoát \N{…} thay cho một Unicode không thể mã hóa.

Ví dụ:

a = bytes("ŽString", encoding = 'utf-8')
s = str(a, encoding = "ascii", errors ="ignore")
print(s)

Kết quả

String

Ở ví dụ trên, ký tự Ž sẽ gây lỗi bởi nó không thể được giải mã bằng ASCII. Thế nhưng nó bị bỏ qua bởi các lỗi được thiết lập dưới dạng ignore.

Ví dụ

# str() xử lý đối tượng dạng bytes
b = bytes('Quantrimöng', encoding='utf-8')

print(str(b, encoding='ascii', errors='ignore'))

Kết quả trả về là:

Quantrimng

Ở đây, ký tự ö không thể decode bằng ASCII. Vì thế, nó sẽ gây ra lỗi. Tuy nhiên, chúng ta đã đặt tham số errors = 'ignore' nên Python sẽ bỏ qua ký tự không thể decode bằng hàm str().

Nguồn tin: Quantrimang.com

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

  Ý kiến bạn đọc

THỐNG KÊ TRUY CẬP
  • Đang truy cập17
  • Máy chủ tìm kiếm4
  • Khách viếng thăm13
  • Hôm nay6,354
  • Tháng hiện tại111,959
  • Tổng lượt truy cập8,429,689
QUẢNG CÁO
Phan Thanh Phú
Quảng cáo 2
Liên kết site
Đăng nhập Thành viên
Hãy đăng nhập thành viên để trải nghiệm đầy đủ các tiện ích trên site
Thăm dò ý kiến

Bạn thấy Website cần cải tiến những gì?

Lịch Âm dương
Máy tính
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây