Trong lập trình Python, thao tác với chuỗi là một phần không thể thiếu. Một trong những thao tác cơ bản và thường xuyên được sử dụng là nối chuỗi. Bài viết này sẽ giới thiệu khái niệm nối chuỗi trong Python, cùng một số phương pháp thực hiện đơn giản, dễ bạn áp dụng với trong các dự án của mình.
Các điểm chính
Khi đọc xong bài viết, bạn sẽ:
- Hiểu rõ khái niệm nối chuỗi trong Python: Bạn sẽ nắm vững “nối chuỗi” nghĩa là gì và tại sao nó quan trọng trong lập trình Python.
- Biết các phương pháp nối chuỗi cơ bản: Bạn sẽ được hướng dẫn chi tiết cách sử dụng toán tử +, khoảng trắng (whitespace), và toán tử * để nối chuỗi một cách hiệu quả.
- Nắm vững cách kết hợp các toán tử nối chuỗi: Bạn sẽ học được cách kết hợp toán tử + và * để tạo ra những chuỗi phức tạp hơn một cách dễ dàng.
- Ứng dụng kiến thức vào thực hành: Bạn sẽ có đủ kiến thức để bắt đầu thực hành nối chuỗi trong các bài tập và dự án Python của mình.
Nối chuỗi trong Python là gì?
Nối chuỗi (String Concatenation) trong Python là thao tác ghép hai hoặc nhiều chuỗi lại với nhau. Kết quả của thao tác này sẽ là một chuỗi mới chứa các chuỗi ban đầu.

Hình dưới đây mô tả một hoạt động nối chuỗi tổng quát:

