Là ký hiệu Python

Trong hướng dẫn về Các kiểu dữ liệu cơ bản trong Python, bạn đã học cách xác định chuỗi. các đối tượng chứa chuỗi dữ liệu ký tự. Xử lý dữ liệu ký tự là không thể thiếu trong lập trình. Đây là một ứng dụng hiếm hoi không cần thao tác với chuỗi ít nhất ở một mức độ nào đó

Đây là những gì bạn sẽ học trong hướng dẫn này. Python cung cấp một tập hợp phong phú các toán tử, hàm và phương thức để làm việc với chuỗi. Khi bạn hoàn thành hướng dẫn này, bạn sẽ biết cách truy cập và trích xuất các phần của chuỗi, đồng thời làm quen với các phương thức có sẵn để thao tác và sửa đổi dữ liệu chuỗi

Bạn cũng sẽ được giới thiệu về hai đối tượng Python khác được sử dụng để biểu diễn dữ liệu byte thô, các loại

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
30

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Chuỗi trăn và dữ liệu ký tự” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

Thao tác chuỗi

Các phần bên dưới nêu bật các toán tử, phương thức và hàm có sẵn để làm việc với chuỗi

Loại bỏ các quảng cáo

Toán tử chuỗi

Bạn đã thấy các toán tử

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
31 và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
32 được áp dụng cho các toán hạng số trong hướng dẫn về Toán tử và Biểu thức trong Python. Hai toán tử này cũng có thể được áp dụng cho chuỗi

Toán tử
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
31

Toán tử

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
31 nối các chuỗi. Nó trả về một chuỗi bao gồm các toán hạng được nối với nhau, như được hiển thị ở đây

>>>

>>> s = 'foo'
>>> t = 'bar'
>>> u = 'baz'

>>> s + t
'foobar'
>>> s + t + u
'foobarbaz'

>>> print('Go team' + '!!!')
Go team!!!

Toán tử
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
32

Toán tử

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
32 tạo nhiều bản sao của một chuỗi. Nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 là một chuỗi và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
38 là một số nguyên, thì một trong hai biểu thức sau trả về một chuỗi bao gồm
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
38 bản sao được nối của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
41
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
42

Dưới đây là ví dụ về cả hai hình thức

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'

Toán hạng cấp số nhân

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
38 phải là một số nguyên. Bạn nghĩ rằng nó bắt buộc phải là một số nguyên dương, nhưng thật thú vị, nó có thể bằng 0 hoặc âm, trong trường hợp đó, kết quả là một chuỗi rỗng

>>>

>>> 'foo' * -8
''

Nếu bạn tạo một biến chuỗi và khởi tạo nó thành chuỗi rỗng bằng cách gán cho nó giá trị

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
44, thì bất kỳ ai cũng sẽ nghĩ bạn hơi ngu ngốc. Nhưng nó sẽ hoạt động

Toán tử
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
45

Python cũng cung cấp một toán tử thành viên có thể được sử dụng với các chuỗi. Toán tử

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
45 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu toán hạng đầu tiên được chứa trong toán hạng thứ hai và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 nếu ngược lại

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False

Ngoài ra còn có một , mà ngược lại

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False

Hàm chuỗi tích hợp

Như bạn đã thấy trong hướng dẫn về Các kiểu dữ liệu cơ bản trong Python, Python cung cấp nhiều hàm được tích hợp sẵn cho trình thông dịch và luôn có sẵn. Dưới đây là một số hoạt động với chuỗi

Chức năng Mô tả

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
50Chuyển đổi một số nguyên thành một ký tự
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
51Chuyển đổi một ký tự thành một số nguyên
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
52Trả về độ dài của một chuỗi
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
53Trả về một chuỗi biểu diễn của một đối tượng

Chúng được khám phá đầy đủ hơn dưới đây

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
54

Trả về một giá trị số nguyên cho ký tự đã cho

Ở cấp độ cơ bản nhất, máy tính lưu trữ tất cả thông tin dưới dạng số. Để biểu diễn dữ liệu ký tự, lược đồ dịch được sử dụng để ánh xạ từng ký tự thành số đại diện của nó

Sơ đồ đơn giản nhất được sử dụng phổ biến được gọi là ASCII. Nó bao gồm các ký tự Latinh phổ biến mà bạn có thể quen thuộc nhất khi làm việc với. Đối với các ký tự này,

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
54 trả về giá trị ASCII cho ký tự
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
56

>>>

>>> ord('a')
97
>>> ord('#')
35

ASCII vẫn ổn khi nó đi. Nhưng có nhiều ngôn ngữ khác nhau được sử dụng trên thế giới và vô số biểu tượng và nét chữ xuất hiện trên phương tiện kỹ thuật số. Tập hợp đầy đủ các ký tự có khả năng cần được biểu diễn bằng mã máy tính vượt xa các chữ cái, số và ký hiệu Latinh thông thường mà bạn thường thấy

Unicode là một tiêu chuẩn đầy tham vọng cố gắng cung cấp mã số cho mọi ký tự có thể, trong mọi ngôn ngữ có thể, trên mọi nền tảng có thể. Python 3 hỗ trợ Unicode rộng rãi, bao gồm cả việc cho phép các ký tự Unicode trong chuỗi

Để biết thêm thông tin. Xem Unicode & Mã hóa ký tự trong Python. Hướng dẫn không đau và trong tài liệu Python

Miễn là bạn ở trong miền của các ký tự phổ biến, sẽ có rất ít sự khác biệt thực tế giữa ASCII và Unicode. Nhưng hàm

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
51 cũng sẽ trả về các giá trị số cho các ký tự Unicode

>>>

>>> ord('€')
8364
>>> ord('∑')
8721

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
58

Trả về một giá trị ký tự cho số nguyên đã cho

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
50 làm ngược lại với
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
51. Cho trước một giá trị số
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
38,
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
58 trả về một chuỗi đại diện cho ký tự tương ứng với
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
38

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
50 cũng xử lý các ký tự Unicode

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
65

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

Với

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
52, bạn có thể kiểm tra độ dài chuỗi Python.
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
65 trả về số ký tự trong
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37

>>>

>>> s = 'I am a string.'
>>> len(s)
14

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
69

Trả về một chuỗi đại diện của một đối tượng

Hầu như bất kỳ đối tượng nào trong Python đều có thể được hiển thị dưới dạng chuỗi.

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
69 trả về chuỗi đại diện của đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
71

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
0

Loại bỏ các quảng cáo

Lập chỉ mục chuỗi

Thông thường trong các ngôn ngữ lập trình, các mục riêng lẻ trong một tập hợp dữ liệu được sắp xếp có thể được truy cập trực tiếp bằng cách sử dụng chỉ mục số hoặc giá trị khóa. Quá trình này được gọi là lập chỉ mục

