Chuỗi là một trong những kiểu dữ liệu phổ biến nhất trong Python. Ở cấp độ cao, một chuỗi là một đối tượng bao gồm một chuỗi các ký tự. Một ký tự là một ký hiệu - chẳng hạn như ngôn ngữ tiếng Anh, có 26 ký tự trong bảng chữ cái của chúng.
Chuỗi Python rất dễ tạo và thao tác. Bạn có thể ngay lập tức bắt đầu học cách làm như vậy ngay bây giờ. Bài viết này xem xét các chuỗi trong Python, cách chúng hoạt động và các hoạt động phổ biến được sử dụng trên chúng.
Chuỗi trong Python là gì?
Bạn có thể tạo một chuỗi trong Python đơn giản bằng cách đặt các ký tự trong dấu ngoặc kép - có thể là dấu nháy đơn (‘) hoặc kép (“). Khởi tạo và khai báo một chuỗi bằng cách gán nó cho một biến:
doubleQuoteString = "I'm a string" singleQuoteString = 'I\'m a string' # needs escaped single quote to treat it as a string value as opposed to end of input.
Hãy nhớ rằng:nếu bạn cần sử dụng dấu nháy đơn bên trong một chuỗi được gói gọn trong các dấu ngoặc kép, chúng ta cần thoát khỏi nó bằng dấu “\”. Điều này sẽ coi câu trích dẫn là một phần của chuỗi chứ không phải phần cuối của chuỗi.
Chuỗi tài liệu và chuỗi nhiều dòng
Docstrings là một loại chuỗi khác trong Python. Chúng được đặt trong dấu ngoặc kép (“” ”) và được coi như một nhận xét nhiều dòng trong dòng đầu tiên của một hàm hoặc lớp.
def printString(str): ''' takes in a string and prints it to the console ''' print(str)
Chuỗi tài liệu mô tả mục đích của khối mã là gì. Nếu bạn muốn sử dụng docstring trong logic của mình, bạn có thể gán docstring cho một biến. Nếu được gán cho một biến, chuỗi doc sẽ trở thành một chuỗi nhiều dòng.
multiline = ''' I'm a multi-line string that can be assigned to a variable. The format follows exactly the way YOU input it. ''' print(multiline)
Chuỗi nhiều dòng sẽ tuân theo định dạng bên trong dấu ngoặc kép. Nếu không có phép gán biến, chuỗi sẽ được coi là một nhận xét và bị bỏ qua.
Chuỗi thô
Python sử dụng một khái niệm được gọi là chuỗi thô. Khái niệm này xử lý mọi thứ bên trong chuỗi theo cách bạn đã viết - đặc biệt, dấu gạch chéo ngược không được sử dụng như một chuỗi thoát. Đây là một so sánh:
81% người tham gia cho biết họ cảm thấy tự tin hơn về triển vọng công việc công nghệ của mình sau khi tham gia một cuộc thi đào tạo. Kết hợp với bootcamp ngay hôm nay.
Sinh viên tốt nghiệp bootcamp trung bình đã dành ít hơn sáu tháng để chuyển đổi nghề nghiệp, từ khi bắt đầu bootcamp đến khi tìm được công việc đầu tiên của họ.
notRaw = "I'm a not a raw string, and escape chars DO matter \n\r\t\b\a" rawString = r"I'm a raw string, where escape chars don't matter \n\r\t\b\a" print(notRaw) # I'm not a raw string, and escape chars DO matter. print(rawString) # I'm a raw string, where escape chars don't matter \n\r\t\b\a
Chuỗi thô được biểu diễn bằng một chuỗi thông thường có tiền tố là chữ cái r:
r ”Đây là một chuỗi thô”
Sử dụng chuỗi thô khi bạn cần dấu gạch chéo ngược để không chỉ ra một chuỗi thoát đặc biệt của một số loại.
Các ký tự Unicode trong chuỗi
Unicode là một đặc tả ký tự có mục tiêu là gán mọi ký tự đơn lẻ được sử dụng bởi bất kỳ ngôn ngữ nào là mã riêng của nó. Trong hầu hết các tài liệu, giá trị unicode được biểu thị bằng:
U +
U + 2661 là một ví dụ về một loại ký tự unicode có sẵn để chúng tôi sử dụng. Có hàng chục nghìn ký tự để lựa chọn đại diện cho tất cả các ngôn ngữ trên thế giới.
Viết Unicode bằng Python 3
Để viết các ký tự unicode trong Python 3, hãy sử dụng một chuỗi thoát trong một chuỗi thông thường bắt đầu bằng \ u và kết thúc bằng mã được gán cho ký tự (số đứng sau dấu “+”).
unicodeString = '\u2661' print(unicodeString) # ♡
Bạn có thể xâu chuỗi bao nhiêu ký tự unicode tùy thích trong một hàng.
Quá trình sử dụng unicode trong một chuỗi thông thường này được cập nhật từ Python 2. Trong các phiên bản cũ hơn, bạn phải có một chuỗi unicode riêng biệt bắt đầu bằng u’\u<unicode number here>’
vì Python 2 đã sử dụng giá trị ASCII và giá trị unicode.
Cách truy cập giá trị trong chuỗi
Chúng tôi sử dụng dấu ngoặc vuông để truy cập các giá trị trong một chuỗi bằng Python. Chuỗi không dựa trên tương tự như các ngôn ngữ lập trình khác. Điều này có nghĩa là ký tự đầu tiên trong chuỗi bắt đầu từ chỉ mục số 0.
hello = "hello world" print(hello[4]) # o
Việc in chỉ mục thứ tư trong hello sẽ in “o” vào bảng điều khiển. Nếu bạn cố gắng truy cập vào một chỉ mục không phải là một phần của chuỗi, bạn sẽ thấy IndexError: string index out of range
. Lỗi này có nghĩa là bạn đang cố gắng truy cập một chỉ mục lớn hơn hoặc thấp hơn số lượng chỉ mục bạn có.
Lưu ý: Nếu bạn đến từ một ngôn ngữ lập trình như C hoặc Java, bạn đã quen với việc các ký tự có kiểu dữ liệu riêng. Đây không phải là trường hợp trong Python - các ký tự riêng lẻ đơn giản được coi như một chuỗi con có độ dài là một. |
Truy cập nhiều ký tự trong một chuỗi
Sử dụng phương pháp cắt chuỗi để truy cập nhiều ký tự trong một chuỗi cùng một lúc. Cú pháp là:
string_name[first_index? : another_index?]
Chỉ mục cuối cùng là không bao gồm. Hello[1:3]
trong ví dụ trước sẽ trả về el
chứ không phải ell
.
Điều thú vị về việc cắt trong Python là các giá trị chỉ mục không bắt buộc phải cắt.
Dưới đây là những cách phổ biến để cắt chuỗi trong Python:
-
string_name[:]
Sử dụng dấu hai chấm bên trong dấu ngoặc vuông sẽ cắt toàn bộ chuỗi để tạo một bản sao.
hello = "hello world" copy = hello[:] + " ⇐ whole string" print(copy) # hello world ⇐ whole string
-
string_name[first_index:]
Bạn có thể cắt từ một chỉ mục bên trong chuỗi đến cuối mà không cần biết giá trị chỉ mục cuối cùng bằng cách để trống bên trong dấu ngoặc vuông.
hello = "hello world" copy = hello[2:] + " ⇐ An index to end of string" print(copy) # llo world ⇐ An index to end of string
-
string_name[:second_index]
Việc cắt từ đầu sang chỉ mục khác được thực hiện bằng cách giữ trống vị trí mà chỉ mục đầu tiên sẽ xuất hiện trong dấu ngoặc.
hello = "hello world" copy = hello[:7] + " ⇐ beginning to index inside of string" print(copy) # hello w ⇐ beginning to index inside of string
-
string_name[first_index:second_index]
Hãy nhớ rằng phương pháp lát cắt là không bao gồm nếu bạn có hai chỉ mục cụ thể mà bạn muốn cắt. Vì vậy, nếu bạn muốn chuỗi từ chỉ mục 1 đến chỉ mục 6, bạn sẽ thực sự muốn định dạng nó thànhhello[1:7]
.
hello = "hello world" copy = hello[1:7] + " ⇐ first index to another index" print(copy) # ello w ⇐ beginning to another index inside of string
Số âm cũng có thể được sử dụng:
hello = "hello world" copy = hello[-7:-2] + " ⇐ negative indexes" print(copy) # o wor ⇐ negative indexes
Sử dụng phương pháp cắt chuỗi là rất tốt khi bạn muốn thao tác với chuỗi, nhưng không làm thay đổi chuỗi ban đầu. Nó tạo bản sao của chính nó trong bộ nhớ các chỉ mục đã chọn để bạn có thể cập nhật chúng mà không cần thay đổi chuỗi gốc.
Cách lặp qua chuỗi trong Python
Trong Python, chúng tôi xử lý các chuỗi giống như cách chúng tôi xử lý các mảng. Chúng ta có thể lặp qua các chuỗi giống như chúng ta có thể làm đối với mảng bằng cú pháp for… in:
#for...in syntax for <index> in <string>: #do logic here #example word = "career karma" for letter in word: print(letter) #prints each individual letter on each iteration
Chúng tôi gán ‘letter’ cho
Cách tìm độ dài của chuỗi
Để tìm độ dài của một chuỗi, hãy sử dụng len()
phương pháp.
lenExample = "The quick brown fox jumps over the lazy dog." print(len(lenExample))
Không sử dụng từ khóa len ở nơi khác trong mã của bạn. Trình thông dịch sẽ nhầm hàm với biến được đặt tên của bạn.
Cách sử dụng "in" và "not in"
Bạn có thể sử dụng các từ khóa trong và không phải trong chuỗi Python để kiểm tra xem liệu có thứ gì đó được chứa trong chuỗi hay không.
checkString = "Career Karma will help you make a career switch to the tech industry"
checkString là chuỗi chúng tôi sẽ sử dụng cho hai ví dụ tiếp theo.
Sử dụng trong
in
từ khóa có thể được sử dụng để kiểm tra xem một cái gì đó có trong một chuỗi hay không bằng cách thông báo cho trình thông dịch Python mà bạn muốn biết liệu cụm từ tìm kiếm của bạn có nằm trong chuỗi được gán cho biến hay không.
print("tech" in checkString) # True
Python là một ngôn ngữ đáng mơ ước để học vì nó dễ đọc. Cú pháp ở đây về cơ bản là cách bạn có thể hỏi câu hỏi đó nếu bạn đang hỏi người khác:
H:"Có phải" công nghệ "trong chuỗi kiểm tra không?" (“Công nghệ” trong Chuỗi kiểm tra)
(chuỗi quét)
A:"Vâng, vâng, nó là." (Đúng)
Không sử dụng trong
not in
cụm từ khóa kiểm tra xem có điều gì KHÔNG nằm trong một chuỗi hay không. Điều này có thể gây nhầm lẫn để quấn lấy tâm trí xung quanh, vì vậy hãy chú ý. Ở đây, khi bạn hỏi nếu một cái gì đó không có trong chuỗi, nó sẽ trả về "True" nếu nó không có trong chuỗi hoặc "False" nếu nó có trong chuỗi.
print("tech" not in checkString) # False
Đây là cách chúng ta có thể đọc cú pháp này nếu chúng ta đang nói chuyện với một cá nhân khác:
H:"Có phải" công nghệ "không có trong Chuỗi kiểm tra?" (“Công nghệ” không có trong Chuỗi kiểm tra)
(chuỗi quét)
A:“Không. Từ “công nghệ” có trong Chuỗi kiểm tra ”(Sai)
Chúng ta có thể thay đổi trang điểm của một chuỗi không?
Các chuỗi trong Python là bất biến. Các ký tự tạo nên chuỗi không thể bị thay đổi hoặc thay đổi theo một cách nào đó sau khi thực hiện phép gán ban đầu.
delString = "Can we delete this or change this?" delString[2] = "b" print(delString)
Cố gắng chạy mã này trong trình thông dịch Python của bạn. Đây là lỗi sẽ dẫn đến:
Traceback (most recent call last): File "main.py", line no., in <module> delString[2] = "b" TypeError: 'str' object does not support item assignment
TypeError ở đây cho chúng ta biết rằng các chuỗi trong Python không cho phép các ký tự được gán lại. Bạn cần gán lại toàn bộ chuỗi cho chuỗi mới mà bạn muốn tạo nếu bạn muốn gán lại các ký tự riêng lẻ.
delString = delString[:2] + "b" + delString[3:] print(delString)
Mã ở đây là cách chính xác để thực hiện những gì chúng tôi dự định làm với delString[2] = “b”
dòng mã. Cần phải gán lại toàn bộ để thay đổi một đối tượng chuỗi.
Điều này cũng có nghĩa là không thể xóa các ký tự đơn lẻ trong một chuỗi. Tuy nhiên, bạn có thể xóa toàn bộ chuỗi bằng del
từ khóa.
del delString print(delString) #this will return an error or the linter will catch as being undefined
Các phương thức chuỗi phổ biến
Có một số phương thức được liên kết với chuỗi Python. Để có danh sách cập nhật nhất, hãy xem tài liệu Python.
Dưới đây là một số phương pháp phổ biến nhất. testString
là một chuỗi mẫu sẽ được sử dụng để chứng minh hầu hết các phương pháp.
testString = "this is a test string."
capitalize ()
Phương thức viết hoa sẽ viết hoa chữ cái đầu tiên của chuỗi:
capitalized = testString.capitalize() print(capitalized) # This is a test string
find ()
Phương thức tích hợp này sẽ trả về chỉ mục nơi bắt đầu đối số được truyền vào. Nếu không thể tìm thấy, nó sẽ trả về -1.
found = testString.find("test") notfound = testString.find("not") print(found) # 10 print(notfound) # -1
tham gia ()
Phương thức nối sẽ đưa đối tượng có thể lặp lại được truyền vào phương thức (có thể là một chuỗi, một tập hợp, một bộ hoặc một danh sách), lặp qua nó và thêm dấu phân tách chuỗi mà phương thức được gọi. Đây là một ví dụ:
separator = ", " # this is our separator - this string is the one that the method gets called on numbers = "123" # this is our iterable. In this instance, it is a string joinedByComma = separator.join(numbers) print(joinedByComma) # 1, 2, 3
Hãy thử chơi với phương thức kết hợp để xem bạn có thể làm gì với các phần tử lặp khác như danh sách, bộ hoặc bộ giá trị!
low () và upper ()
Các hàm dựng sẵn bên dưới và bên trên giải quyết trường hợp của chuỗi. Lower sẽ tạo một bản sao của chuỗi bằng tất cả chữ thường; upper sẽ tạo một bản sao của chuỗi bằng tất cả chữ hoa:
uppercase = testString.upper() print(uppercase) # THIS IS A TEST STRING lowercase = testString.lower() print(lowercase) # this is a test string
Các phương pháp này chỉ là một vài trong số các phương pháp mà bạn có thể sử dụng khi thao tác với chuỗi. Sau khi học những điều này, hãy xem các phương thức chuỗi Python khác như split()
, replace()
, title()
và swapcase()
.
Kết luận
Trong bài viết này, chúng ta đã xem xét các chuỗi Python là gì, cách chúng được sử dụng và một số phương thức tích hợp sẵn để chúng ta sử dụng. Sau khi bạn đã thành thạo hướng dẫn này, hãy xem bài viết của chúng tôi về định dạng chuỗi trong Python để nâng cao việc học của bạn!