Kiểu chuỗi trong Python

Kiểu chuỗi trong Python

1. Các chuỗi trong Python

1.1. Tạo chuỗi

Các chuỗi trong Python được bao quanh bởi dấu nháy kép (dấu ngoặc kép) hoặc dấu nháy đơn.

'hello' cũng giống như "hello".

Bạn có thể hiển thị một chuỗi ký tự bằng hàm print().

Ví dụ:

# Bạn có thể sử dụng dấu nháy kép hoặc nháy đơn

print("Hello")
print('Hello')

Kết quả:

Hello
Hello

1.2. Gán chuỗi cho biến

Việc gán một chuỗi cho biến được thực hiện với tên biến theo sau là dấu bằng và chuỗi.

Ví dụ:

a = "Hello"
print(a)

Kết quả:

Hello

1.3. Chuỗi nhiều dòng

Bạn có thể gán một chuỗi nhiều dòng cho một biến bằng cách sử dụng ba dấu nháy đơn hoặc ba dấu nháy kép.

Ví dụ: sử dụng ba dấu nháy kép

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""

print(a)

Kết quả:

Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.

Ví dụ: sử dụng ba dấu nháy đơn

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''

print(a)

Kết quả:

Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.

1.4. Chuỗi là mảng

Giống như nhiều ngôn ngữ lập trình khác, chuỗi trong Python là các mảng byte đại diện cho các ký tự unicode.

Tuy nhiên, Python không có kiểu dữ liệu ký tự, một ký tự đơn giản chỉ là một chuỗi có độ dài là 1.

Dấu ngoặc vuông có thể được sử dụng để truy cập các phần tử (các kí tự) của chuỗi.

Ví dụ: lấy kí tự ở vị trí 1 (hãy nhớ rằng ký tự đầu tiên có vị trí 0).

a = "Hello, World!"
print(a[1])

Kết quả:

e

1.5. Lặp qua một chuỗi

Vì chuỗi là mảng, chúng ta có thể lặp qua các kí tự trong một chuỗi, bằng vòng lặp for.

Ví dụ: lặp lại các chữ cái trong từ "banana"

for x in "banana":
    print(x)

Kết quả:

b
a
n
a
n
a

1.6. Chiều dài chuỗi

Để lấy chiều dài của một chuỗi, hãy sử dụng hàm len().

Ví dụ: hàm len() trả về chiều dài của một chuỗi

a = "Hello, World!"
print(len(a))

Kết quả:

13

1.7. Kiểm tra chuỗi tồn tại trong chuỗi khác

Để kiểm tra xem một chuỗi có tồn tại trong một chuỗi khác hay không, chúng ta sử dụng từ khóa in.

Ví dụ: kiểm tra xem chuỗi "free" có trong chuỗi sau hay không

txt = "The best things in life are free!"
print("free" in txt)

Kết quả:

True

Nó hay được dùng trong câu lệnh if.

Ví dụ: chỉ in ra thông báo nếu chuỗi có chứa "free"

txt = "The best things in life are free!"
if "free" in txt:
  print("Yes, 'free' is present.")

Kết quả:

Yes, 'free' is present.

1.8. Kiểm tra chuỗi không tồn tại trong chuỗi khác

Để kiểm tra một chuỗi không có trong một chuỗi khác, chúng ta có thể sử dụng từ khóa not in.

Ví dụ: kiểm tra xem "expensive" có không nằm trong văn bản sau hay không

txt = "The best things in life are free!"
print("expensive" not in txt)

Kết quả:

True

Ví dụ: sử dụng not in trong lệnh if

txt = "The best things in life are free!"
if "expensive" not in txt:
  print("Yes, 'expensive' is NOT present.")

Kết quả:

Yes, 'expensive' is NOT present.

2. Cắt lát chuỗi

2.1. Cắt trong vùng bất kỳ

Bạn có thể trả về một lát (một phần) của một chuỗi bằng cách sử dụng cú pháp "lát cắt".

Chỉ định vị trí bắt đầu và vị trí kết thúc của lát cần cắt, được phân cách bằng dấu hai chấm, để trả về một phần của chuỗi.

Ví dụ: trả về chuỗi gồm các kí tự từ vị trí 2 đến (không gồm) vị trí 5

b = "Hello, World!"
print(b[2:5])

Kết quả:

llo

2.2. Cắt từ đầu

Bằng cách bỏ đi vị trí đầu tiên, ta cắt từ đầu chuỗi đến (không gồm) vị trí cuối trong cú pháp "lát cắt".

Ví dụ: lấy các kí tự từ đầu đến (không bao gồm) vị trí 5

b = "Hello, World!"
print(b[:5])

Kết quả:

Hello

2.3. Cắt đến cuối

Bằng cách loại bỏ vị trí cuối cùng, ta cắt từ vị trí đầu cho đến cuối chuỗi.

Ví dụ: lấy các kí tự từ vị trí 2 đến cuối

b = "Hello, World!"
print(b[2:])

Kết quả:

llo, World!

2.4. Vị trí âm

Sử dụng các vị trí âm để bắt đầu cắt từ cuối chuỗi.

Ví dụ:

Nhận các kí tự từ:

  • "o" (vị trí -5) đến (không bao gồm)
  • "d" (vị trí -2)
b = "Hello, World!"
print(b[-5:-2])

Kết quả:

orl

3. Sửa đổi chuỗi

Python có một tập hợp các phương thức tích hợp sẵn mà bạn có thể sử dụng để sửa đổi chuỗi.