Trong Python, các chuỗi được sắp xếp theo thứ tự các chuỗi dữ liệu ký tự và do đó có thể được lập chỉ mục theo cách này. Có thể truy cập các ký tự riêng lẻ trong một chuỗi bằng cách chỉ định tên chuỗi theo sau là một số trong dấu ngoặc vuông (

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
72)

Lập chỉ mục chuỗi trong Python là không dựa trên. ký tự đầu tiên trong chuỗi có chỉ số

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
73, ký tự tiếp theo có chỉ số
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
74, v.v. Chỉ số của ký tự cuối cùng sẽ là độ dài của chuỗi trừ đi một

Ví dụ: sơ đồ các chỉ số của chuỗi

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
75 sẽ trông như thế này

Là ký hiệu Python
Chỉ số chuỗi

Các ký tự riêng lẻ có thể được truy cập theo chỉ mục như sau

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
1

Cố gắng lập chỉ mục ngoài phần cuối của chuỗi dẫn đến lỗi

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
2

Chỉ mục chuỗi cũng có thể được chỉ định bằng số âm, trong trường hợp đó, việc lập chỉ mục xảy ra từ cuối chuỗi trở lại.

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
76 đề cập đến ký tự cuối cùng,
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
77 ký tự thứ hai đến cuối cùng, v.v. Đây là cùng một sơ đồ hiển thị cả chỉ số dương và âm trong chuỗi
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
75

Là ký hiệu Python
Chỉ số chuỗi dương và âm

Dưới đây là một số ví dụ về lập chỉ mục tiêu cực

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
3

Cố gắng lập chỉ mục với các số âm ngoài phần đầu của chuỗi dẫn đến lỗi

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
4

Đối với bất kỳ chuỗi không trống nào, cả

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37,
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
80 và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
81 đều trả về ký tự cuối cùng. Không có bất kỳ chỉ mục nào có ý nghĩa đối với một chuỗi rỗng

cắt chuỗi

Python cũng cho phép một dạng cú pháp lập chỉ mục trích xuất các chuỗi con từ một chuỗi, được gọi là cắt chuỗi. Nếu

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 là một chuỗi, một biểu thức có dạng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
83 trả về phần của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 bắt đầu với vị trí
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
85 và cho đến nhưng không bao gồm vị trí
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
38

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
5

Nhớ. Các chỉ số chuỗi dựa trên số không. Ký tự đầu tiên trong chuỗi có chỉ số

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
73. Điều này áp dụng cho cả lập chỉ mục tiêu chuẩn và cắt lát

Một lần nữa, chỉ mục thứ hai chỉ định ký tự đầu tiên không được bao gồm trong kết quả—ký tự

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
88 (
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
89) trong ví dụ trên. Điều đó có vẻ hơi không trực quan, nhưng nó tạo ra kết quả này có ý nghĩa. biểu thức
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
83 sẽ trả về một chuỗi con có độ dài _________ 91 ký tự, trong trường hợp này là _________92

Nếu bạn bỏ qua chỉ mục đầu tiên, lát cắt sẽ bắt đầu ở đầu chuỗi. Do đó,

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
93 và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
94 là tương đương

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
6

Tương tự, nếu bạn bỏ qua chỉ mục thứ hai như trong

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
95, thì lát cắt sẽ kéo dài từ chỉ mục đầu tiên cho đến hết chuỗi. Đây là một sự thay thế hay, ngắn gọn cho
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
96 rườm rà hơn

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
7

Đối với bất kỳ chuỗi

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 và bất kỳ số nguyên nào
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
38 (
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
99),
>>> 'foo' * -8
''
00 sẽ bằng với
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
8

Bỏ qua cả hai chỉ số trả về toàn bộ chuỗi gốc. Theo đúng nghĩa đen. Nó không phải là một bản sao, nó là một tham chiếu đến chuỗi gốc

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
9

Nếu chỉ mục đầu tiên trong một lát cắt lớn hơn hoặc bằng chỉ mục thứ hai, Python sẽ trả về một chuỗi rỗng. Đây là một cách khó hiểu khác để tạo ra một chuỗi trống, trong trường hợp bạn đang tìm kiếm một chuỗi

>>>

>>> 'foo' * -8
''
0

Các chỉ số tiêu cực cũng có thể được sử dụng với cắt lát.

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
76 đề cập đến ký tự cuối cùng,
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
77 từ thứ hai đến cuối cùng, v.v., giống như với lập chỉ mục đơn giản. Sơ đồ dưới đây cho thấy cách cắt chuỗi con
>>> 'foo' * -8
''
04 từ chuỗi
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
75 bằng cách sử dụng cả chỉ số dương và âm

Là ký hiệu Python
Cắt chuỗi với các chỉ số tích cực và tiêu cực

Đây là mã Python tương ứng

>>>

>>> 'foo' * -8
''
1

Loại bỏ các quảng cáo

Chỉ định một Stride trong một String Slice

Có thêm một biến thể của cú pháp cắt để thảo luận. Thêm một

>>> 'foo' * -8
''
06 bổ sung và một chỉ số thứ ba biểu thị một sải chân (còn gọi là bước), cho biết có bao nhiêu ký tự cần nhảy sau khi truy xuất từng ký tự trong lát cắt

Ví dụ: đối với chuỗi

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
75, lát cắt
>>> 'foo' * -8
''
08 bắt đầu bằng ký tự đầu tiên và kết thúc bằng ký tự cuối cùng (toàn bộ chuỗi) và mọi ký tự thứ hai đều bị bỏ qua. Điều này được thể hiện trong sơ đồ sau

Là ký hiệu Python
Lập chỉ mục chuỗi với Stride

Tương tự,

>>> 'foo' * -8
''
09 chỉ định một lát cắt bắt đầu bằng ký tự thứ hai (chỉ mục
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
74) và kết thúc bằng ký tự cuối cùng, và một lần nữa, giá trị sải chân
>>> 'foo' * -8
''
11 khiến mọi ký tự khác bị bỏ qua

Là ký hiệu Python
Lập chỉ mục chuỗi khác với Stride

Mã REPL minh họa được hiển thị ở đây

>>>

>>> 'foo' * -8
''
2

Như với bất kỳ phép cắt nào, chỉ số đầu tiên và thứ hai có thể được bỏ qua và mặc định tương ứng với các ký tự đầu tiên và cuối cùng

>>>

>>> 'foo' * -8
''
3

Bạn cũng có thể chỉ định giá trị sải chân âm, trong trường hợp đó, Python sẽ lùi lại qua chuỗi. Trong trường hợp đó, chỉ số bắt đầu/đầu tiên phải lớn hơn chỉ số kết thúc/thứ hai

>>>

>>> 'foo' * -8
''
4

Trong ví dụ trên,

>>> 'foo' * -8
''
12 có nghĩa là “bắt đầu từ ký tự cuối cùng và lùi lại bởi
>>> 'foo' * -8
''
11, cho đến nhưng không bao gồm ký tự đầu tiên. ”

