Định nghĩa chuỗi trong python

Thao tác với chuỗi ký tự thường rất hay được sử dụng trong Python. Có khá nhiều bài toán hay ho áp dụng các giải thuật để thao tác với chuỗi ký tự. Hôm nay chúng ta sẽ cùng nhau tìm hiểu rõ hơn về kiểu chuỗi ký tự nhé.

Nội dung của bài

  • 1 Giới thiệu về kiểu String
  • 2 Escape Character hay được sử dụng trong Python
  • 3 Các phép toán trên kiểu string
  • 4 Toán tử định dạng string (String Formatting Operator)
  • 5 Phương thức xử lý chuỗi trong Python
  • 6 Kết luận

Giới thiệu về kiểu String

Kiểu string được biểu diễn đa dạng trong Python, như đã nói ở bài kiểu dữ liệu trong Python. Chúng ta có thể sử dụng như sau:

greeting = "Hello World!"
greeting1 = 'Hello World'
greeting2 = '''Hello World'''
greeting3 = """Hello World"""

Ngoài ra chúng ta có thể sử dụng cả nháy đơn và nháy kép: greeting4 = ‘Hello “World!”‘. Nếu muốn trình bày một đoạn văn bản có định dạng: I am “Bob” chúng ta có thể khai báo như sau: “I am \”Bob\””. Tương tự với I am ‘Bob’ chúng ta khai báo: ‘I am \’Bob\”. Ở đây \’ và \” được gọi là escape character biểu diễn ký tự ‘ và “.

Escape Character hay được sử dụng trong Python

Escape CharacterMô tả\\Biểu diễn ký tự \, ví dụ print(“a\\b”) kết quả trả ra là a\b\nKý tự xuống dòng, ví dụ: print(“Hello \nPython”), kết quả trả về là:
Hello
Python\rDi chuyển con trỏ về đầu dòng, ví dụ: print(“Bob! \rHello”), kết quả trả về là:
Hello\tBiểu diễn tab, ví dụ: print(“Hello\tPython!”), kết quả trả về là: Hello Python!\bLùi lại 1 dấu space, ví dụ print(“Hello \bPython”), kết quả trả về là: HelloPython\oooBiểu diễn ký tự dạng cơ số 8, ví dụ: print(“”\110\145\154\154\157”), kết quả trả về là: Hello\xhhBiểu diễn ký tự cơ số 16, ví dụ: print(“\x48\x65\x6c\x6c\x6f”), kết quả trả về là: Hello

Muốn bỏ qua các escape character chúng ta có thể đặt r hoặc R ở trước string, để trình thông dịch hiểu là chúng ta muốn bỏ tác dụng của escape character giữ nguyên string như khai báo (raw string).

Ví dụ:

print(r'Hello \nWorld!')
Hello \nWorld!

Các phép toán trên kiểu string

Trong Python, có một số toán tử đặc biệt dưới đây:

Toán tửMô tảVí dụ+Nối (concatenate) 2 string, tạo thành một string mới.“Hello” +”Python”
Kết quả trả về:
“Hello Python”*Tạo một string mới bằng cách nối (concatenate) nhiều lần bản copy của cùng môt string.“Hello”*2
Kết quả trả về:
“HelloHello”[]Trả về ký tự tại vị trí cho bởi chỉ số.a = “Hello”
a[1] ==> “e”[ : ]Trả về một chuỗi con chứa các ký tự cho bởi phạm vi (range)a = “Hello”
a[1:4] ==> “ell”
a[1: ] ==> “ello”inTrả về True nếu ký tự tồn tại trong string đã cho.a = “Hello”
‘H’ in a ==> Truenot inTrả về True nếu ký tự không tồn tại trong string đã cho.a = “Hello”
‘M’ not in a ==> Truer/RGiữ nguyên string và bỏ qua tác dụng của escape characterTham khảo phần trên.%Định dạng stringXem rõ hơn ở phần dưới.

Toán tử định dạng string (String Formatting Operator)

Một trong những điểm thú vị nhất trong Python đó là toán tử định dạng string %. Hãy xem ví dụ dưới đây

print("My name is %s and weight is %d kg!" % ('Bob', 65))
My name is Bob and weight is 65 kg!

