Dòng. Tổng quan

Một chuỗi - là một danh sách (hoặc chuỗi) các ký tự được định vị trong một không sao cụ thể. Toàn bộ chuỗi ký tự được coi là một đối tượng.

Ký tự là bất kỳ thứ gì bạn có thể nhập trên bàn phím bằng một lần nhấn phím (chữ cái, số, dấu gạch chéo ngược hoặc một số ký tự khác).

Chuỗi có thể có khoảng trắng: "Xin chào thế giới!".

Chuỗi rỗng là chuỗi có 0 ký tự.

Python chấp nhận dưới dạng chuỗi bất kỳ thứ gì được đặt trong dấu ngoặc kép (" ") hoặc dấu nháy đơn (' ').

Trong Python, một chuỗi có kiểu str.
 
Cần ghi nhớ!
Chuỗi trong Python là bất biến!


Bạn có thể viết một giá trị mới vào một chuỗi bằng cách sử dụng câu lệnh đầu vào
s = đầu vào()

Bạn cũng có thể chỉ cần gán một giá trị chuỗi cho biến, chẳng hạn như  
s = 'Trăn'
hoặc là
s = "Trăn"

Bạn có thể xác định độ dài của chuỗi bằng hàm tích hợp sẵn len()
n = len(s)


So sánh chuỗi

Các chuỗi có thể được so sánh với nhau giống như các con số. Bạn có thể xác định dòng nào lớn hơn, dòng nào nhỏ hơn.

Khi so sánh các chuỗi, các mã ký tự được so sánh. Có hàng chục, nếu không muốn nói là hàng trăm mã hóa ký tự. Cách dễ nhất để hiểu khái niệm này là hiểu một trong những cách đơn giản nhất, ASCII (đọc tại đây).   ;

Cần phải hiểu rằng trong các bảng mã hiện đại, cả chữ cái tiếng Nga và tiếng Anh đều được sắp xếp theo thứ tự bảng chữ cái, các số cũng đi từ nhỏ hơn đến lớn hơn. 
Ví dụ: trong bảng mã ASCII, mã của chữ cái tiếng Anh 'A' - 65, chữ 'a' - 97, chữ số '0' có mã 48. Các chữ cái tiếng Nga nằm ở phần mở rộng của bảng mã ASCII (các số từ 128 đến 255). Chữ hoa đứng trước (nghĩa là có mã nhỏ hơn) so với chữ thường.

Trong hầu hết các bảng mã được sử dụng, các mẫu đều giống nhau, chữ thường muộn hơn chữ in hoa, số sớm hơn chữ cái và chữ cái tiếng Nga muộn hơn chữ cái tiếng Anh.
 
Khi so sánh các ký tự hoặc chuỗi, Python chuyển đổi các ký tự thành giá trị thứ tự tương ứng của chúng rồi so sánh từ trái sang phải. 

Ví dụ: "đầu máy"  < "tàu hơi nước", bởi vì các từ khác nhau ở chữ cái thứ năm và "trong" < "x".

Chia dòng thành nhiều phần

Khi nhập một chuỗi, bạn có thể chia ngay thành các phần bằng bất kỳ dấu phân cách nào.
Chúng ta đã làm điều này trước đây khi chúng ta nhập nhiều biến số trên cùng một dòng. Chúng ta đã sử dụng phương thức split() để chia một chuỗi thành nhiều phần. Theo mặc định, nó phân tách các chuỗi thành các chuỗi con theo dấu cách.
Sử dụng phương pháp này, bạn có thể chia chuỗi thành các phần, chẳng hạn như bằng dấu cách. Và viết từng phần của chuỗi thành một biến riêng.
 
Ví dụ
s1, s2 = đầu vào().split()

Trong ví dụ này, khi nhập hai từ được phân tách bằng dấu cách, từ đầu tiên được lưu trong biến s1, từ thứ hai - trong biến s2.

Cộng và nhân chuỗi