Khi bạn lùi lại, nếu chỉ số thứ nhất và thứ hai bị bỏ qua, giá trị mặc định sẽ bị đảo ngược theo cách trực quan. chỉ mục đầu tiên mặc định ở cuối chuỗi và chỉ mục thứ hai mặc định ở đầu. Đây là một ví dụ

>>>

>>> 'foo' * -8
''
5

Đây là một mô hình phổ biến để đảo ngược một chuỗi

>>>

>>> 'foo' * -8
''
6

Nội suy các biến thành một chuỗi

Trong Python phiên bản 3. 6, một cơ chế định dạng chuỗi mới đã được giới thiệu. Tính năng này có tên chính thức là Formatted String Literal, nhưng thường được gọi bằng biệt danh f-string

Khả năng định dạng được cung cấp bởi chuỗi f rất rộng và sẽ không được trình bày chi tiết đầy đủ ở đây. Nếu muốn tìm hiểu thêm, bạn có thể xem bài viết Real Python Python 3’s f-Strings. Cú pháp định dạng chuỗi được cải thiện (Hướng dẫn). Ngoài ra còn có một hướng dẫn về Đầu ra được định dạng xuất hiện sau trong loạt bài này để tìm hiểu sâu hơn về chuỗi f

Một tính năng đơn giản của f-string mà bạn có thể bắt đầu sử dụng ngay là nội suy biến. Bạn có thể chỉ định một tên biến trực tiếp trong một chuỗi ký tự f và Python sẽ thay thế tên đó bằng giá trị tương ứng

Ví dụ: giả sử bạn muốn hiển thị kết quả của phép tính số học. Bạn có thể làm điều này với một câu lệnh

>>> 'foo' * -8
''
14 đơn giản, phân tách các giá trị số và chuỗi ký tự bằng dấu phẩy

>>>

>>> 'foo' * -8
''
7

Nhưng điều này là cồng kềnh. Để thực hiện điều tương tự bằng cách sử dụng chuỗi f

  • Chỉ định chữ thường
    >>> 'foo' * -8
    ''
    
    15 hoặc chữ hoa
    >>> 'foo' * -8
    ''
    
    16 ngay trước dấu ngoặc kép mở đầu của chuỗi ký tự. Điều này cho Python biết đó là chuỗi f thay vì chuỗi tiêu chuẩn
  • Chỉ định bất kỳ biến nào được nội suy trong dấu ngoặc nhọn (
    >>> 'foo' * -8
    ''
    
    17)

Viết lại bằng chuỗi f, ví dụ trên trông gọn gàng hơn nhiều

>>>

>>> 'foo' * -8
''
8

Bất kỳ cơ chế trích dẫn nào trong số ba cơ chế trích dẫn của Python đều có thể được sử dụng để xác định chuỗi f

>>>

>>> 'foo' * -8
''
9

Loại bỏ các quảng cáo

sửa đổi chuỗi

Tóm lại, bạn không thể. Chuỗi là một trong những kiểu dữ liệu Python coi là bất biến, nghĩa là không thể thay đổi. Trên thực tế, tất cả các kiểu dữ liệu bạn đã thấy cho đến nay đều là bất biến. (Python cung cấp các kiểu dữ liệu có thể thay đổi, như bạn sẽ sớm thấy. )

Một tuyên bố như thế này sẽ gây ra một lỗi

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
0

Trên thực tế, thực sự không cần phải sửa đổi nhiều chuỗi. Bạn thường có thể dễ dàng thực hiện những gì mình muốn bằng cách tạo một bản sao của chuỗi gốc có thay đổi mong muốn tại chỗ. Có rất nhiều cách để làm điều này trong Python. Đây là một khả năng

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
1

Ngoài ra còn có một phương thức chuỗi tích hợp để thực hiện điều này

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
2

Đọc tiếp để biết thêm thông tin về các phương thức chuỗi tích hợp

Các phương thức chuỗi tích hợp

Bạn đã học trong hướng dẫn về Biến trong Python rằng Python là một ngôn ngữ hướng đối tượng cao. Mỗi mục dữ liệu trong chương trình Python là một đối tượng

Bạn cũng đã quen thuộc với các chức năng. các thủ tục có thể gọi được mà bạn có thể gọi để thực hiện các tác vụ cụ thể

Phương thức tương tự như hàm. Một phương thức là một loại thủ tục có thể gọi được chuyên biệt được liên kết chặt chẽ với một đối tượng. Giống như một hàm, một phương thức được gọi để thực hiện một tác vụ riêng biệt, nhưng nó được gọi trên một đối tượng cụ thể và có kiến ​​thức về đối tượng đích của nó trong quá trình thực thi

Cú pháp gọi một phương thức trên một đối tượng như sau

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
3

Điều này gọi phương thức

>>> 'foo' * -8
''
18 trên đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
71.
>>> 'foo' * -8
''
20 chỉ định các đối số được truyền cho phương thức (nếu có)

Bạn sẽ khám phá nhiều hơn nữa về việc định nghĩa và gọi các phương thức sau này trong phần thảo luận về lập trình hướng đối tượng. Hiện tại, mục tiêu là trình bày một số phương thức tích hợp được sử dụng phổ biến hơn mà Python hỗ trợ để thao tác trên các đối tượng chuỗi

Trong các định nghĩa phương thức sau đây, các đối số được chỉ định trong ngoặc vuông (_______0_______72) là tùy chọn

Chuyển đổi trường hợp

Các phương thức trong nhóm này thực hiện chuyển đổi trường hợp trên chuỗi mục tiêu

>>> 'foo' * -8
''
22

Viết hoa chuỗi mục tiêu

>>> 'foo' * -8
''
22 trả về một bản sao của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 với ký tự đầu tiên được chuyển thành chữ hoa và tất cả các ký tự khác được chuyển thành chữ thường

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
4

Các ký tự không phải là bảng chữ cái không thay đổi

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
5

>>> 'foo' * -8
''
25

Chuyển đổi các ký tự chữ cái thành chữ thường

>>> 'foo' * -8
''
25 trả về một bản sao của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 với tất cả các ký tự chữ cái được chuyển thành chữ thường

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
6

>>> 'foo' * -8
''
28

Trường hợp hoán đổi của các ký tự chữ cái

>>> 'foo' * -8
''
28 trả về một bản sao của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 với các ký tự chữ hoa được chuyển đổi thành chữ thường và ngược lại

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
7

>>> 'foo' * -8
''
31

Chuyển đổi chuỗi mục tiêu thành "trường hợp tiêu đề. ”

>>> 'foo' * -8
''
31 trả về một bản sao của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 trong đó chữ cái đầu tiên của mỗi từ được chuyển đổi thành chữ hoa và các chữ cái còn lại là chữ thường

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
8