Trong Python, có nhiều cách khác nhau để thực hiện việc nối chuỗi. Chúng ta sẽ lần lượt xem xét những cách sau:
- Sử dụng toán tử
+
- Nối chuỗi kèm khoảng trắng
- Sử dụng toán tử
*
(nhân) - Kết hợp toán tử
+
và*
Sử dụng toán tử + để nối chuỗi trong Python
Toán tử “+
” thường được biết đến như một toán tử cộng, dùng để tính tổng của hai số. Tuy nhiên, trong Python, ký hiệu “+
” còn đóng vai trò là toán tử nối chuỗi. Toán tử này hoạt động với hai toán hạng kiểu chuỗi và kết quả trả về là một chuỗi mới, được tạo ra bằng cách nối hai chuỗi ban đầu.
Cụ thể, các ký tự của chuỗi bên phải dấu cộng sẽ được ghép vào sau chuỗi bên trái dấu cộng. Kết quả của phép nối chuỗi là một chuỗi hoàn toàn mới.
Ví dụ, chúng ta có hai chuỗi tên riêng và tên đệm của một người. Chúng ta muốn ghép hai chuỗi đó lại để tạo thành tên đầy đủ, việc đó có thể thực hiện như sau trong Python:
ten_dem = "Văn "
ten_rieng = "An"
print("Tên đệm:", ten_dem)
print("Tên riêng:", ten_rieng)
ten_day_du = ten_dem + ten_rieng
print("Tên đầy đủ:", ten_day_du)
Kết quả hiển thị trên màn hình sẽ là:
Tên đệm: Văn
Tên riêng: An
Tên đầy đủ: Văn An
Giải thích:
ten_dem = "Văn "
vàten_rieng = "An"
: Khai báo và gán giá trị cho hai biến chuỗi.print("Tên đệm:", ten_dem)
vàprint("Tên riêng:", ten_rieng)
: Hiển thị giá trị của hai biến chuỗiten_dem
vàten_rieng
.ten_day_du = ten_dem + ten_rieng
: Toán tử+
được sử dụng để nối hai chuỗiten_dem
vàten_rieng
lại với nhau. Kết quả của phép nối được gán cho biếnten_day_du
.print("Tên đầy đủ:", ten_day_du)
: Xuất ra tên đầy đủ.
Sử dụng khoảng trắng để nối chuỗi
Để thêm một khoảng trắng (space) giữa hai chuỗi khi nối chúng, ta có thể sử dụng một chuỗi trống thứ ba. Ví dụ:
ten = "Nguyễn"
ho = "Văn"
dem = " " # Chuỗi chứa một khoảng trắng
ho_ten_day_du = ho + dem + ten
print("Họ:", ho)
print("Tên:", ten)
print("Họ và tên đầy đủ:", ho_ten_day_du)
Khi thực thi đoạn code trên, màn hình sẽ hiển thị:
Họ: Văn
Tên: Nguyễn
Họ và tên đầy đủ: Văn Nguyễn
Giải thích code:
ten, ho
: Các biến chứa các phần của một họ và tên đầy đủ.dem = " "
: Khai báo một biếndem
và gán cho một chuỗi chỉ chứa một ký tự khoảng trắng.ho_ten_day_du = ho + dem + ten
: Thực hiện phép nối chuỗi, sử dụng biếndem
để chèn khoảng trắng giữaho
vàten
.
Nối chuỗi trong Python bằng cách nhân chuỗi
Thông thường, chúng ta dùng ký hiệu *
để nhân hai số. Tuy nhiên, trong Python, *
còn có thể được dùng với các chuỗi ký tự (string). Trong trường hợp này, *
đóng vai trò là một toán tử lặp lại (repetition operator). Khi sử dụng, một trong các toán hạng phải là một số nguyên, và toán hạng còn lại là một chuỗi. Số nguyên sẽ chỉ định số lần chuỗi đó được lặp lại và nối với nhau.
Ví dụ bạn muốn in ra dòng chữ “Chúc mừng!” lặp lại nhiều lần thay vì chỉ một lần. Chúng ta sẽ làm điều đó như sau:
thong_diep = "Chúc mừng! " * 4
print(thong_diep)
Kết quả hiển thị lên màn hình khi thực thi lệnh print():
Chúc mừng! Chúc mừng! Chúc mừng! Chúc mừng!
Giải thích:
- Toán tử
*
: Toán tử*
ở đây không phải dùng để nhân số, mà để lặp lại chuỗi. "Chúc mừng! "
:"Chúc mừng! "
là chuỗi cần lặp.- Số
4
: Số4
chỉ định rằng chuỗi"Chúc mừng! "
sẽ được lặp lại 4 lần. thong_diep = "Chúc mừng! " * 4
: Khi gán giá trị này cho một biến ta sẽ có được một chuỗi mới bao gồm các chuỗi cũ được lặp.
Nối chuỗi với toán tử + và *
Cả toán tử lặp (*
) và toán tử nối chuỗi (+
) đều có thể được sử dụng trong cùng một biểu thức để nối các chuỗi lại với nhau. Toán tử *
có độ ưu tiên cao hơn so với toán tử +
. Ví dụ:
Trong ví dụ dưới đây, chúng ta sẽ thực hiện nối chuỗi, sử dụng kết hợp cả toán tử +
và *
:
chuoi1 = "Xin"
chuoi2 = " chào"
print("Chuỗi 1:", chuoi1)
print("Chuỗi 2:", chuoi2)
chuoi3 = chuoi1 + chuoi2 * 3
print("Chuỗi 3:", chuoi3)
chuoi4 = (chuoi1 + chuoi2) * 3
print("Chuỗi 4:", chuoi4)
Khi chạy đoạn mã trên, bạn sẽ thấy kết quả như sau:
Chuỗi 1: Xin
Chuỗi 2: chào
Chuỗi 3: Xin chào chào chào
Chuỗi 4: Xin chàoXin chàoXin chào
Giải thích Code:
chuoi1 = "Xin"
vàchuoi2 = " chào"
: Khởi tạo hai chuỗi,chuoi1
có giá trị"Xin"
,chuoi2
có giá trị" chào"
.print("Chuỗi 1:", chuoi1)
vàprint("Chuỗi 2:", chuoi2)
: In giá trị hai chuổichuoi1
vàchuoi2
.chuoi3 = chuoi1 + chuoi2 * 3
: Trong biểu thức này, do toán tử*
có độ ưu tiên cao hơn+
, Python sẽ thực hiệnchuoi2 * 3
trước. Kết quả là" chào chào chào"
. Sau đó, Python mới thực hiện phép cộng chuỗi:"Xin" + " chào chào chào"
. Do vậy,chuoi3
có giá trị"Xin chào chào chào"
.print("Chuỗi 3:", chuoi3)
: Hiển thị ra màn hìnhString 3: Xin chào chào chào
chuoi4 = (chuoi1 + chuoi2) * 3
: Trong trường hợp này, dấu ngoặc đơn()
làm thay đổi thứ tự ưu tiên. Python sẽ thực hiện phép nối chuỗichuoi1 + chuoi2
trước, tạo thành"Xin chào"
. Sau đó, kết quả này mới được lặp lại 3 lần bằng toán tử*
. Vì thế,chuoi4
có giá trị là"Xin chàoXin chàoXin chào"
.print("Chuỗi 4:", chuoi4)
: Hiển thị ra màn hìnhString 4: Xin chàoXin chàoXin chào
Lưu ý:
- Để tạo chuỗi
3 * "chào"
Python sẽ lặp lại 3 lần chuỗi “chào”, trước khi nối vào với chuỗi Xin. - Trong trường hợp thứ 2 dấu ngoặc giúp cho Python biết thực hiện phép
("Xin" + "chào") * 3
trước. Rồi mới thực hiện phép lặp *. - Ngoài toán tử
+
và*
, không có toán tử số học nào khác (-
,/
, …) có thể được sử dụng với các toán hạng chuỗi.
Lời kết
Như vậy, chúng ta đã cùng tìm hiểu chi tiết về các cách nối chuỗi trong Python, từ những phương pháp cơ bản như sử dụng toán tử +, khoảng trắng, cho đến kỹ thuật nhân chuỗi và kết hợp cả + và *. Hy vọng rằng, với những kiến thức này, bạn có thể áp dụng linh hoạt vào việc lập trình, xử lý chuỗi một cách hiệu quả và tối ưu code của mình.
Mọi người cũng đọc