Tất cả các phương thức này không thực sự sửa đổi chuỗi hiện tại, mà tạo ra chuỗi mới với những thay đổi.

3.1. Chuyển thành chữ hoa

Ví dụ: phương thức upper() trả về chuỗi mới là chuỗi gốc nhưng toàn bộ các kí tự đã viết hoa

a = "Hello, World!"
print(a.upper())
print(a)

Kết quả:

HELLO, WORLD!
Hello, World!

Như bạn thấy bản thân chuỗi a không bị thay đổi.

3.2. Chuyển thành chữ thường

Ví dụ: phương thức lower() trả về chuỗi mới là chuỗi gốc nhưng toàn bộ các kí tự đã viết thường

a = "Hello, World!"
print(a.lower())
print(a)

Kết quả:

hello, world!
Hello, World!

3.3. Xóa khoảng trắng hai đầu

Ví dụ: phương thức strip() loại bỏ các khoảng trắng ở hai đầu của chuỗi

a = " Hello, World! "
print(a.strip())  # trả về "Hello, World!"

Kết quả:

Hello, World!

3.4. Thay thế

Ví dụ: phương thức replace() thay thế một chuỗi con bằng một chuỗi khác

a = "Hello, World!"
print(a.replace("H", "J"))

Kết quả:

Jello, World!

3.5. Tách chuỗi

Phương thức split() trả về một danh sách nơi văn bản giữa các kí tự tách (separator) trở thành các phần tử của danh sách.

Ví dụ: split() tách chuỗi thành nhiều chuỗi con phân cách nhau bởi kí tự ",".

a = "Hello, World!"
b = a.split(",")
print(b)

Kết quả:

['Hello', ' World!']

4. Kết nối chuỗi

Để kết nối nhiều chuỗi với nhau, cách đơn giản nhất là sử dụng toán tử +.

Ví dụ: nối chuỗi a với chuỗi b để tạo thành chuỗi c.

a = "Hello"
b = "World"
c = a + b
print(c)

Kết quả:

HelloWorld

Ví dụ: để thêm khoảng trống vào giữa, hãy cộng thêm kí tự khoảng trắng " ":

a = "Hello"
b = "World"
c = a + " " + b
print(c)

Kết quả:

Hello World

5. Định dạng chuỗi

Như chúng ta đã học, chúng ta không thể kết hợp chuỗi và số như sau:

age = 36
txt = "My name is John, I am " + age
print(txt)

Kết quả:

Traceback (most recent call last):
  File "demo_string_format_error.py", line 2, in <module>
    txt = "My name is John, I am " + age
TypeError: must be str, not int

Nhưng chúng ta có thể kết hợp chuỗi và số bằng cách sử dụng phương thức format().

Ví dụ: sử dụng phương thức format() để chèn số vào chuỗi

age = 36
txt = "My name is John, and I am {}"
print(txt.format(age))

Kết quả:

My name is John, and I am 36

Phương thức format() nhận số lượng đối số không giới hạn và sẽ được đặt vào các trình giữ chỗ {} tương ứng.

Ví dụ:

quantity = 3
itemno = 567
price = 49.95
myorder = "I want {} pieces of item {} for {} dollars."
print(myorder.format(quantity, itemno, price))

Kết quả:

I want 3 pieces of item 567 for 49.95 dollars.

Mặc định các đối số được đặt vào các trình giữ số theo thứ tự truyền vào format(). Bạn có thể đặt chỉ số của đối số vào trình giữ chỗ, chẳng hạn {0} để tùy chỉnh vị trí đối số được chèn vào trình giữ chỗ này.

Ví dụ:

quantity = 3
itemno = 567
price = 49.95
myorder = "I want to pay {2} dollars for {0} pieces of item {1}."
print(myorder.format(quantity, itemno, price))

Kết quả:

I want to pay 49.95 dollars for 3 pieces of item 567

6. Kí tự thoát

Để chèn các kí tự không hợp lệ (không được phép chèn trực tiếp) trong một chuỗi, hãy sử dụng một kí tự thoát.

Kí tự thoát là dấu gạch chéo ngược \ theo sau là kí tự bạn muốn chèn.

Ví dụ về một kí tự không hợp lệ là một dấu ngoặc kép (") bên trong một chuỗi được bao quanh bởi dấu ngoặc kép.

Ví dụ: bạn sẽ gặp lỗi nếu sử dụng dấu ngoặc kép bên trong một chuỗi được bao quanh bởi dấu ngoặc kép.

txt = "We are the so-called "Vikings" from the north."

Kết quả:

  File "demo_string_escape_error.py", line 1
    txt = "We are the so-called "Vikings" from the north."
                                       ^
SyntaxError: invalid syntax

Để khắc phục sự cố này, hãy sử dụng kí tự thoát "\".

Ví dụ: ký thự thoát cho phép bạn sử dụng dấu ngoặc kép khi bình thường bạn không được phép.

txt = "We are the so-called \"Vikings\" from the north."
print(txt)

Kết quả:

We are the so-called "Vikings" from the north.

Đây là danh sách các ký tự thoát khác được sử dụng trong Python:

Kết quả
\'Dấu nháy đơn
\\Dấu gạch chéo ngược
\nDấu xuống dòng
\tDấu tab
\bXóa ngược
\ooooo là mã octal của ký tự cần chèn
\xhhhh là mã hexa của ký tự cần chèn

7. Tra cứu danh sách các phương thức của chuỗi

Để tra cứu tất cả các phương thức của chuỗi bạn có thể truy cập địa chỉ sau: https://www.w3schools.com/python/python_ref_string.asp