Phương pháp này sử dụng một thuật toán khá đơn giản. Nó không cố gắng phân biệt giữa các từ quan trọng và không quan trọng, và nó không xử lý các dấu nháy đơn, sở hữu hoặc từ viết tắt một cách duyên dáng

>>>

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
9

>>> 'foo' * -8
''
34

Chuyển đổi các ký tự chữ cái thành chữ hoa

>>> 'foo' * -8
''
34 trả về một bản sao của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 với tất cả các ký tự chữ cái được chuyển thành chữ hoa

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
0

Tìm và thay thế

Các phương thức này cung cấp các phương tiện khác nhau để tìm kiếm chuỗi mục tiêu cho một chuỗi con đã chỉ định

Mỗi phương thức trong nhóm này hỗ trợ các đối số tùy chọn

>>> 'foo' * -8
''
37 và
>>> 'foo' * -8
''
38. Chúng được hiểu là để cắt chuỗi. hành động của phương thức bị hạn chế đối với phần của chuỗi đích bắt đầu từ vị trí ký tự
>>> 'foo' * -8
''
37 và tiến tới nhưng không bao gồm vị trí ký tự
>>> 'foo' * -8
''
38. Nếu
>>> 'foo' * -8
''
37 được chỉ định nhưng
>>> 'foo' * -8
''
38 thì không, phương pháp này sẽ áp dụng cho phần của chuỗi mục tiêu từ
>>> 'foo' * -8
''
37 đến hết chuỗi

>>> 'foo' * -8
''
44

Đếm số lần xuất hiện của một chuỗi con trong chuỗi đích

>>> 'foo' * -8
''
45 trả về số lần xuất hiện không chồng lấp của chuỗi con
>>> 'foo' * -8
''
46 trong
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
1

Số lượng được giới hạn ở số lần xuất hiện trong chuỗi con được chỉ định bởi

>>> 'foo' * -8
''
37 và
>>> 'foo' * -8
''
38, nếu chúng được chỉ định

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
2

>>> 'foo' * -8
''
50

Xác định xem chuỗi mục tiêu có kết thúc bằng một chuỗi con đã cho hay không

>>> 'foo' * -8
''
51 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 kết thúc bằng
>>> 'foo' * -8
''
54 đã chỉ định và ngược lại là
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
3

Việc so sánh được giới hạn ở chuỗi con được chỉ định bởi

>>> 'foo' * -8
''
37 và
>>> 'foo' * -8
''
38, nếu chúng được chỉ định

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
4

>>> 'foo' * -8
''
58

Tìm kiếm chuỗi mục tiêu cho một chuỗi con nhất định

Bạn có thể sử dụng

>>> 'foo' * -8
''
59 để xem liệu một chuỗi Python có chứa một chuỗi con cụ thể hay không.
>>> 'foo' * -8
''
60 trả về chỉ số thấp nhất trong
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 nơi chuỗi con
>>> 'foo' * -8
''
46 được tìm thấy

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
5

Phương thức này trả về

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
76 nếu không tìm thấy chuỗi con đã chỉ định

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
6

Việc tìm kiếm được giới hạn trong chuỗi con được chỉ định bởi

>>> 'foo' * -8
''
37 và
>>> 'foo' * -8
''
38, nếu chúng được chỉ định

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
7

>>> 'foo' * -8
''
66

Tìm kiếm chuỗi mục tiêu cho một chuỗi con nhất định

Phương pháp này giống với phương pháp

>>> 'foo' * -8
''
59, ngoại trừ việc nó đưa ra một ngoại lệ nếu không tìm thấy ____17_______46 thay vì trả về ___________76

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
8

>>> 'foo' * -8
''
70

Tìm kiếm chuỗi mục tiêu cho một chuỗi con nhất định bắt đầu từ cuối

>>> 'foo' * -8
''
71 trả về chỉ số cao nhất trong
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 nơi chuỗi con
>>> 'foo' * -8
''
46 được tìm thấy

>>>

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
9

Tương tự như với

>>> 'foo' * -8
''
59, nếu không tìm thấy chuỗi con, hàm trả về ___0_______76

>>>

>>> ord('a')
97
>>> ord('#')
35
0

Việc tìm kiếm được giới hạn trong chuỗi con được chỉ định bởi

>>> 'foo' * -8
''
37 và
>>> 'foo' * -8
''
38, nếu chúng được chỉ định

>>>

>>> ord('a')
97
>>> ord('#')
35
1

>>> 'foo' * -8
''
78

Tìm kiếm chuỗi mục tiêu cho một chuỗi con nhất định bắt đầu từ cuối

Phương pháp này giống với phương pháp

>>> 'foo' * -8
''
79, ngoại trừ việc nó đưa ra một ngoại lệ nếu không tìm thấy
>>> 'foo' * -8
''
46 thay vì trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
76

>>>

>>> ord('a')
97
>>> ord('#')
35
2

>>> 'foo' * -8
''
82

Xác định xem chuỗi mục tiêu có bắt đầu bằng một chuỗi con đã cho hay không

Khi bạn sử dụng phương thức

>>> 'foo' * -8
''
83 của Python,
>>> 'foo' * -8
''
84 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 bắt đầu bằng
>>> 'foo' * -8
''
54 đã chỉ định và ngược lại là ________0____48

>>>

>>> ord('a')
97
>>> ord('#')
35
3

Việc so sánh được giới hạn ở chuỗi con được chỉ định bởi

>>> 'foo' * -8
''
37 và
>>> 'foo' * -8
''
38, nếu chúng được chỉ định

>>>

>>> ord('a')
97
>>> ord('#')
35
4

Phân loại nhân vật

Các phương thức trong nhóm này phân loại một chuỗi dựa trên các ký tự mà nó chứa

>>> 'foo' * -8
''
91

Xác định xem chuỗi mục tiêu có bao gồm các ký tự chữ và số hay không

>>> 'foo' * -8
''
91 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 không trống và tất cả các ký tự của nó là chữ và số (một chữ cái hoặc một số) và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 nếu không

>>>

>>> ord('a')
97
>>> ord('#')
35
5

>>> 'foo' * -8
''
96

Xác định xem chuỗi mục tiêu có bao gồm các ký tự chữ cái hay không

>>> 'foo' * -8
''
96 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 không trống và tất cả các ký tự của nó là chữ cái, và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 nếu ngược lại

>>>

>>> ord('a')
97
>>> ord('#')
35
6

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
01

Xác định xem chuỗi mục tiêu có bao gồm các ký tự chữ số hay không

Bạn có thể sử dụng phương thức

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
02 của Python để kiểm tra xem chuỗi của bạn có chỉ gồm các chữ số không.
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
01 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 không trống và tất cả các ký tự của nó là chữ số, và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 nếu không

>>>

>>> ord('a')
97
>>> ord('#')
35
7

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
07

