Trong Python, chuỗi ký tự hay string
là một trong những kiểu dữ liệu cơ bản nhất, đại diện cho một chuỗi các ký tự được sắp xếp theo một trình tự nhất định và được bao quanh bởi dấu ngoặc đơn, kép hoặc ngoặc kép ba lần. String
trong Python không chỉ giới hạn ở văn bản, mà còn có thể chứa các ký tự số và ký tự đặc biệt, làm cho nó trở thành một công cụ linh hoạt trong việc xử lý và biểu diễn thông tin. Các phương thức tích hợp của string
cung cấp khả năng thực hiện một loạt các thao tác như tìm kiếm, thay thế, chuyển đổi hoa thường, cắt, và nhiều hơn nữa, giúp việc xử lý và thao tác văn bản trở nên đơn giản và hiệu quả. Sự phong phú của các công cụ xử lý chuỗi trong Python làm cho nó trở thành ngôn ngữ lựa chọn cho nhiều ứng dụng liên quan đến văn bản, từ xử lý dữ liệu đơn giản đến phân tích văn bản phức tạp và xây dựng hệ thống tự động hóa.
Hãy xem xét ví dụ sau trong Python để tạo một String.
Cú pháp:
str = "xin chào python !"
Ở đây, nếu chúng ta kiểm tra loại biến str bằng tập lệnh Python
print(type(str)) print(str)
Trong Python, String được coi là chuỗi ký tự, điều đó có nghĩa là Python không hỗ trợ kiểu dữ liệu ký tự; thay vào đó, một ký tự đơn được viết là ‘p’ được coi là String có độ dài 1.
Tạo String trong Python
Chúng ta có thể tạo một String bằng cách đặt các ký tự trong dấu nháy đơn hoặc nháy kép. Python cũng cung cấp dấu ngoặc kép để biểu diễn String, nhưng nó thường được sử dụng cho String nhiều dòng hoặc String tài liệu.
#sử dụng single quotes str1 = 'xin chào Python' print(str1) #sử dụng double quotes str2 = "xin chào Python" print(str2) #sử dụng triple quotes str3 = '''''xin chào python''' print(str3)
Index và phân tách String
Giống như các ngôn ngữ khác, việc lập chỉ mục của các String Python bắt đầu từ 0. Ví dụ: String “HELLO” được lập chỉ mục như được đưa ra trong hình bên dưới.
Hãy xem xét ví dụ sau:
str = "HELLO" # "H" print(str[0]) # "E" print(str[1]) # "L" print(str[2]) # "L" print(str[3]) # "O" print(str[4]) # lệnh sai vì index 6 không có print(str[6])
Như được hiển thị trong Python, toán tử slice [] được sử dụng để truy cập các ký tự riêng lẻ của String. Tuy nhiên, chúng ta có thể sử dụng toán tử : (dấu hai chấm) trong Python để truy cập String con từ String đã cho. Hãy xem xét ví dụ sau.
Ở đây, chúng ta phải lưu ý rằng phạm vi trên được đưa ra trong toán tử slice luôn là loại trừ, tức là nếu str = ‘HELLO’ được đưa ra, thì str[1:3] sẽ luôn bao gồm str[1] = ‘E’, str[2 ] = ‘L’ và không có gì khác.
Hãy xem xét ví dụ sau:
# chuỗi ban đầu str = "Hello python" # slice O đến kết thúc print(str[0:]) # slice 1 đến 4 print(str[1:5]) # slice 2 index đến 3 index print(str[2:4]) # slice 0 đến 2 index print(str[:3]) #slice 4 đến 6 index print(str[4:7])
Chúng ta có thể thực hiện phép cắt âm trong String; nó bắt đầu từ ký tự ngoài cùng bên phải, được biểu thị là -1. Chỉ số ngoài cùng bên phải thứ hai biểu thị -2, v.v. Hãy xem xét hình ảnh sau đây.
str = 'hello python' print(str[-1]) print(str[-3]) print(str[-2:]) print(str[-4:-1]) print(str[-7:-2]) # đảo ngược chuỗi print(str[::-1]) print(str[-12])
Gán lại String
Cập nhật nội dung của các String dễ dàng như gán nó cho một String mới. Đối tượng String không hỗ trợ gán mục, nghĩa là, một String chỉ có thể được thay thế bằng String mới vì không thể thay thế một phần nội dung của nó. Các String là bất biến trong Python.
Hãy xem xét ví dụ sau.
ví dụ 1
str = "HELLO" #gán mới str[0] = "h" print(str)
Traceback (most recent call last): File "<string>", line 2, in <module> TypeError: 'str' object does not support item assignment >
Tuy nhiên, trong ví dụ 1, String str hoàn toàn có thể được gán cho một nội dung mới như được chỉ định trong ví dụ sau.
ví dụ 2
str = "HELLO" print(str) #gán lại string str = "hello" print(str)
Xóa String
Như chúng ta biết rằng các String là bất biến. Chúng tôi không thể xóa hoặc loại bỏ các ký tự khỏi String. Nhưng chúng ta có thể xóa toàn bộ String bằng từ khóa del.
str = "hello python" del str[1]
Traceback (most recent call last): File "<string>", line 2, in <module> TypeError: 'str' object doesn't support item deletion >
Bây giờ chúng tôi đang xóa toàn bộ String.
str1 = "hello python" del str1 print(str1)
Traceback (most recent call last): File "<string>", line 3, in <module> NameError: name 'str1' is not defined >
Toán tử trong String
+ | Được gọi là toán tử nối được sử dụng để nối các String đã cho ở hai bên của toán tử. |
* | Được gọi là toán tử lặp lại. Nó nối nhiều bản sao của cùng một String |
[] | Được gọi là toán tử slice. Nó được sử dụng để truy cập các String con của một String cụ thể. |
[:] | Nó được gọi là toán tử slice range. Nó được sử dụng để truy cập các ký tự từ phạm vi được chỉ định. |
in | Được gọi là toán tử thành viên. Nó trả về nếu một String con cụ thể có trong String đã chỉ định. |
Not in | Nó cũng là một toán tử thành viên và thực hiện ngược lại chính xác của in. Nó trả về true nếu một String con cụ thể không có trong String đã chỉ định. |
r/R | Nó được sử dụng để chỉ định String thô. Các String thô được sử dụng trong trường hợp chúng ta cần in ý nghĩa thực của các ký tự thoát, chẳng hạn như “C://python”. Để xác định bất kỳ String nào dưới dạng String thô, ký tự r hoặc R được theo sau bởi String. |
% | Nó được sử dụng để thực hiện định dạng String. Nó sử dụng các bộ xác định định dạng được sử dụng trong lập trình C như %d hoặc %f để ánh xạ các giá trị của chúng trong python. |
Ví dụ:
str = "Hello" str1 = " world" print(str*3) # in chuỗi Hello x3 print(str+str1)# in ra chuỗi Hello nối world print(str[4]) # in ra ký tự o print(str[2:4]); # in ra ký tự ll print('w' in str) # in ra false vì w trong str print('wo' not in str1) # in ra false vì wo không in str1. print(r'D://python37') # in ra C://python37 print("string bao gồm : %s"%(str)) # in ra chuỗi hello
Định dạng String Python
Chuỗi Escape
Giả sử chúng ta cần viết văn bản dưới dạng – Họ nói, “Xin chào, chuyện gì đang xảy ra vậy?” – câu lệnh đã cho có thể được viết trong dấu ngoặc đơn hoặc dấu ngoặc kép nhưng nó sẽ làm xuất hiện Lỗi Cú pháp vì nó chứa cả dấu ngoặc đơn và dấu ngoặc kép.
Ví dụ
str = "Họ nói, "Xin chào, chuyện gì đang xảy ra vậy?"" print(str)
SyntaxError: invalid syntax
Chúng ta có thể sử dụng ba dấu ngoặc kép để thực hiện vấn đề này nhưng Python cung cấp String Escape.
Dấu gạch chéo ngược (/) biểu thị String Escape. Dấu gạch chéo ngược có thể được theo sau bởi một ký tự đặc biệt và nó được hiểu theo cách khác. Dấu ngoặc đơn bên trong String phải được thoát. Chúng ta có thể áp dụng tương tự như trong dấu ngoặc kép.
Ví dụ:
# sử dụng triple quotes print('''''They said, "What's there?"''') # sử dụng escaping single print('They said, "What\'s going on?"') # sử dụng escaping double quotes print("They said, \"What's going on?\"")
Danh sách của một Escape Sequence được đưa ra dưới đây:
Escape Sequence | Description | Example |
\newline | bỏ qua dòng mới | print(“Python1 \ Python2 \ Python3”) |
\\ | Backslash | print(“\\”) |
\’ | Single Quotes | print(‘\”) |
\\” | Double Quotes | print(“\””) |
\a | ASCII Bell | print(“\a”) |
\b | ASCII Backspace(BS) | print(“Hello \b python”) |
\f | ASCII Formfeed | print(“Hello \f python!”) |
\n | ASCII Linefeed | print(“Hello \n python!”) |
\r | ASCII Carriege Return(CR) | print(“Hello \r python!”) |
\t | ASCII Horizontal Tab | print(“Hello \t python!”) |
\v | ASCII Vertical Tab | print(“Hello \v python!”) |
\ooo | Character with octal value | print(“\110\145\154\154\157”) |
\xHH | Character with hex value. | print(“\x48\x65\x6c\x6c\x6f”) |
Phương thức format()
Phương thức format() là phương thức linh hoạt và hữu ích nhất trong việc định dạng String. Dấu ngoặc nhọn {} được sử dụng làm trình giữ chỗ trong String và được thay thế bằng đối số phương thức format(). Chúng ta hãy xem một ví dụ đã cho:
# sử dụng Curly braces print("{} và {} là bạn tôi".format("Dat","Duc")) #sử dụng Argument vị trí print("{1} và {0} là cầu thủ giỏi ".format("Hai","Huy")) #sử dụng Keyword Argument print("{a},{b},{c}".format(a = "16", b = "17", c = "18"))
Định dạng String Python bằng toán tử %
Python cho phép chúng ta sử dụng các bộ xác định định dạng được sử dụng trong câu lệnh printf của C. Các định dạng định dạng trong Python được xử lý giống như cách chúng được xử lý trong C. Tuy nhiên, Python cung cấp một toán tử bổ sung %, được sử dụng làm giao diện giữa các chỉ định định dạng và các giá trị của chúng. Nói cách khác, chúng ta có thể nói rằng nó liên kết các chỉ định định dạng với các giá trị.
Hãy xem xét ví dụ sau.
Integer = 11; Float = 2.290 String = "testing" print("số number %d\ngiá trị Float %f\nstring có value %s"%(Integer,Float,String))