Các chuỗi có thể được thêm vào, vì điều này, ký hiệu "+" được sử dụng. Thao tác này được gọi là nối chuỗi hoặc nối
 
Ví dụ 
s = "Xin chào,"
s1 = "thế giới"
in(s + s1)
Màn hình sẽ hiển thị cụm từ "Xin chào thế giới" (không có dấu ngoặc kép).

Python thực hiện thao tác nhân một chuỗi với một số: nó thay thế phép cộng nhiều lần.
 
Ví dụ 
sợi dây
s = "thế giới "+"thế giới "+"thế giới "+"thế giới "
có thể được thay thế bằng  
s = "thế giới " *4

Tham chiếu đến chỉ số hàng

Mỗi ký tự trong một chuỗi có một số (được gọi là chỉ mục) và việc đánh số luôn bắt đầu từ số 0 trong nhiều ngôn ngữ.
Trong Python, bạn có thể chỉ định các chỉ mục phủ định. Điều này có nghĩa là nó được tính từ cuối dòng.
 
Ví dụ 

Nếu bạn thêm độ dài của chuỗi vào chỉ mục phủ định, bạn sẽ nhận được kết quả "bình thường" vị trí ký tự.
 
Cần ghi nhớ!
Trong Python, bạn không thể thay đổi một ký tự trong một chuỗi, vì bản thân các chuỗi là bất biến. 

Chuỗi S H e l l o
Chỉ mục S[0] S[1] S[2] S[3] S[4]
Chỉ mục S[-5] S[-4] S[-3] S[-2] S[-1]

Lặp lại tất cả các ký tự

Vì một ký tự có thể được truy cập bằng chỉ mục, bạn có thể sử dụng một vòng lặp biến để lặp qua tất cả các ký tự, điều này sẽ nhận các giá trị chỉ mục có thể. Ví dụ, một chương trình hiển thị tất cả các mã ký tự của chuỗi s sẽ như thế này cho tôi trong phạm vi (len (s)): in(s[i], ord(s[i])) Giải thích về chương trình:
1) Hàm len(s) tìm độ dài của một chuỗi. Chỉ số của ký tự đầu tiên là 0 và chỉ số của ký tự cuối cùng là len(s)-1. Biến vòng lặp i sẽ chỉ nhận giá trị tuần tự từ 0 đến len(s)-1.
2) Trong mỗi dòng, biểu tượng sẽ được hiển thị trước, sau đó là mã của nó, được trả về bởi hàm tích hợp ord().

Phép liệt kê tương tự có thể được viết ngắn hơn: cho c trong s: in(c, ord(c)) Trong đoạn này, tiêu đề vòng lặp lặp qua tất cả các ký tự s, lần lượt đặt chúng vào biến c.

Như đã đề cập, điểm đặc biệt của Python khi làm việc với chuỗi là chuỗi là đối tượng bất biến. Nói cách khác, chúng ta không thể thay đổi các ký tự riêng lẻ của một chuỗi.

Ví dụ: câu lệnh sau sẽ không hoạt động s[5]='a' Tuy nhiên, bạn có thể soạn một dòng mới từ các ký tự có thay đổi theo yêu cầu.
 
Nhiệm vụ
Trong chuỗi nhập, thay thế tất cả các ký tự 'a' thành ký tự 'b'.  s = đầu vào() sMới = "" cho c trong s: nếu c == 'a': c = 'b' sMới += c bản in(sMới)
Trong chương trình này, vòng lặp đi qua tất cả các ký tự của xâu s. Trong thân vòng lặp, ta kiểm tra giá trị của biến с: nếu ký hiệu trùng với ký hiệu 'a' thì ta thay thế bằng 'b' và thêm nó vào cuối dòng mới sNew bằng toán tử cộng.
Tùy chọn này khá chậm.

Trong tương lai, chúng ta sẽ xem xét các hàm thao tác chuỗi tích hợp sẵn và tìm hiểu cách thực hiện nhanh hơn.