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.

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:

Cách các kí tự trong string trong python được đánh chỉ số

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:

chi so am trong string trong python
Đặc chỉ số âm cho các kí tự trong chuỗi

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 độngVí 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”
inTrả về True nếu ký tự tồn tại trong string đã cho.x = “Hello”
‘H’ in x ==> True
not inTrả về True nếu ký tự không tồn tại trong string đã cho.x = “Hello”
‘M’ not in x ==> True
r/RChuỗ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
Các toán tử string trong python

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ứcCách thức hoạt động & cú phápVí 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ác hàm thường dùng với string trong python

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é!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *