Thứ ba, 01/11/2016 | 00:00 GMT+7

Giới thiệu về các hàm chuỗi trong Python 3

Python có một số hàm tích hợp được liên kết với kiểu dữ liệu chuỗi . Các hàm này cho phép ta dễ dàng sửa đổi và thao tác các chuỗi. Ta có thể coi các hàm là các hành động mà ta thực hiện trên các phần tử của mã của ta . Các hàm dựng sẵn là những hàm được định nghĩa bằng ngôn ngữ lập trình Python và có sẵn để ta sử dụng.

Trong hướng dẫn này, ta sẽ xem xét một số hàm khác nhau mà ta có thể sử dụng để làm việc với chuỗi trong Python 3.

Làm dây chữ trên và dưới

Các hàm str.upper()str.lower() sẽ trả về một chuỗi với tất cả các chữ cái của một chuỗi ban đầu được chuyển đổi thành chữ hoa hoặc chữ thường. Bởi vì chuỗi là kiểu dữ liệu bất biến, chuỗi trả về sẽ là một chuỗi mới. Bất kỳ ký tự nào trong chuỗi không phải là chữ cái sẽ không bị thay đổi.

Hãy chuyển đổi chuỗi Sammy Shark thành tất cả các chữ hoa:

ss = "Sammy Shark" print(ss.upper()) 
Ouput
SAMMY SHARK

Bây giờ, hãy chuyển đổi chuỗi thành tất cả các chữ thường:

print(ss.lower()) 
Ouput
sammy shark

Các str.upper()str.lower() giúp dễ dàng đánh giá và so sánh các chuỗi bằng cách làm cho chữ hoa đồng nhất trong suốt. Bằng cách đó, nếu user viết toàn bộ tên của họ bằng chữ thường, ta vẫn có thể xác định xem tên của họ có trong database của ta hay không bằng cách kiểm tra nó với một version toàn chữ hoa, chẳng hạn.

Phương pháp Boolean

Python có một số phương thức chuỗi sẽ đánh giá thành giá trị Boolean . Ví dụ: những phương pháp này hữu ích khi ta tạo biểu mẫu để user điền vào. Nếu ta đang yêu cầu mã bưu điện, ta sẽ chỉ muốn chấp nhận một chuỗi số, nhưng khi ta hỏi tên, ta sẽ chỉ muốn chấp nhận một chuỗi chữ cái.

Có một số phương thức chuỗi sẽ trả về giá trị Boolean:

phương pháp True nếu
str.isalnum() Chuỗi chỉ bao gồm các ký tự chữ và số (không có ký hiệu)
str.isalpha() Chuỗi chỉ bao gồm các ký tự chữ cái (không có ký hiệu)
str.islower() Các ký tự chữ cái của chuỗi đều là chữ thường
str.isnumeric() Chuỗi chỉ bao gồm các ký tự số
str.isspace() Chuỗi chỉ bao gồm các ký tự khoảng trắng
str.istitle() Chuỗi nằm trong trường hợp tiêu đề
str.isupper() Các ký tự chữ cái của chuỗi đều là chữ hoa

Hãy xem xét một vài trong số này đang hoạt động:

number = "5" letters = "abcdef"  print(number.isnumeric()) print(letters.isnumeric()) 
Output
True False

Sử dụng phương thức str.isnumeric() trên chuỗi 5 trả về giá trị True , trong khi sử dụng cùng phương thức trên chuỗi abcdef trả về giá trị False .

Tương tự như vậy, ta có thể truy vấn xem các ký tự chữ cái của một chuỗi nằm ở dạng chữ hoa tiêu đề, chữ hoa hay chữ thường. Hãy tạo một vài chuỗi:

movie = "2001: A SAMMY ODYSSEY" book = "A Thousand Splendid Sharks" poem = "sammy lived in a pretty how town" 

Bây giờ ta hãy thử các phương pháp Boolean để kiểm tra trường hợp:

print(movie.islower()) print(movie.isupper()) 
print(book.istitle()) print(book.isupper()) 
print(poem.istitle()) print(poem.islower()) 

Bây giờ ta có thể chạy các chương trình nhỏ này và xem kết quả:

Output of movie string
False True
Output of book string
True False
Output of poem string
False True

Kiểm tra xem các ký tự là chữ thường, chữ hoa hay chữ hoa tiêu đề, có thể giúp ta sắp xếp dữ liệu của bạn một cách thích hợp, cũng như cung cấp cho ta cơ hội chuẩn hóa dữ liệu ta thu thập bằng cách kiểm tra và sau đó sửa đổi các chuỗi khi cần thiết.

Phương thức chuỗi Boolean rất hữu ích khi ta muốn kiểm tra xem nội dung nào đó mà user nhập vào có phù hợp với các tham số nhất định hay không.

Xác định độ dài chuỗi

Hàm string len() trả về số ký tự trong một chuỗi. Phương pháp này hữu ích khi bạn cần thực thi độ dài password tối thiểu hoặc tối đa, ví dụ, hoặc cắt ngắn các chuỗi lớn hơn nằm trong giới hạn nhất định để sử dụng làm chữ viết tắt.

Để chứng minh phương pháp này, ta sẽ tìm độ dài của một chuỗi dài một câu:

open_source = "Sammy contributes to open source." print(len(open_source)) 
Output
33

Ta đặt biến open_source bằng chuỗi "Sammy contributes to open source." và sau đó ta chuyển biến đó cho hàm len() với len(open_source) . Sau đó, ta chuyển phương thức vào phương thức print() để ta có thể thấy kết quả kết quả trên màn hình từ chương trình của bạn .