Danh sách ký tự định dạng trong Python

Ký tự định dạngMô tả%cKý tự, ví dụ: print(“abccb%c” % (‘a’)), kết quả trả về là abccba%sChuỗi, có thể xem ví dụ bên trên%iSố nguyên có dấu%dSố nguyên có dấu%uSố nguyên không dấu%oSố nguyên cơ số 8%x,%XSố nguyên cơ số 16%e % EBiễu diễn dạng khoa học%fSố thực

Ngoài ra chúng ta cũng có thể format string theo 2 cách dưới đây. Đầu tiên hãy thử sử dụng hàm .format() như ví dụ dưới đây

print("My name is {1} and weight is {0} kg!".format(20, "Bob"))

print("My name is {0} and weight is {1} kg!".format("Bob", 20))

Khi sử dụng hàm format() chúng ta sẽ tạo ra các placeholder có thứ tự bắt đầu từ 0.

Python version 3.6 trở nên cung cấp cho chúng ta một phương thức nữa như sau:

name, weight = "Bob đẹp trai", 65
print(f"My name is {name} and weight is {weight} kg!")

My name is Bob đẹp trai and weight is 65 kg!

Chúng ta sử dụng ký tự f ở đầu chuỗi các giá trị muốn đưa vào sẽ đặt trong cặp ký tự {}

Phương thức xử lý chuỗi trong Python

MethodsMô tảCách dùngcapitalize()Viết hoa các chữ cái đầu tiên của từ đầu tiên, các từ còn lại viết thường.>>>greeting = “hello world”
>>>greeting.capitalize()
‘Hello world’center(width, fillchar)Nếu string có độ dài nhỏ hơn width thì sẽ thêm vào 2 đầu của string các kỹ tự fillchar, mặc định fillchar là một dấu cách>>>greeting = “hello world”
>>> greeting.center(12, ‘-‘)
hello world-
>>>greeting.center(13, ‘-‘)
-hello world-count(str, begin, end=len(string))Tìm số lần xuất hiện của một ký tự hoặc một chuỗi nhỏ trong chuỗi lớn, có thể định nghĩa vị trí bắt đầu và kết thúc.>>>greeting = “hello world”
>>>greeting.count(“l”)
3upper()Chuyển tất cả các ký tự về dạng ký tự hoa>>>greeting = “Hello World!”
>>>greeting.upper()
HELLO WORLD!lower()Chuyển tất cả các ký tự về dạng ký tự thường>>>greeting = “Hello World!”
>>>greeting.upper()
hello world!title()Viết hoa ký tự đầu tiên của mỗi từ>>>greeting = “hello world”
>>>greeting.title()
Hello Worldlstrip()Cắt khoảng trống ở lề trái của string>>>greeting = ” hello world “
>>>greeting.lstrip()
‘hello world ‘rstrip()Cắt khoảng trống ở lề phải của string>>>greeting = ” hello world “
>>>greeting.rstrip()
‘ hello world’strip()Cắt khoảng trống ở hai đầu của string (thực hiện 2 lệnh rstrip() và lstrip() )>>>greeting = ” hello world “
>>>greeting.strip()
‘hello world’find(str, begin=0, end = len(string))Tìm chuỗi con trong chuỗi lớn, trả ra vị trí của chuỗi con nếu tồn tại, trả ra -1 nếu không tồn tại.>>>greeting = “hello world”
>>>greeting.find(‘el’)
1
>>>greeting.find(‘lol’)
-1index(str, begin=0, end = len(string))Tương tự như find, nhưng sẽ trả ra ngoại lệ nếu chuỗi con không tồn tại.>>>greeting = “hello world”
>>>greeting.index(“el0”)
Traceback (most recent call last):
File “”, line 1, in
ValueError: substring not foundsplit()Cắt chuỗi ra các từ>>>greeting = “Hello World!”
>>>greeting.split()
[‘Hello’, ‘World!’]

Kết luận

Kiểu string trong Python rất thú vị và nhiều phương thức có sẵn, giúp chúng ta dễ dàng xử lý các bài toán liên quan đến string. Hy vọng các bạn sẽ thực hành nhiều và đừng quên chia sẻ, đặt câu hỏi nếu còn điều gì cần làm rõ nhé.