Python - Chuỗi

Chuỗi là một trong những loại phổ biến nhất trong Python. Chúng ta có thể tạo chúng đơn giản bằng cách đặt các ký tự trong dấu ngoặc kép. Python xử lý các dấu ngoặc kép giống như dấu ngoặc kép. Tạo chuỗi cũng đơn giản như gán giá trị cho một biến. Ví dụ -

var1 = 'Hello World!'
var2 = "Python Programming"

Truy cập giá trị trong chuỗi

Python không hỗ trợ kiểu ký tự; chúng được coi là chuỗi có độ dài một, do đó cũng được coi là chuỗi con.

Để truy cập các chuỗi con, hãy sử dụng dấu ngoặc vuông để cắt cùng với chỉ mục hoặc chỉ số để lấy chuỗi con của bạn. Ví dụ -

#!/usr/bin/python

var1 = 'Hello World!'
var2 = "Python Programming"

print "var1[0]: ", var1[0]
print "var2[1:5]: ", var2[1:5]

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

var1[0]:  H
var2[1:5]:  ytho

Cập nhật chuỗi

Bạn có thể "cập nhật" một chuỗi hiện có bằng cách (lại) gán một biến cho một chuỗi khác. Giá trị mới có thể liên quan đến giá trị trước đó của nó hoặc với một chuỗi hoàn toàn khác. Ví dụ -

#!/usr/bin/python

var1 = 'Hello World!'
print "Updated String :- ", var1[:6] + 'Python'

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Updated String :-  Hello Python

Nhân vật thoát

Bảng sau là danh sách các ký tự thoát hoặc không in được có thể được biểu diễn bằng ký hiệu dấu gạch chéo ngược.

Một nhân vật trốn thoát được giải thích; trong một trích dẫn đơn cũng như các chuỗi trích dẫn kép.

Ký hiệu gạch chéo ngược Ký tự thập lục phân Sự miêu tả
\ a 0x07 Chuông hoặc cảnh báo
\ b 0x08 Backspace
\ cx   Control-x
\ Cx   Control-x
\ e 0x1b Bỏ trốn
\ f 0x0c Thức ăn dạng
\ M- \ Cx   Meta-Control-x
\ n 0x0a Dòng mới
\ nnn   Ký hiệu bát phân, trong đó n nằm trong phạm vi 0,7
\ r 0x0d Vận chuyển trở lại
\S 0x20 Không gian
\ t 0x09 Chuyển hướng
\ v 0x0b Tab dọc
\ x   Nhân vật x
\ xnn   Ký hiệu thập lục phân, trong đó n nằm trong phạm vi 0,9, af hoặc AF

Các toán tử đặc biệt của chuỗi

Giả sử biến chuỗi a giữ 'Xin chào' và biến b giữ 'Python', sau đó -

Nhà điều hành Sự miêu tả Thí dụ
+ Nối - Thêm các giá trị ở hai bên của toán tử a + b sẽ cho HelloPython
* Lặp lại - Tạo chuỗi mới, nối nhiều bản sao của cùng một chuỗi a * 2 sẽ cung cấp - Xin chào
[] Slice - Cung cấp cho nhân vật từ chỉ số nhất định a [1] sẽ cho e
[:] Range Slice - Cung cấp các ký tự từ phạm vi đã cho a [1: 4] sẽ cho ell
trong Tư cách thành viên - Trả về true nếu một ký tự tồn tại trong chuỗi đã cho H trong a sẽ cho 1
không có trong Tư cách thành viên - Trả về true nếu một ký tự không tồn tại trong chuỗi đã cho M not in a will give 1
r / R Chuỗi thô - Loại bỏ ý nghĩa thực tế của các ký tự Escape. Cú pháp cho chuỗi thô hoàn toàn giống với chuỗi bình thường, ngoại trừ toán tử chuỗi thô, ký tự "r" đứng trước dấu ngoặc kép. Chữ "r" có thể là chữ thường (r) hoặc chữ hoa (R) và phải được đặt ngay trước dấu ngoặc kép đầu tiên. in r '\ n' bản in \ n và in R '\ n' bản in \ n
% Định dạng - Thực hiện định dạng chuỗi Xem ở phần tiếp theo