Xác định xem chuỗi đích có phải là mã định danh Python hợp lệ hay không

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
07 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 là mã định danh Python hợp lệ theo định nghĩa ngôn ngữ và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 nếu không

>>>

>>> ord('a')
97
>>> ord('#')
35
8

Ghi chú.

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
12 sẽ trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 cho một chuỗi khớp với từ khóa Python mặc dù đó không thực sự là một mã định danh hợp lệ

>>>

>>> ord('a')
97
>>> ord('#')
35
9

Bạn có thể kiểm tra xem một chuỗi có khớp với từ khóa Python hay không bằng cách sử dụng hàm có tên là

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
14, hàm này nằm trong một mô-đun có tên là
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
15. Một cách có thể để làm điều này được hiển thị dưới đây

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
0

Nếu bạn thực sự muốn đảm bảo rằng một chuỗi sẽ đóng vai trò là mã định danh Python hợp lệ, bạn nên kiểm tra xem

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
12 có phải là
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 không và rằng
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
14 là
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48

Xem Các gói và mô-đun Python—Giới thiệu để đọc thêm về các mô-đun Python

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
20

Xác định xem các ký tự chữ cái của chuỗi mục tiêu có phải là chữ thường hay không

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
20 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 không trống và tất cả các ký tự chữ cái chứa trong đó là chữ thường và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 nếu không. Các ký tự không phải là bảng chữ cái được bỏ qua

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
1

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
25

Xác định xem chuỗi mục tiêu có bao gồm toàn bộ các ký tự có thể in được hay không

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
25 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 trống hoặc tất cả các ký tự chữ cái chứa trong đó đều có thể in được. Nó trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 chứa ít nhất một ký tự không in được. Các ký tự không phải là bảng chữ cái được bỏ qua

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
2

Ghi chú. Đây là phương thức duy nhất

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
31 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 là một chuỗi rỗng. Tất cả những cái khác trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 cho một chuỗi rỗng

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
35

Xác định xem chuỗi mục tiêu có bao gồm các ký tự khoảng trắng hay không

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
35 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 không trống và tất cả các ký tự đều là ký tự khoảng trắng, và ngược lại là
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48

Các ký tự khoảng trắng thường gặp nhất là khoảng trắng

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
40, tab
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
41 và dòng mới
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
42

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
3

Tuy nhiên, có một vài ký tự ASCII khác đủ điều kiện là khoảng trắng và nếu bạn tính đến các ký tự Unicode, thì có khá nhiều ký tự ngoài đó

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
4

(

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
43 và
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
44 là các chuỗi thoát cho các ký tự Trả về Vận chuyển và Nguồn cấp dữ liệu Biểu mẫu ASCII;. )

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
46

Xác định xem chuỗi mục tiêu có phải là tiêu đề không

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
46 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 không trống, ký tự chữ cái đầu tiên của mỗi từ là chữ hoa và tất cả các ký tự chữ cái khác trong mỗi từ là chữ thường. Nó trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 nếu không

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
5

Ghi chú. Đây là cách tài liệu Python mô tả

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
51, trong trường hợp bạn thấy điều này trực quan hơn. “Các ký tự chữ hoa chỉ có thể theo sau các ký tự không có chữ cái và các ký tự chữ thường chỉ có các ký tự có chữ hoa. ”

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
52

Xác định xem các ký tự chữ cái của chuỗi mục tiêu có phải là chữ hoa hay không

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
52 trả về
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
47 nếu
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 không trống và tất cả các ký tự chữ cái chứa trong đó là chữ hoa và
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
48 nếu không. Các ký tự không phải là bảng chữ cái được bỏ qua

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
6

Định dạng chuỗi

Các phương thức trong nhóm này sửa đổi hoặc nâng cao định dạng của một chuỗi

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
57

Căn giữa một chuỗi trong một trường

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
58 trả về một chuỗi bao gồm
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 được căn giữa trong một trường có chiều rộng
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
60. Theo mặc định, phần đệm bao gồm ký tự khoảng trắng ASCII

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
7

Nếu đối số

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
61 tùy chọn được chỉ định, nó sẽ được sử dụng làm ký tự đệm

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
8

Nếu

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 đã tồn tại ít nhất bằng khoảng thời gian của
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
60, nó sẽ được trả về không thay đổi

>>>

>>> ord('€')
8364
>>> ord('∑')
8721
9

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
64

Mở rộng các tab trong một chuỗi

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
65 thay thế từng ký tự tab (
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
41) bằng dấu cách. Theo mặc định, các khoảng trống được điền vào giả sử tab dừng ở mỗi cột thứ tám

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
0

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
67 là một tham số từ khóa tùy chọn chỉ định các cột dừng tab thay thế

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
1

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
68

Căn trái một chuỗi trong trường

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
69 trả về một chuỗi bao gồm
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 được căn trái trong một trường có chiều rộng
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
60. Theo mặc định, phần đệm bao gồm ký tự khoảng trắng ASCII

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
2

Nếu đối số

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
61 tùy chọn được chỉ định, nó sẽ được sử dụng làm ký tự đệm

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
3

Nếu

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 đã tồn tại ít nhất bằng khoảng thời gian của
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
60, nó sẽ được trả về không thay đổi

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
4

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
75

Cắt các ký tự đầu từ một chuỗi

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
76 trả về một bản sao của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 với bất kỳ ký tự khoảng trắng nào bị xóa khỏi đầu bên trái

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
5

Nếu đối số

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
78 tùy chọn được chỉ định, thì đó là một chuỗi chỉ định bộ ký tự sẽ bị xóa

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
6

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
79

Thay thế các lần xuất hiện của một chuỗi con trong một chuỗi

Trong Python, để xóa một ký tự khỏi chuỗi, bạn có thể sử dụng phương thức chuỗi Python

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
80.
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
81 trả về một bản sao của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 với tất cả các lần xuất hiện của chuỗi con
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
83 được thay thế bằng
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
84

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
7

Nếu đối số

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
85 tùy chọn được chỉ định, thì tối đa
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
85 thay thế được thực hiện, bắt đầu từ đầu bên trái của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
8

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
88

Căn phải một chuỗi trong một trường

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
89 trả về một chuỗi bao gồm
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 được căn phải trong một trường có chiều rộng
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
60. Theo mặc định, phần đệm bao gồm ký tự khoảng trắng ASCII

>>>

>>> chr(97)
'a'
>>> chr(35)
'#'
9

Nếu đối số

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
61 tùy chọn được chỉ định, nó sẽ được sử dụng làm ký tự đệm

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
0

Nếu

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 đã tồn tại ít nhất bằng khoảng thời gian của
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
60, nó sẽ được trả về không thay đổi

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
1

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
95

Cắt các ký tự theo sau từ một chuỗi

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
96 trả về một bản sao của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 với bất kỳ ký tự khoảng trắng nào bị xóa khỏi đầu bên phải

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
2

