Xử lý văn bản là một công việc quan trọng trong các ứng dụng hiện đại. Kiến thức về kiểu chuỗi sẽ giúp bạn giải quyết các vấn đề liên quan đến văn bản.
Mục lục
Kiểu dữ liệu chuỗi
Chuỗi đơn giản
Chuỗi ký tự (string) là một kiểu dữ liệu phổ biến trong Python, có thể là một từ hoặc một đoạn văn bản. Trong Python, chuỗi được đánh dấu bằng dấu nháy đơn hoặc nháy kép. Ví dụ:
first_name = "Nguyễn"
middle_name = 'Văn'
last_name = 'A'
Khi muốn đưa dấu nháy đơn hoặc nháy kép vào trong chuỗi, có hai cách:
Cách 1: Đóng mở chuỗi bằng dấu khác với loại dấu nháy cần đưa vào chuỗi.
speech = 'Một chuyên gia nói: "Python hiện là ngôn ngữ được nhiều người tìm hiểu nhất hiện nay"'
sentence = "It's my car"
Cách 2: Sử dụng dấu gạch chéo , dấu này giúp Python nhận biết là phải bỏ qua ngữ nghĩa của ký tự ngay sau.
example = "Trong một câu có thể có nhiều dấu " và dấu ' với số lượng tùy ý"
Chuỗi ký tự nhiều dòng
Python cũng hỗ trợ chuỗi ký tự nhiều dòng bằng cách bắt đầu và kết thúc chuỗi bằng 3 dấu nháy kép “””. Ví dụ:
chuoi_nhieu_dong = """
Một chuyên gia phát biểu:
- "Python là ngôn ngữ được yêu thích nhất hiện nay".
Chuyên gia này phát biểu tại Ngày hội Trí tuệ nhân tạo 2019.
"""
Chúng ta cũng có thể sử dụng chuỗi ký tự nhiều dòng khi ghi chú code. Trong Python, chúng ta sử dụng dấu # để ghi chú thông tin, và dùng nhiều dấu # để ghi chú nhiều dòng.
# Khóa học Python từ A đến Z
# Bài số 3: Kiểu dữ liệu chuỗi.
# Ví dụ 1: In ra chuỗi "Hello world"
loi_chao = "Hello world"
print(loi_chao)
Nếu đoạn ghi chú dài, chúng ta có thể sử dụng chuỗi đa dòng để ghi chú.
"""
Khóa học Python từ A đến Z
Bài số 3: Kiểu dữ liệu chuỗi.
Ví dụ 1: In ra chuỗi "Hello world"
"""
loi_chao = "Hello world"
print(loi_chao)
Thao tác với các biến kiểu chuỗi
Nối chuỗi
Chúng ta có thể nối các chuỗi thông qua toán tử +. Ví dụ:
first_name = "Nguyễn"
middle_name = 'Văn'
last_name = "A"
full_name = first_name + " " + middle_name + " " + last_name
print(full_name) # Kết quả là Nguyễn Văn A
Chú ý, toán tử nối chuỗi chỉ hoạt động với các thành phần là chuỗi. Nếu bạn muốn nối chuỗi với một biến số, bạn cần chuyển đổi biến số sang kiểu chuỗi bằng hàm str().
age = 35
print("Tuổi của bạn là: " + str(age))
Độ dài của chuỗi
Đôi khi chúng ta muốn xác định độ dài của một chuỗi để có thể cắt, xử lý cho phù hợp. Trong Python, chúng ta sử dụng hàm len() để xác định độ dài chuỗi.
title = "Kiểu dữ liệu chuỗi ký tự và định dạng chuỗi trong Python"
print(len(title)) # Kết quả là 56
Một số phương thức thao tác chuỗi có sẵn
Mọi chuỗi trong Python đều là đối tượng str và có các phương thức nội tại để thao tác với chuỗi. Một số phương thức thông dụng bao gồm:
- isalpha: trả về true nếu chuỗi chỉ chứa các chữ cái A-Z và a-z.
- isnumeric: trả về true nếu chuỗi chỉ chứa các chữ số 0-9.
- lower: chuyển tất cả các chữ cái trong chuỗi thành chữ thường.
- upper: chuyển tất cả các chữ cái trong chuỗi thành chữ hoa.
- find(x, [y.z]): trả về số lần chuỗi x được tìm thấy trong chuỗi gốc, tùy chọn [y.z] giới hạn vị trí tìm kiếm, trả về -1 nếu không tìm thấy.
- replace(x, y): thay thế chuỗi x thành chuỗi y trong chuỗi gốc.
Ví dụ:
my_name = "Nguyen Van A"
print(my_name.isalpha()) # trả về true
print(my_name.isnumeric()) # trả về false
print(my_name.lower()) # trả về nguyen van a
print(my_name.upper()) # trả về NGUYEN VAN A
print(my_name.find("an")) # trả về 1
print(my_name.replace("Nguyen", "Tran")) # trả về Tran Van A
Định dạng chuỗi
Định dạng với F-string
Định dạng f-string khá đơn giản khi sử dụng. Để sử dụng f-string, chỉ cần đặt chữ f trước một chuỗi, và biểu thức trong ngoặc nhọn {} sẽ được thực thi và chuyển đổi thành chuỗi.
Ví dụ:
age = 35
print(f"Tuổi của bạn là: {age}")
Biểu thức trong {age} sẽ được tính toán và chuyển đổi thành chuỗi, và thay thế vào vị trí đó. Kết quả là “Tuổi của bạn là: 35”.
F-string cũng cho phép định dạng số với dấu phân cách hàng nghìn (,) hoặc định dạng số theo phần trăm (.2%).
Ví dụ:
don_gia = 25000
so_luong = 3
print(f"Bạn mua {so_luong} đĩa cơm hết tổng cộng: {don_gia * so_luong} VND") # Kết quả in ra: Bạn mua 3 đĩa cơm hết tổng cộng: 75000 VND
print(f"Bạn mua {so_luong} đĩa cơm hết tổng cộng: {don_gia * so_luong:,} VND") # Kết quả in ra: Bạn mua 3 đĩa cơm hết tổng cộng: 75,000 VND
print(f"Bạn được chiết khấu {chiet_khau:.2%}") # Kết quả in ra: Bạn được chiết khấu 25%
F-string không thay đổi giá trị khi các thành phần của biến số thay đổi.
don_gia = 25000
so_luong = 3
thong_bao = f"Bạn mua {so_luong} đĩa cơm hết tổng cộng: {don_gia * so_luong} VND"
print(thong_bao) # Kết quả in ra: Bạn mua 3 đĩa cơm hết tổng cộng: 75000 VND
don_gia = 35000
so_luong = 5
print(thong_bao) # Kết quả in ra: Bạn mua 3 đĩa cơm hết tổng cộng: 75000 VND
Định dạng chuỗi với phương thức format()
Biến chuỗi là một đối tượng str có một phương thức format() để định dạng nội dung. Ví dụ sau đây sử dụng hàm format() để định dạng chuỗi.
ten_nguoi_dung = "Nguyễn Văn A"
cau_chao = "Chào bạn {}!"
cau_chao_a = cau_chao.format(ten_nguoi_dung)
print(cau_chao_a)
Nếu bạn muốn có nhiều biến trong chuỗi, bạn cần đặt tên cho các vị trí đó.
don_gia = 25000
so_luong = 3
tong_tien = don_gia * so_luong
mau_thong_bao = "Bạn mua {so_luong} đĩa cơm hết tổng cộng: {tong_tien} VND"
thong_bao = mau_thong_bao.format(so_luong=so_luong, tong_tien=tong_tien)
print(thong_bao)
don_gia = 35000
so_luong = 5
tong_tien = don_gia * so_luong
mau_thong_bao = "Bạn mua {so_luong} đĩa cơm hết tổng cộng: {tong_tien} VND"
thong_bao = mau_thong_bao.format(so_luong=so_luong, tong_tien=tong_tien)
print(thong_bao)
Kết quả chúng ta đạt được như mong muốn.
Trong một số ví dụ, tôi đã sử dụng Jupyter Notebook. Nếu bạn muốn biết thêm về phần mềm này, có thể tham khảo bài viết “Jupyter Notebook – Công cụ không thể thiếu khi học Python”.
Bài viết gốc được đăng tải tại allaravel.com