Lưu ý bất kỳ ký tự nào được ràng buộc bởi dấu ngoặc kép đơn hoặc kép - bao gồm chữ cái, số, ký tự khoảng trắng và ký hiệu - sẽ được tính bằng hàm len() .

Các phương thức join (), split () và Replace ()

Các phương thức str.join() , str.split()str.replace() là một vài cách bổ sung để thao tác chuỗi trong Python.

Phương thức str.join() sẽ nối hai chuỗi, nhưng theo cách truyền một chuỗi này qua chuỗi khác.

Hãy tạo một chuỗi:

balloon = "Sammy has a balloon." 

Bây giờ, hãy sử dụng phương thức str.join() để thêm khoảng trắng vào chuỗi đó, ta có thể làm như vậy:

" ".join(balloon) 

Nếu ta in cái này ra:

print(" ".join(balloon)) 

Ta sẽ thấy rằng trong chuỗi mới được trả về có thêm khoảng trắng trong suốt chuỗi đầu tiên:

Ouput
S a m m y h a s a b a l l o o n .

Ta cũng có thể sử dụng phương thức str.join() để trả về một chuỗi là sự đảo ngược từ chuỗi ban đầu:

print("".join(reversed(balloon))) 
Ouput
.noollab a sah ymmaS

Ta không muốn thêm bất kỳ phần nào của chuỗi khác vào chuỗi đầu tiên, vì vậy ta giữ cho dấu ngoặc kép được chạm và không có khoảng cách ở giữa.

Phương thức str.join() cũng hữu ích để kết hợp một danh sách các chuỗi thành một chuỗi đơn mới.

Hãy tạo một chuỗi được phân tách bằng dấu phẩy từ danh sách các chuỗi:

print(",".join(["sharks", "crustaceans", "plankton"])) 
Ouput
sharks,crustaceans,plankton

Nếu ta muốn thêm dấu phẩy và khoảng trắng giữa các giá trị chuỗi trong chuỗi mới của bạn , ta có thể chỉ cần viết lại biểu thức của bạn bằng khoảng trắng sau dấu phẩy: ", ".join(["sharks", "crustaceans", "plankton"]) .

Cũng giống như ta có thể nối các chuỗi lại với nhau, ta cũng có thể chia các chuỗi ra. Để làm điều này, ta sẽ sử dụng phương thức str.split() :

print(balloon.split()) 
Ouput
['Sammy', 'has', 'a', 'balloon.']

Phương thức str.split() trả về danh sách các chuỗi được phân tách bằng khoảng trắng nếu không có tham số nào khác được cung cấp.

Ta cũng có thể sử dụng str.split() để xóa các phần nhất định của chuỗi root . Ví dụ: hãy xóa ký tự a khỏi chuỗi:

print(balloon.split("a")) 
Ouput
['S', 'mmy h', 's ', ' b', 'lloon.']

Bây giờ, ký tự a đã bị loại bỏ và các chuỗi đã được tách ra ở vị trí từng version của ký tự a , với khoảng trắng được giữ lại.

Phương thức str.replace() có thể lấy một chuỗi root và trả về một chuỗi đã cập nhật với một số thay thế.

Giả sử rằng quả bóng bay mà Sammy có đã bị mất. Kể từ Sammy không còn bóng này, ta sẽ thay đổi chuỗi "has" từ chuỗi ban đầu balloon để "had" trong một chuỗi mới:

print(balloon.replace("has","had")) 

Trong dấu ngoặc đơn, chuỗi con đầu tiên là chuỗi mà ta muốn được thay thế và chuỗi con thứ hai là chuỗi mà ta sẽ thay thế chuỗi con đầu tiên đó. Đầu ra của ta sẽ như thế này:

Ouput
Sammy had a balloon.

Sử dụng các phương thức chuỗi str.join() , str.split()str.replace() sẽ cung cấp cho bạn khả năng kiểm soát tốt hơn để thao tác các chuỗi trong Python.

Kết luận

Hướng dẫn này đã đi qua một số phương thức tích hợp phổ biến cho kiểu dữ liệu chuỗi mà bạn có thể sử dụng để làm việc và thao tác với chuỗi trong chương trình Python của bạn .

Bạn có thể tìm hiểu thêm về các kiểu dữ liệu khác trong “ Hiểu về kiểu dữ liệu ”, đọc thêm về chuỗi trong “ Giới thiệu về cách làm việc với chuỗi ” và tìm hiểu về cách thay đổi giao diện của chuỗi trong “ Cách định dạng văn bản trong Python 3 ”.


Tags:

Các tin liên quan

Cách làm Toán bằng Python 3 với Toán tử
2016-11-01
Giới thiệu về các hàm chuỗi trong Python 3
2016-11-01
Giới thiệu về các hàm chuỗi trong Python 3
2016-11-01
Cách sử dụng bộ định dạng chuỗi trong Python 3
2016-10-14
Cách xử lý tệp văn bản thuần túy trong Python 3
2016-10-13
Cách sử dụng các biến trong Python 3
2016-10-12
Cách lập chỉ mục và cắt chuỗi trong Python 3
2016-09-28
Cách định dạng văn bản trong Python 3
2016-09-15
Giới thiệu về cách làm việc với chuỗi trong Python 3
2016-09-15
Hiểu các kiểu dữ liệu trong Python 3
2016-09-14