Toán tử định dạng chuỗi

Một trong những tính năng thú vị nhất của Python là toán tử định dạng chuỗi%. Toán tử này là duy nhất đối với chuỗi và bù đắp cho gói có các hàm từ họ printf () của C. Sau đây là một ví dụ đơn giản -

#!/usr/bin/python

print "My name is %s and weight is %d kg!" % ('Zara', 21)

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

My name is Zara and weight is 21 kg!

Đây là danh sách tập hợp đầy đủ các ký hiệu có thể được sử dụng cùng với% -

Biểu tượng định dạng Chuyển đổi
% c tính cách
%S chuyển đổi chuỗi qua str () trước khi định dạng
%Tôi số nguyên thập phân có dấu
% d số nguyên thập phân có dấu
% u số nguyên thập phân không dấu
% o số nguyên bát phân
% x số nguyên thập lục phân (chữ thường)
% X số nguyên thập lục phân (chữ cái UPPERcase)
% e ký hiệu hàm mũ (với chữ thường 'e')
% E ký hiệu hàm mũ (với chữ cái UPPERcase 'E')
% f số thực dấu phẩy động
% g ngắn hơn% f và% e
% G ngắn hơn% f và% E

Các biểu tượng và chức năng được hỗ trợ khác được liệt kê trong bảng sau:

Biểu tượng Chức năng
* đối số chỉ định chiều rộng hoặc độ chính xác
- lời biện minh trái
+ hiển thị dấu hiệu
<sp> để lại một khoảng trống trước một số dương
# thêm số 0 ở đầu bát phân ('0') hoặc '0x' hoặc '0X' ở đầu thập lục phân, tùy thuộc vào việc sử dụng 'x' hay 'X'.
0 pad từ bên trái với các số không (thay vì dấu cách)
% '%%' để lại cho bạn một chữ '%' duy nhất
(var) biến ánh xạ (đối số từ điển)
mn m là tổng chiều rộng tối thiểu và n là số chữ số hiển thị sau dấu thập phân (nếu ứng dụng)

Báo giá gấp ba

Dấu ngoặc kép của Python được giải quyết bằng cách cho phép các chuỗi kéo dài nhiều dòng, bao gồm nguyên văn NEWLINEs, TAB và bất kỳ ký tự đặc biệt nào khác.

Cú pháp cho dấu ngoặc kép bao gồm ba dấu ngoặc kép liên tiếp single or double dấu ngoặc kép.

#!/usr/bin/python

para_str = """this is a long string that is made up of
several lines and non-printable characters such as
TAB ( \t ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [ \n ], or just a NEWLINE within
the variable assignment will also show up.
"""
print para_str

Khi đoạn mã trên được thực thi, nó tạo ra kết quả như sau. Lưu ý cách mọi ký tự đặc biệt đã được chuyển đổi thành dạng in của nó, ngay xuống NEWLINE cuối cùng ở cuối chuỗi giữa "lên". và đóng dấu ngoặc kép. Cũng lưu ý rằng NEWLINEs xảy ra với dấu xuống dòng rõ ràng ở cuối dòng hoặc mã thoát của nó (\ n) -

this is a long string that is made up of
several lines and non-printable characters such as
TAB (    ) and they will show up that way when displayed.
NEWLINEs within the string, whether explicitly given like
this within the brackets [
 ], or just a NEWLINE within
the variable assignment will also show up.

Chuỗi thô hoàn toàn không coi dấu gạch chéo ngược là một ký tự đặc biệt. Mọi ký tự bạn đưa vào một chuỗi thô vẫn như cách bạn đã viết -

#!/usr/bin/python

print 'C:\\nowhere'

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

C:\nowhere

