Cách Dùng Kiểu Dữ Liệu Chuỗi String Trong Python (Phần 1)
Trong những bài viết trước, chúng ta đã tìm hiểu về các kiểu dữ liệu trong Python như Dict, List, Tuble… Tiếp theo, hãy cùng MCI tìm hiểu về kiểu dữ liệu chuỗi (string) trong python nhé. Đây là một kiểu dữ liệu xuất hiện rất nhiều trong dữ liệu thực tế công việc và không chỉ được sử dụng trong Python mà còn rất nhiều ngôn ngữ lập trình khác.
Nội dung bài viết
Trong những bài viết trước, chúng ta đã tìm hiểu về các kiểu dữ liệu trong Python như Dict, List, Tuble… Tiếp theo, hãy cùng MCI tìm hiểu về kiểu dữ liệu chuỗi (string) trong python nhé. Đây là một kiểu dữ liệu xuất hiện rất nhiều trong dữ liệu thực tế công việc và không chỉ được sử dụng trong Python mà còn rất nhiều ngôn ngữ lập trình khác.
String trong python là gì?
String trong python là một kiểu dữ liệu dạng chuỗi với các dữ liệu được sắp xếp để thể hiện và lưu thông tin dưới dạng chuỗi ký tự hay văn bản. Chính vì đã được sắp xếp, nên string trong python là một kiểu dữ liệu bất biến, tức là khi đã được tạo, chúng không thể thay đổi, do vậy tất cả các thao tác với string đều tạo ra một đối tượng khác. Mỗi string được có một địa chỉ lưu trữ trên bộ nhớ.
Cách gán kiểu dữ liệu string cho một biến trong python
Để gán kiểu dữ liệu string trong python cho một biến hay khai báo kiểu dữ liệu string, chúng ta có thể sử dụng cặp dấu nháy kép (“...”) hoặc cặp dấu nháy đơn (‘...’) một cách vô cùng linh hoạt, cùng xem xét ví dụ dưới đây để biết tại sao nhé.
str1= ‘Hello my friends!’
str2= “Hello my friends!”
str3= “I'm MCI"
str4= ‘This is “Mac"! ’
str5= “““Hello my friends!
How it going?”””
print(str1)print(str2)print(str3)print(str4)print(str5)
Kết quả thu được sẽ là:
Hello my friends!
Hello my friends!
I'm MCI
This is “Mac"!
Hello my friends!
How it going?
Trong ví dụ này chúng ta có thể thấy rằng:
- Khai báo hay gán giá trị cho str1 và str2 sử dụng dấu nháy kép và nháy đơn trả về kết quả như nhau.
- Trường hợp trong nội dung của string có chứa dấu nháy đơn (như str3) thì chúng ta sử dụng nháy kép để khai báo và nếu string chứa dấu nháy kép (như str4) thì sử dụng nháy đơn để khai báo.
- Nếu muốn trả về kết quả chuỗi string trong python trên nhiều dòng khác nhau (như str5) thì chúng ta sử dụng cặp 3 dấu nháy kép (“““...”””)
Cách truy cập các giá trị trong string
Như đã nói ở phần đầu, mỗi string bao gồm một chuỗi các kí tự được sắp xếp, mỗi string được lưu trữ tại 1 vị trí nhất định trong bộ nhớ. Trong Python không có kiểu dữ liệu kí tự, mỗi kí tự sẽ được hiểu là một string với độ dài bằng 1. Các kí tự trong string được đánh chỉ mục bắt đầu từ 0.
Ví dụ ta có str = “HELLO MY FRIENDS!”
Vậy các kí tự và vị trí được sắp xếp của chúng sẽ như hình dưới đây:
Như vậy, nếu bạn cần truy cập kí tự nào trong string thì sẽ dựa trên chỉ mục của kí tự đó. ví dụ:
- Cần truy cập vào chuỗi kí tự “HELLO", cú pháp: str[0:4]
- Cần truy cập kí tự “M", cú pháp: str[6]
- Cần truy cập tất cả các kí tự từ kí tự “M" trở đi, cú pháp: str[6: ]
- Cần truy cập vào tất cả các kí tự từ đầu cho đến kí tự “M", cú pháp: str[ :6]
Ngoài ra, bạn cũng có thể truy cập vào các giá trị trong string trong python bằng các chỉ mục âm với cú pháp tương tự như trên. Chỉ khác biệt duy nhất là các kí tự sẽ được đánh chỉ mục âm từ cuối lên đầu giống như hình dưới đây:
Ví dụ: Cần truy cập vào chuỗi kí tự “HELLO", cú pháp: str[-16:-12]
Cách cập nhật giá trị cho chuỗi
String trong python là bất biến, vì vậy bạn không thể cập nhật giá trị cho một chuỗi mà không làm thay đổi chuỗi. Thay vào đó, chúng ta có thể tạo một chuỗi khác với các thông tin đã được cập nhật.
Ví dụ:
str1 = ‘Hello’
str2 = str1+ ‘MCI’
print(str2)
>>> kết quả trả về là:
Hello MCI
Các toán tử trong string trong python
Toán tử | Mô tả & cách thức hoạt động | Ví dụ |
+ | Nối (concatenate) 2 string với nhau để tạo thành một string mới. | "Hello" +"MCI" ==> "Hello MCI" |
* | Tạo một string mới bằng cách nối (concatenate) nhiều lần bản sao chép của một string. | "MCI"*2 ==> "MCIMCI" |
[] | Truy cập và trả về ký tự tại vị trí cho bởi chỉ số. | x = "Hello" x[1] ==> "e" |
[ : ] | Trả về một chuỗi con bao gồm các ký tự trong phạm vi (range) | x = "Hello" x[1:4] ==> "ell" x[1: ] ==> "ello" |
in | Trả về True nếu ký tự tồn tại trong string đã cho. | x = "Hello" 'H' in x ==> True |
not in | Trả về True nếu ký tự không tồn tại trong string đã cho. | x = "Hello" 'M' not in x ==> True |
r/R | Chuỗi thô (Raw String) - Ngăn chặn ý nghĩa thực tế của các ký tự thoát (Escape character). Cú pháp cho chuỗi thô giống chuỗi thông thường ngoại trừ "toán tử chuỗi thô", chữ "r" đứng trước dấu ngoặc kép. "R" có thể là chữ thường (r) hoặc chữ hoa (R) và phải được đặt ngay trước dấu trích dẫn đầu tiên. | print (r'\n\t') ==> \n\t print (R'\n\t') ==> \n\t |
% | Định dạng string |
Ngoài ra, bạn cũng có thể tìm đọc về các toán tử quan trọng trong python thông qua bài viết trước của chúng tôi tại đây.
Các phương thức và hàm thông dụng trong string [phần 1]
Phương thức | Cách thức hoạt động & cú pháp | Ví dụ |
Capitalize() | Viết hoa kí tự đầu tiên trong chuỗi. Cú pháp: string.capitalize() |
x = ‘mci’ print(x.capitalize()) >>>Kết quả: Mci |
Center() | Trả về chuỗi được hiển thị ở giữa của một chuỗi. Cú pháp: string.center(len, char) Trong đó: string là chuỗi cần chuyển đổi. len là số lượng ký tự của chuỗi mới. Nếu len nhỏ hơn số lượng ký tự của chuỗi thì hàm sẽ trả về chuỗi ban đầu. char là ký tự sẽ hiển thị ở 2 bên chuỗi cũ. Nếu bạn không điền char, mặc định nó sẽ là khoảng trắng. Đếm số lượng ký tự trong chuỗi. Cú pháp: string.count(sub, start, end) Trong đó: sub là chuỗi/kí tự cần đếm start là chỉ số bắt đầu của chuỗi cần đếm. start mặc định bằng 0 end là chỉ số kết thúc của chuỗi cần đếm. Mặc định thì end = len() của chuỗi. |
x=’hellomci’ print(x.count(“l", ,3)) >>> Kết quả = 1 print(x.count(“l", , )) >>> Kết quả = 2 |
encode() | Hàm mã hoá một string trong python. Cú pháp: string.encode(type, mode) Trong đó: type là kiểu mã hoá của string. Mặc định sẽ là utf-8 mode là chế độ báo lỗi nếu có khi mã hoá. Python có 6 dạng mode như sau: strict - hiển thị lỗi dưới UnicodeDecodeError exception. Đây là chế độ mặc định. ignore - bỏ qua tất cả các lỗi nếu có. replace - nó sẽ thay thế lỗi bằng dấu ?. xmlcharrefreplace - chèn tham chiếu XML. backslashreplace - Chèn chuỗi \uNNNN. namereplace - Chèn chuỗi \N{...}. |
x=”hellomci” print(x.encode()) >>> Kết quả là: b ‘hellomci' |
decode() | Giải mã hoá một string trong python. Cú pháp: string.decode(type, mode) type và mode giống với định nghĩa trong hàm encode |
x=b ‘hellomci' print(x.decode()) >>> Kết quả là: hello mci |
endswith() | Kiểm tra xem chuỗi hoặc chuỗi con của chuỗi có kết thúc bằng ký tự nào đó hay không. Nó sẽ trả về True nếu điều kiện đúng và False nếu điều kiện sai. Cú pháp: string.endswith(str, start, end) Trong đó: str là chuỗi/chuỗi con/kí tự cần kiểm tra xem có phải là chuỗi kết thúc không start là chỉ số bắt đầu chuỗi (mặc định bằng 0) end là chỉ số kết thúc của chuỗi (mặc định bằng len() của chuỗi) |
x=’hellomci' print(x.endswith(“o", ,5)) >>> Kết quả: True |
expandtabs() | Tìm kiếm thay thế \t bằng các ký tự khoảng trắng. Cú pháp: string.expandtabs(len) len là số lượng khoảng trắng thay thế cho một \t. len mặc định bằng 8. |
x=’hellomci\goodluck' print(expandtabs(4)); >>> Kết quả là: hellomci goodluck (dấu “\” giữa hellomci và goodluck được thay bằng 4 dấu cách (khoảng trắng)) |
find() | Tìm kiếm một chuỗi trong một chuỗi hoặc chuỗi con và trả về là vị trí bắt đầu của chuỗi tìm được nếu tìm thấy và trả về -1 nếu không tìm thấy. Cú pháp: string.find(str, start, end) Trong đó: str là chuỗi/chuỗi con cần tìm vị trí start là chỉ số bắt đầu chuỗi (mặc định bằng 0) end là chỉ số kết thúc của chuỗi (mặc định bằng len() của chuỗi) |
x=’hellomci' print(x.find(“mci")) >>> Kết quả là: 5 |
index() | Chức năng và cú pháp giống hàm find(), chỉ khác 1 điểm duy nhất là nếu không tìm thấy thì nó sẽ gọi ra exception. Cú pháp: string.index(str, start, end) |
x=’hellomci' print(x.index(“vietnam")) >>>Kết quả: ValueError: substring not found |
Còn rất nhiều hàm mà chúng ta thường sử dụng khi thao tác với kiểu dữ liệu chuỗi - string trong python, cùng tìm hiểu trong phần tiếp theo nhé!
Các khóa học
- Data Engineer Track Specialized
- Combo Data Engineering Professional Hot
- Advanced AWS Cloud Data Engineer Specialized
- AWS Data Engineer for Beginners Specialized
- Combo Python Level 1 & Level 2 Bestseller
- Business Intelligence Track Hot
- Data Science Track Bestseller
- Data Analyst Professional (Data Analyst with Python Track) Bestseller
- RPA UiPath Nâng Cao: Chiến Thuật Automation Cho Chuyên Gia Specialized
- RPA UiPath cho Người Mới Bắt Đầu: Thành Thạo Automation Chỉ Trong 1 Ngày Specialized
- Business Analyst Fast Track Bestseller
- Combo Business Analyst Level 1 & Level 2 Bestseller
- Business Analyst for Beginners Bestseller
Đăng ký tư vấn khóa học
*Vui lòng nhập số điện thoại của bạn
*Vui lòng nhập họ tên của bạn
*Vui lòng chọn giới tính
*Vui lòng chọn 1 trường