Nếu đối số

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
78 tùy chọn được chỉ định, thì đó là một chuỗi chỉ định bộ ký tự sẽ bị xóa

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
3

>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
99

Tách các ký tự từ đầu bên trái và bên phải của một chuỗi

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
00 về cơ bản tương đương với việc gọi
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
76 và
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
96 liên tiếp. Không có đối số
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
78, nó sẽ loại bỏ khoảng trắng ở đầu và cuối

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
4

Như với

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
04 và
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
05, đối số tùy chọn
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
78 chỉ định bộ ký tự sẽ bị xóa

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
5

Ghi chú. Khi giá trị trả về của một phương thức chuỗi là một chuỗi khác, như thường lệ, các phương thức có thể được gọi liên tiếp bằng cách xâu chuỗi các lệnh gọi

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
6

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
07

Đệm một chuỗi ở bên trái bằng số không

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
07 trả về một bản sao của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 được đệm bên trái với ____24_______10 ký tự cho _______60 được chỉ định

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
7

Nếu

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 chứa một dấu hiệu ở đầu, thì nó vẫn ở cạnh trái của chuỗi kết quả sau khi các số 0 được chèn vào

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
8

Nếu

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 đã tồn tại ít nhất bằng khoảng thời gian của
>>> s = 'foo'

>>> s in 'That\'s food for thought.'
True
>>> s in 'That\'s good for now.'
False
60, nó sẽ được trả về không thay đổi

>>>

>>> chr(8364)
'€'
>>> chr(8721)
'∑'
9

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
15 hữu ích nhất cho các biểu diễn chuỗi số, nhưng Python vẫn vui vẻ sẽ không đệm một chuỗi không phải là

>>>

>>> s = 'I am a string.'
>>> len(s)
14
0

Chuyển đổi giữa chuỗi và danh sách

Các phương thức trong nhóm này chuyển đổi giữa một chuỗi và một số kiểu dữ liệu tổng hợp bằng cách dán các đối tượng lại với nhau để tạo thành một chuỗi hoặc bằng cách chia một chuỗi thành nhiều phần

Các phương thức này hoạt động trên hoặc trả về các lần lặp, thuật ngữ Python chung cho một tập hợp các đối tượng tuần tự. Bạn sẽ khám phá hoạt động bên trong của iterables chi tiết hơn trong hướng dẫn sắp tới về phép lặp xác định

Nhiều phương thức trong số này trả về một danh sách hoặc một bộ. Đây là hai loại dữ liệu tổng hợp tương tự nhau, là ví dụ nguyên mẫu của các lần lặp trong Python. Chúng được đề cập trong hướng dẫn tiếp theo, vì vậy bạn sẽ sớm tìm hiểu về chúng. Cho đến lúc đó, chỉ cần nghĩ về chúng như các chuỗi giá trị. Một danh sách được đặt trong dấu ngoặc vuông (

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
72) và một bộ được đặt trong dấu ngoặc đơn (_______24_______17)

Với phần giới thiệu đó, chúng ta hãy xem nhóm phương thức chuỗi cuối cùng này

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
18

Nối các chuỗi từ một iterable

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
18 trả về chuỗi kết quả từ việc nối các đối tượng trong
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
20 được phân tách bằng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37

Lưu ý rằng

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
22 được gọi trên
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37, chuỗi dấu phân cách.
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
20 cũng phải là một chuỗi các đối tượng chuỗi

Một số mã mẫu sẽ giúp làm rõ. Trong ví dụ sau, dấu phân cách

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 là chuỗi
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
26 và
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
20 là danh sách các giá trị chuỗi

>>>

>>> s = 'I am a string.'
>>> len(s)
14
1

Kết quả là một chuỗi duy nhất bao gồm các đối tượng danh sách được phân tách bằng dấu phẩy

Trong ví dụ tiếp theo,

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
20 được chỉ định là một giá trị chuỗi đơn. Khi một giá trị chuỗi được sử dụng dưới dạng có thể lặp lại, nó được hiểu là danh sách các ký tự riêng lẻ của chuỗi

>>>

>>> s = 'I am a string.'
>>> len(s)
14
2

Như vậy, kết quả của

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
29 là một chuỗi bao gồm mỗi ký tự trong
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
30 được phân tách bởi
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
31

Ví dụ này không thành công vì một trong các đối tượng trong

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
20 không phải là một chuỗi

>>>

>>> s = 'I am a string.'
>>> len(s)
14
3

Điều đó có thể được khắc phục, mặc dù

>>>

>>> s = 'I am a string.'
>>> len(s)
14
4

Như bạn sẽ sớm thấy, nhiều đối tượng phức hợp trong Python có thể được hiểu là các đối tượng có thể lặp lại và

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
22 đặc biệt hữu ích để tạo các chuỗi từ chúng

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
34

Chia một chuỗi dựa trên dấu phân cách

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
34 tách
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 ở lần xuất hiện đầu tiên của chuỗi
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
37. Giá trị trả về là một bộ ba phần bao gồm

  • Phần của
    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    37 trước
    >>> 'z' not in 'abc'
    True
    >>> 'z' not in 'xyz'
    False
    
    37
  • >>> 'z' not in 'abc'
    True
    >>> 'z' not in 'xyz'
    False
    
    37 chính nó
  • Phần của
    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    37 sau
    >>> 'z' not in 'abc'
    True
    >>> 'z' not in 'xyz'
    False
    
    37

Dưới đây là một vài ví dụ về

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
43 đang hoạt động

>>>

>>> s = 'I am a string.'
>>> len(s)
14
5

Nếu không tìm thấy

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
37 trong
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37, bộ trả về chứa
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 theo sau là hai chuỗi trống

>>>

>>> s = 'I am a string.'
>>> len(s)
14
6

Nhớ. Danh sách và bộ dữ liệu được trình bày trong hướng dẫn tiếp theo

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
47

Chia một chuỗi dựa trên dấu phân cách

Chức năng của

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
47 giống hệt như
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
34, ngoại trừ việc
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 được phân chia ở lần xuất hiện cuối cùng của
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
37 thay vì lần xuất hiện đầu tiên

>>>

>>> s = 'I am a string.'
>>> len(s)
14
7

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
52

Tách một chuỗi thành một danh sách các chuỗi con

Không có đối số,

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
53 tách
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 thành các chuỗi con được phân định bởi bất kỳ chuỗi khoảng trắng nào và trả về các chuỗi con dưới dạng danh sách

>>>

>>> s = 'I am a string.'
>>> len(s)
14
8

Nếu

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
37 được chỉ định, nó được sử dụng làm dấu phân cách để tách

>>>

>>> s = 'I am a string.'
>>> len(s)
14
9

