Hàm str() trong Python
str trong Python được dùng như thế nào? Cách dùng lệnh str trong Python có khó không? Hãy cùng nhau tìm hiểu nhé!
Chuỗi là một kiểu lập trình cơ bản. Chúng là một chuỗi các ký tự chữ cái, số hoặc ký hiệu. Chuỗi Python thường được sử dụng khi xử lý văn bản, dữ liệu có cấu trúc hoặc dữ liệu từ các nguồn bên ngoài.
Vì vậy, nếu bạn muốn bắt đầu lập trình bằng Python, bạn cần biết cách xử lý chúng. Chuỗi không thể thay đổi, nghĩa là sau khi tạo, chúng không thể bị sửa đổi. Tuy nhiên, chúng có thể được thao tác bằng nhiều phương pháp khác nhau. Hãy cùng tìm hiểu về chuỗi hay lệnh str trong Python nhé!
Chuỗi trong Python là gì?
Chuỗi Python có thể được định nghĩa theo nhiều cách khác nhau: dấu ngoặc đơn hoặc dấu ngoặc kép, nhưng cũng có thể là 3 dấu ngoặc. Sử dụng ba dấu ngoặc đơn hoặc ba dấu ngoặc kép cho phép tính đến ngắt dòng khi hiển thị chuỗi.
Bạn có thể gán một chuỗi Python cho một biến để tối ưu hóa mã của mình và tránh quá tải nó bằng các chuỗi dài sẽ lặp lại trong toàn bộ mã. Chỉ cần hiển thị một chuỗi Python bằng hàm print().
Cảnh báo: nếu bạn muốn hiển thị một chuỗi chứa dấu ngoặc đơn hoặc dấu ngoặc kép, SyntaxError sẽ được trả về.
Python là ngôn ngữ lập trình nhất định bạn cần biết nếu muốn trở thành một chuyên gia trong ngành. Sở dĩ như vậy bởi Python hiện được dùng trong rất nhiều ứng dụng, phần mềm, web và nhiều hơn thế nữa. Thực tế, học Python không khó. Bạn chỉ cần nắm vững các hàm cơ bản và 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'

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().
Các ngoại lệ của str() trong Python
Hiện có 6 kiểu lỗi phát sinh từ hàm này:
- strict (default): Nó sinh lỗi UnicodeDecodeError.
- Ignore: Nó bỏ qua Unicode unencodable.
- Replace: Nó thay thế Unicode không thể mã hóa bằng dấu hỏi.
- xmlcharrefreplace: Nó chèn tham chiếu ký tự XML thay vì Unicode không thể mã hóa.
- backslashreplace: Chèn một chuỗi \uNNNN Espace thay vì Unicode không thể mã hóa.
- Namereplace: Chèn một chuỗi thoát \N{…} thay vì Unicode không thể mã hóa.
Ví dụ:
# Python program to demonstrate
# str()
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ự Z sẽ sinh lỗi vì nó không thể được giải mã bởi ASCII. Thế nhưng nó sẽ bị bỏ qua vì lỗi được đặt dưới dạng ignore.
Bạn nên đọc
-
Hàm memoryview() trong Python
-
Hàm abs() trong Python: Trả về giá trị tuyệt đối của một số
-
Hàm hash() trong Python
-
Tìm hiểu Class và Object trong Python
-
Hàm reversed() trong Python
-
Tìm hiểu chương trình Python đầu tiên
-
Lệnh pass trong Python
-
Lập trình hướng đối tượng trong Python
-
Hàm set() trong Python
Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:


Cũ vẫn chất
-
Bài tập C++ có lời giải (code mẫu)
Hôm qua 2 -
Mã lệnh GTA Vice City, cheat Grand Theft Auto: Vice City
Hôm qua 7 -
58 câu ca dao, tục ngữ, thành ngữ về cuộc sống ẩn chứa những bài học ý nghĩa
Hôm qua -
Câu nói hay về ăn uống, stt về ăn uống hay và hài hước
Hôm qua 1 -
Các màu trái tim trên Messenger có ý nghĩa gì?
Hôm qua 2 -
Cách tưởng nhớ trên Facebook
Hôm qua -
Bạn có biết ý nghĩa của những biểu tượng emoticon mà chúng ta hay dùng?
Hôm qua 1 -
Cách mở tab ẩn danh trên Chrome, Cốc Cốc, Firefox,...
Hôm qua -
P/S là gì? P/S thường dùng khi nào?
Hôm qua -
Ca dao, tục ngữ, thành ngữ về tiết kiệm
Hôm qua