[Strings – part 3] – Xử lý chuỗi nâng cao

string python
Xử lý chuỗi
1. Nối chuỗi

Bạn đã biết thế nào là chuỗi, và bạn cũng đã biết một số phép tính toán học. Bây giờ thử kết hợp cúng với nhau xem thế nào. Ta sẽ sử dụng phép toán cộng (+) để thực hiện việc nối các chuỗi với nhau như sau:

print "Life " + "of " + "Brian"

Ok, câu lệnh trên sẽ xuất lên màn hình cho ta một chuỗi là “Life of Brian”.

Vậy toán tử (+) giữa 2 chuỗi sẽ thực hiện việc nối chúng với nhau. Chú ý là khoảng trắng ở trong dấu ngoặc kép sau chữ Life và sau chữ of, vẫn được tính như là một ký tự gọi là ký tự khoảng trắng, do đó chúng sẽ xuất ra là Life of Brian chứ không phải là LifeofBrian.

Bây giờ ta sẽ thử một bài tập nhỏ:

Bài tập: hãy print ra màn hình một chuỗi được nối vởi ba từ “Spam “, “and “, “eggs”.

# Print the concatenation of "Spam and eggs"!
print "Spam " + "and " + "eggs"
2. Kết hợp chuyển đổi chuỗi

Đôi khi bạn muốn kết hợp một chuỗi với một thứ không phải là chuỗi ví dụ như số. Để   có thể làm việc đó, bạn cần chuyển đổi những giá trị không phải là chuỗi đó sang chuỗi.

Ví dụ:

print "I have " + str(2) + " coconuts!"

Lệnh print này sẽ print ra một chuỗi được nối là “I have 2 coconuts!”, phương thức str() như ở bài trước đã giới thiệu, nó sẽ chuyển một giá trị không phải chuỗi sáng chuỗi. Như ví dụ trên ta đã chuyển số 2 sang một chuỗi là “2” rồi sau đó ta thực hiện việc nối các chuỗi này với nhau.

Một ví dụ khác của việc này:

# Turn 3.14 into a string!
print "The value of pi is around " + str(3.14)
3. Định dạng chuỗi với dấu %

Khi muốn print một biến với một chuỗi, như ở ví dụ trước ta thường thực hiện việc nối chuỗi. Tuy nhiên đây là cách tốt hơn, ta sử dụng dấu (%) để định rõ vị trí biến đó sẽ có mặt trong chuỗi này.

name = "Mike"
print "Hello %s" % (name)

Toán tử % sau chuỗi “Hello  %s” sử dụng để kết hợp một chuỗi với một biến. Nó sẽ thực hiện việc thay thế cái %s trong chuỗi với một biến có giá trị là chuỗi sau đó.

Thử chạy đoạn code này  và tùy chỉnh theo ý mình để chắc rằng bạn nắm được nó.

string_1 = "Camelot"
string_2 = "place"
print "Let's not go to %s. \
'Tis a silly %s." % (string_1, string_2)

Ghi nhớ: ta sử dụng toán tử  % để thực hiện việc thay thế vị trí có ký tự  %s với các biến trong dấu ngoặc đơn.

name = "Mike"
print "Hello %s" % (name)

Lưu ý: ta cần xác định CHÍNH XÁC vị trí các giá trị trong dấu ngoặc và vị trí các  %s trong chuỗi.

print "The %s who %s %s!" % ("Knights", "say", "Ni") 
# Câu lệnh trên sẽ xuất cho ta kết quả là "The Knights who say Ni!"

Một ví dụ khác: Thử gõ lại đoạn code này vào trình thông dịch và chạy hoặc sau đó chỉnh sửa các giá trị cũng như thay đổi vị trí các %s để xem kết quả (Tự gõ nhé,  không chơi copy past à)

name = raw_input("What is your name?")
quest = raw_input("What is your quest?")
color = raw_input("What is your favorite color?")
print "Ah, so your name is %s, your quest is %s, "\
"and your favorite color is %s." % (name, quest, color)

P/s: Ký tự “\” được bôi đỏ trong đoạn code trên chỉ cho biết là đoạn code này quá dài nên tạm xuống dòng chứ thật ra chuỗi này chưa kết thúc, nhằm tránh lỗi khi trình thông  dịch hiểu lầm là đoạn code đã kết thúc.

4. TỔNG HỢP

Bây giờ ta tổng hợp tất cả kiến thức ở 3 bài về chuỗi là bài này và 2 bài trước đó gồm    [Strings – part 1] – Chuỗi trong Python và [Strings – part 2] – Các phương thức xử lý chuỗi

– Tạo một chuỗi:

'Alpha'
"Bravo"
str(3)

– Phương thức xử lý chuỗi:

len("Charlie")
"Delta".upper()
"Echo".lower()

– In một chuỗi ra màn hình:

print "Foxtrot"

– Một số kỹ thuật nâng cao:

g = "Golf"
h = "Hotel"
print "%s, %s" % (g, h)

Bài tập: tạo một biến my_string và gán cho nó một chuỗi bất kỳ bạn thích (chuỗi của mình là “Nguyen Thi Thanh”, ai hỏi gì về chuỗi này mình đập ráng chịu).

Sau đó print ra chiều dài chuỗi đó, cuối cùng là print ra chuỗi đó đã được chuyển thành viết hoa hoàn toàn (.upper())

# Write your code below, starting!
my_string = "Nguyen Thi Thanh"
print len(my_string)
print my_string.upper()

Ok, vậy là ta đã hiểu được thế nào là chuỗi và cách xử lý chuỗi trong Python, bây giờ thì ta có thể tạo các chuỗi bất kỳ và luyện tập với nó cho nhuần nhuyễn nhất là phần định dạng chuỗi với toán tử %. Chào các bạn.

2 bình luận về “[Strings – part 3] – Xử lý chuỗi nâng cao

Bình luận về bài viết này