(Nếu

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
37 được chỉ định với giá trị là
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
57, thì chuỗi được phân tách được phân tách bằng khoảng trắng, giống như thể
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
37 hoàn toàn không được chỉ định. )

Khi

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
37 được đưa ra rõ ràng dưới dạng dấu phân cách, các dấu phân cách liên tiếp trong
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 được giả định để phân tách các chuỗi trống, chuỗi này sẽ được trả về

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
00

Tuy nhiên, đây không phải là trường hợp khi bỏ qua

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
37. Trong trường hợp đó, các ký tự khoảng trắng liên tiếp được kết hợp thành một dấu phân cách duy nhất và danh sách kết quả sẽ không bao giờ chứa các chuỗi trống

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
01

Nếu tham số từ khóa tùy chọn

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
62 được chỉ định, thì tối đa nhiều phần tách đó được thực hiện, bắt đầu từ đầu bên phải của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
02

Giá trị mặc định cho

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
62 là
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
76, có nghĩa là tất cả các phân tách có thể phải được thực hiện—giống như khi bỏ hoàn toàn
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
62

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
03

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
67

Tách một chuỗi thành một danh sách các chuỗi con

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
68 hoạt động chính xác như
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
53, ngoại trừ nếu
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
62 được chỉ định, các phần tách được tính từ đầu bên trái của
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 thay vì đầu bên phải

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
04

Nếu

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
62 không được chỉ định, thì không thể phân biệt được
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
73 và
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
74

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
75

Phá vỡ một chuỗi tại ranh giới dòng

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
76 tách
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
37 thành các dòng và trả về chúng trong một danh sách. Bất kỳ ký tự hoặc chuỗi ký tự nào sau đây được coi là cấu thành ranh giới dòng

Escape SequenceCharacter

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
78Newline
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
79Carriage Return
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
80Carriage Return + Line Feed
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
81 or
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
82Line Tabulation
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
83 or
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
84Form Feed
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
85File Separator
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
86Group Separator
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
87Record Separator
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
88Next Line (C1 Control Code)
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
89Unicode Line Separator
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
90Unicode Paragraph Separator

Dưới đây là một ví dụ sử dụng một số dấu tách dòng khác nhau

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
05

Nếu các ký tự ranh giới dòng liên tiếp xuất hiện trong chuỗi, chúng được coi là phân định các dòng trống, sẽ xuất hiện trong danh sách kết quả

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
06

Nếu đối số

>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
91 tùy chọn được chỉ định và là trung thực, thì ranh giới của các dòng được giữ lại trong chuỗi kết quả

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
07

Loại bỏ các quảng cáo

>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 Đối tượng

Đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 là một trong những loại tích hợp cốt lõi để thao tác dữ liệu nhị phân. Một đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 là một chuỗi bất biến của các giá trị byte đơn. Mỗi phần tử trong một đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 là một số nguyên nhỏ trong phạm vi
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
73 đến
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
97

Định nghĩa một đối tượng >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29

Một chữ

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 được định nghĩa giống như một chuỗi chữ có thêm tiền tố
>>> ord('a')
97
>>> ord('#')
35
00

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
08

Đối với chuỗi, bạn có thể sử dụng bất kỳ cơ chế trích dẫn đơn, kép hoặc ba nào

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
09

Chỉ các ký tự ASCII được phép ở dạng chữ

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29. Bất kỳ giá trị ký tự nào lớn hơn
>>> ord('a')
97
>>> ord('#')
35
02 phải được chỉ định bằng cách sử dụng chuỗi thoát thích hợp

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
10

Tiền tố

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
88 có thể được sử dụng trên một ký tự
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 để vô hiệu hóa việc xử lý các chuỗi thoát, như với các chuỗi

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
11

Xác định đối tượng >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29 với chức năng >>> ord('a') 97 >>> ord('#') 35 06 tích hợp

Hàm

>>> ord('a')
97
>>> ord('#')
35
06 cũng tạo đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29. Loại đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 nào được trả về tùy thuộc vào (các) đối số được truyền cho hàm. Các hình thức có thể được hiển thị dưới đây

>>> ord('a')
97
>>> ord('#')
35
10

Tạo một đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 từ một chuỗi

>>> ord('a')
97
>>> ord('#')
35
10 chuyển đổi chuỗi
>>> ord('a')
97
>>> ord('#')
35
13 thành đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29, sử dụng _____32_______15 theo _______16 được chỉ định

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
12

Lưu ý kỹ thuật. Ở dạng này của hàm

>>> ord('a')
97
>>> ord('#')
35
06, bắt buộc phải có đối số
>>> ord('a')
97
>>> ord('#')
35
16. “Mã hóa” đề cập đến cách mà các ký tự được dịch sang các giá trị số nguyên. Giá trị của
>>> ord('a')
97
>>> ord('#')
35
19 cho biết Định dạng chuyển đổi Unicode UTF-8, đây là một mã hóa có thể xử lý mọi ký tự Unicode có thể. UTF-8 cũng có thể được biểu thị bằng cách chỉ định
>>> ord('a')
97
>>> ord('#')
35
20,
>>> ord('a')
97
>>> ord('#')
35
21 hoặc
>>> ord('a')
97
>>> ord('#')
35
22 cho
>>> ord('a')
97
>>> ord('#')
35
16

Xem tài liệu Unicode để biết thêm thông tin. Miễn là bạn đang xử lý các ký tự dựa trên tiếng Latinh phổ biến, UTF-8 sẽ phục vụ bạn tốt

>>> ord('a')
97
>>> ord('#')
35
24

Tạo một đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 bao gồm null (
>>> ord('a')
97
>>> ord('#')
35
26) byte

>>> ord('a')
97
>>> ord('#')
35
24 định nghĩa một đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 của
>>> ord('a')
97
>>> ord('#')
35
29 đã chỉ định, đối tượng này phải là một số nguyên dương. Đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 kết quả được khởi tạo thành null (
>>> ord('a')
97
>>> ord('#')
35
26) byte

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
13

>>> ord('a')
97
>>> ord('#')
35
32

Tạo một đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 từ một iterable

>>> ord('a')
97
>>> ord('#')
35
32 định nghĩa một đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 từ chuỗi các số nguyên được tạo bởi
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
20.
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
20 phải là một lần lặp tạo ra một chuỗi các số nguyên
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
38 trong phạm vi
>>> ord('a')
97
>>> ord('#')
35
39

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
14

Loại bỏ các quảng cáo

Thao tác trên đối tượng >>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 29

Giống như các chuỗi, các đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 hỗ trợ các phép toán tuần tự phổ biến

  • Toán tử

    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    45 và
    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    49

    >>>

    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    15

  • Toán tử nối (

    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    31) và nhân rộng (
    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    32)

    >>>

    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    16

  • Lập chỉ mục và cắt lát

    >>>

    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    17

  • Chức năng tích hợp sẵn

    >>>

    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    18