Bây giờ hãy sử dụng chuỗi thô. Chúng tôi sẽ đưa biểu thức vàor'expression' như sau -

#!/usr/bin/python

print r'C:\\nowhere'

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

C:\\nowhere

Chuỗi Unicode

Các chuỗi thông thường trong Python được lưu trữ bên trong dưới dạng ASCII 8-bit, trong khi các chuỗi Unicode được lưu trữ dưới dạng Unicode 16-bit. Điều này cho phép tạo ra một bộ ký tự đa dạng hơn, bao gồm các ký tự đặc biệt từ hầu hết các ngôn ngữ trên thế giới. Tôi sẽ hạn chế việc xử lý các chuỗi Unicode của tôi ở những điều sau:

#!/usr/bin/python

print u'Hello, world!'

Khi đoạn mã trên được thực thi, nó tạo ra kết quả sau:

Hello, world!

Như bạn thấy, các chuỗi Unicode sử dụng tiền tố u, cũng như các chuỗi thô sử dụng tiền tố r.

Phương thức chuỗi tích hợp

Python bao gồm các phương thức tích hợp sau để thao tác các chuỗi:

Sr.No. Phương pháp với Mô tả
1 viết hoa ()

Viết hoa chữ cái đầu tiên của chuỗi

2 trung tâm (chiều rộng, lấp đầy)

Trả về một chuỗi có đệm khoảng trắng với chuỗi ban đầu được căn giữa với tổng số cột chiều rộng.

3 count (str, xin = 0, end = len (string))

Đếm số lần str xuất hiện trong chuỗi hoặc trong một chuỗi con của chuỗi nếu chỉ mục bắt đầu xin phép và kết thúc chỉ mục kết thúc được đưa ra.

4 giải mã (mã hóa = 'UTF-8', lỗi = 'nghiêm ngặt')

Giải mã chuỗi bằng codec đã đăng ký để mã hóa. mã hóa mặc định thành mã hóa chuỗi mặc định.

5 mã hóa (mã hóa = 'UTF-8', lỗi = 'nghiêm ngặt')

Trả về phiên bản chuỗi được mã hóa của chuỗi; về lỗi, mặc định là tăng ValueError trừ khi lỗi được đưa ra bằng 'bỏ qua' hoặc 'thay thế'.

6 endwith (hậu tố, xin = 0, end = len (chuỗi))

Xác định xem chuỗi hoặc một chuỗi con của chuỗi (nếu chỉ mục bắt đầu cầu xin và kết thúc chỉ mục kết thúc được đưa ra) kết thúc bằng hậu tố; trả về true nếu vậy và false nếu không.

7 expandtabs (kích thước tab = 8)

Mở rộng các tab trong chuỗi thành nhiều khoảng trắng; mặc định là 8 khoảng trắng cho mỗi tab nếu kích thước tab không được cung cấp.

số 8 tìm (str, xin = 0 end = len (string))

Xác định xem str xảy ra trong chuỗi hay trong một chuỗi con của chuỗi nếu chỉ mục bắt đầu cầu xin và kết thúc chỉ mục kết thúc được trả về chỉ số nếu tìm thấy và -1 nếu không.

9 index (str, xin = 0, end = len (string))

Tương tự như find (), nhưng tăng một ngoại lệ nếu không tìm thấy str.

10 isalnum ()

Trả về true nếu chuỗi có ít nhất 1 ký tự và tất cả các ký tự đều là chữ và số và ngược lại là false.

11 isalpha ()

Trả về true nếu chuỗi có ít nhất 1 ký tự và tất cả các ký tự đều là bảng chữ cái và ngược lại là false.

12 isdigit ()

Trả về true nếu chuỗi chỉ chứa các chữ số và trả về false nếu ngược lại.

13 thấp hơn()

Trả về true nếu chuỗi có ít nhất 1 ký tự được viết hoa và tất cả các ký tự được viết hoa đều là chữ thường và nếu không thì là false.

14 isnumeric ()

Trả về true nếu một chuỗi unicode chỉ chứa các ký tự số và trả về false nếu ngược lại.