Nhiều phương thức được định nghĩa cho các đối tượng chuỗi cũng hợp lệ cho các đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
19

Tuy nhiên, lưu ý rằng khi các toán tử và phương thức này được gọi trên một đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29, thì toán hạng và các đối số cũng phải là đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
20

Mặc dù định nghĩa và biểu diễn đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 dựa trên văn bản ASCII, nhưng nó thực sự hoạt động giống như một chuỗi bất biến của các số nguyên nhỏ trong phạm vi
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
73 đến
>>> 'z' not in 'abc'
True
>>> 'z' not in 'xyz'
False
97, bao gồm. Đó là lý do tại sao một phần tử từ đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 được hiển thị dưới dạng số nguyên

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
21

Tuy nhiên, một lát cắt được hiển thị dưới dạng một đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29, ngay cả khi nó chỉ dài một byte

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
22

Bạn có thể chuyển đổi một đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 thành một danh sách các số nguyên bằng hàm
>>> ord('a')
97
>>> ord('#')
35
55 tích hợp

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
23

Số thập lục phân thường được sử dụng để chỉ định dữ liệu nhị phân vì hai chữ số thập lục phân tương ứng trực tiếp với một byte đơn. Lớp

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 hỗ trợ hai phương thức bổ sung tạo điều kiện thuận lợi cho việc chuyển đổi sang và từ một chuỗi các chữ số thập lục phân

>>> ord('a')
97
>>> ord('#')
35
57

Trả về một đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 được tạo từ một chuỗi các giá trị thập lục phân

>>> ord('a')
97
>>> ord('#')
35
57 trả về đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 là kết quả của việc chuyển đổi từng cặp chữ số thập lục phân trong
>>> ord('a')
97
>>> ord('#')
35
13 thành giá trị byte tương ứng. Các cặp chữ số thập lục phân trong
>>> ord('a')
97
>>> ord('#')
35
13 có thể tùy chọn được phân tách bằng khoảng trắng, khoảng trắng này sẽ bị bỏ qua

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
24

Ghi chú. Phương thức này là một phương thức lớp, không phải là một phương thức đối tượng. Nó được liên kết với lớp

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29, không phải là đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29. Bạn sẽ tìm hiểu sâu hơn về sự khác biệt giữa các lớp, các đối tượng và các phương thức tương ứng của chúng trong các hướng dẫn sắp tới về lập trình hướng đối tượng. Bây giờ, chỉ cần quan sát rằng phương thức này được gọi trên lớp
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29, không phải trên đối tượng
>>> ord('a')
97
>>> ord('#')
35
66

>>> ord('a')
97
>>> ord('#')
35
67

Trả về một chuỗi giá trị thập lục phân từ một đối tượng

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29

>>> ord('a')
97
>>> ord('#')
35
67 trả về kết quả chuyển đổi đối tượng
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29
>>> ord('a')
97
>>> ord('#')
35
66 thành một chuỗi các cặp chữ số thập lục phân. Nghĩa là, nó làm ngược lại với
>>> ord('a')
97
>>> ord('#')
35
72

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
25

Note. As opposed to

>>> ord('a')
97
>>> ord('#')
35
72,
>>> ord('a')
97
>>> ord('#')
35
74 is an object method, not a class method. Thus, it is invoked on an object of the
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 class, not on the class itself

Loại bỏ các quảng cáo

>>> s = 'foo.' >>> s * 4 'foo.foo.foo.foo.' >>> 4 * s 'foo.foo.foo.foo.' 30 Objects

Python supports another binary sequence type called the

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
30.
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
30 objects are very like
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 objects, despite some differences

  • There is no dedicated syntax built into Python for defining a

    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    30 literal, like the
    >>> ord('a')
    97
    >>> ord('#')
    35
    
    00 prefix that may be used to define a
    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    29 object. A
    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    30 object is always created using the
    >>> ord('a')
    97
    >>> ord('#')
    35
    
    84 built-in function

    >>>

    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    26

  • >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    30 objects are mutable. You can modify the contents of a
    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    30 object using indexing and slicing

    >>>

    >>> s = 'foo.'
    
    >>> s * 4
    'foo.foo.foo.foo.'
    >>> 4 * s
    'foo.foo.foo.foo.'
    
    27

A

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
30 object may be constructed directly from a
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 object as well

>>>

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
28

Conclusion

This tutorial provided an in-depth look at the many different mechanisms Python provides for string handling, including string operators, built-in functions, indexing, slicing, and built-in methods. You also were introduced to the

>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
29 and
>>> s = 'foo.'

>>> s * 4
'foo.foo.foo.foo.'
>>> 4 * s
'foo.foo.foo.foo.'
30 types

These types are the first types you have examined that are composite—built from a collection of smaller parts. Python provides several composite built-in types. In the next tutorial, you will explore two of the most frequently used. lists and tuples

Lấy bài kiểm tra. Kiểm tra kiến ​​thức của bạn với bài kiểm tra tương tác “Chuỗi trăn và dữ liệu ký tự” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian

Lấy bài kiểm tra "

« Operators and Expressions in Python

Lists and Tuples in Python »

Mark as Completed

Watch Now This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding. Strings and Character Data in Python

🐍 Thủ thuật Python 💌

Get a short & sweet Python Trick delivered to your inbox every couple of days. No spam ever. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Là ký hiệu Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về John Sturtz

Là ký hiệu Python
Là ký hiệu Python

John là một Pythonista cuồng nhiệt và là thành viên của nhóm hướng dẫn Real Python

» Thông tin thêm về John


Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Là ký hiệu Python

Đan

Là ký hiệu Python

Joanna

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Chuyên gia Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

isSymbol() trong Python là gì?

isSymbol() được dùng để tìm xem giá trị đã cho có phải là một đối tượng biểu tượng hay không . Nó trả về True nếu giá trị đã cho là một đối tượng ký hiệu. Nếu không, nó trả về false.

và %% trong Python là gì?

%% có nghĩa là ký hiệu phần trăm sau khi sử dụng toán tử % trên chuỗi của bạn . bạn đang thay thế một biến vào chuỗi tại điểm xảy ra %s. Có rất nhiều mã% khác cho các mục đích sử dụng khác nhau.

== có nghĩa là gì trong Python?

Toán tử == so sánh giá trị hoặc đẳng thức của hai đối tượng , trong khi toán tử is của Python kiểm tra xem hai biến có trỏ đến cùng một đối tượng hay không . Trong phần lớn các trường hợp, điều này có nghĩa là bạn nên sử dụng các toán tử đẳng thức == và. = , trừ khi bạn đang so sánh với Không.

Biểu tượng có phải là một chuỗi không?

Sự khác biệt giữa ký hiệu và chuỗi là gì? . Mặt khác, các biểu tượng là các giá trị không thay đổi .