15 isspace ()

Trả về true nếu chuỗi chỉ chứa các ký tự khoảng trắng và ngược lại là false.

16 istitle ()

Trả về true nếu chuỗi được đặt đúng "titlecased" và false nếu không.

17 isupper ()

Trả về true nếu chuỗi có ít nhất một ký tự được viết hoa và tất cả các ký tự được viết hoa đều là chữ hoa và ngược lại là false.

18 tham gia (seq)

Hợp nhất (nối) các biểu diễn chuỗi của các phần tử trong chuỗi seq thành một chuỗi, với chuỗi phân tách.

19 len (string)

Trả về độ dài của chuỗi

20 ljust (chiều rộng [, fillchar])

Trả về một chuỗi có đệm dấu cách với chuỗi ban đầu được căn trái cho tổng số cột chiều rộng.

21 thấp hơn()

Chuyển đổi tất cả các chữ hoa trong chuỗi thành chữ thường.

22 lstrip ()

Loại bỏ tất cả khoảng trắng ở đầu trong chuỗi.

23 maketrans ()

Trả về một bảng dịch được sử dụng trong chức năng dịch.

24 max (str)

Trả về ký tự chữ cái tối đa từ chuỗi str.

25 min (str)

Trả về ký tự chữ cái min từ chuỗi str.

26 thay thế (cũ, mới [, max])

Thay thế tất cả các lần xuất hiện cũ trong chuỗi bằng các lần xuất hiện mới hoặc nhiều nhất là tối đa nếu số lần xuất hiện tối đa cho trước.

27 rfind (str, xin = 0, end = len (string))

Tương tự như find (), nhưng tìm kiếm ngược trong chuỗi.

28 rindex (str, xin = 0, end = len (string))

Tương tự như index (), nhưng tìm kiếm ngược trong chuỗi.

29 điều chỉnh (chiều rộng, [, fillchar])

Trả về một chuỗi có đệm khoảng trắng với chuỗi ban đầu được căn phải cho tổng số cột chiều rộng.

30 rstrip ()

Loại bỏ tất cả khoảng trắng ở cuối của chuỗi.

31 split (str = "", num = string.count (str))

Tách chuỗi theo dấu phân cách str (khoảng trắng nếu không được cung cấp) và trả về danh sách các chuỗi con; chia thành nhiều nhất num chuỗi con nếu đã cho.

32 đường phân chia (num = string.count ('\ n'))

Tách toàn bộ chuỗi (hoặc số) NEWLINEs và trả về danh sách từng dòng đã loại bỏ NEWLINEs.

33 startwith (str, xin = 0, end = len (string))

Xác định xem chuỗi hoặc một chuỗi con của chuỗi (nếu chỉ mục bắt đầu cầu xin và kết thúc chỉ mục kết thúc được đưa ra) bắt đầu bằng chuỗi con str; trả về true nếu vậy và false nếu không.

34 dải ([ký tự])

Thực hiện cả lstrip () và rstrip () trên chuỗi.

35 swapcase ()

Đảo ngược trường hợp cho tất cả các chữ cái trong chuỗi.

36 tiêu đề()

Trả về phiên bản "in titlecased" của chuỗi, nghĩa là tất cả các từ bắt đầu bằng chữ hoa và phần còn lại là chữ thường.

37 dịch (bảng, deletechars = "")

Dịch chuỗi theo bảng dịch str (256 ký tự), loại bỏ những ký tự trong chuỗi del.

38 phía trên()

Chuyển đổi chữ thường trong chuỗi thành chữ hoa.

39 zfill (chiều rộng)

Trả về chuỗi ban đầu được đánh dấu bằng số 0 với tổng số ký tự chiều rộng; dành cho các số, zfill () giữ lại bất kỳ dấu nào đã cho (ít hơn một số không).

40 isdecimal ()

Trả về true nếu một chuỗi unicode chỉ chứa các ký tự thập phân và ngược lại là false.