Python cắt chuỗi nhiều khoảng trắng


Bạn có thể gán một chuỗi nhiều dòng cho một biến bằng cách sử dụng ba dấu ngoặc kép

Ví dụ

Bạn có thể sử dụng ba dấu ngoặc kép

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing tinh hoa,
sed làm eiusmod tempor incidint
utlabore et dolore magna aliqua. """
in(a)

Tự mình thử »

Hoặc ba dấu nháy đơn

Ví dụ

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing tinh hoa,
sed làm eiusmod tempor incidint
utlabore et dolore magna aliqua. '''
in(a)

Tự mình thử »

Ghi chú. kết quả là các ngắt dòng được chèn vào cùng một vị trí như trong mã




Văn bản là một trong những dạng dữ liệu phổ biến nhất mà chương trình của bạn sẽ xử lý. Bạn đã biết cách nối hai giá trị chuỗi với nhau bằng toán tử

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
6, nhưng bạn có thể làm nhiều hơn thế. Bạn có thể trích xuất một phần chuỗi từ các giá trị chuỗi, thêm hoặc xóa khoảng trắng, chuyển đổi các chữ cái thành chữ thường hoặc chữ hoa và kiểm tra xem các chuỗi có được định dạng đúng không. Bạn thậm chí có thể viết mã Python để truy cập khay nhớ tạm để sao chép và dán văn bản

Trong chương này, bạn sẽ học tất cả những điều này và hơn thế nữa. Sau đó, bạn sẽ làm việc thông qua hai dự án lập trình khác nhau. một trình quản lý mật khẩu đơn giản và một chương trình tự động hóa công việc nhàm chán là định dạng các đoạn văn bản

Làm việc với Chuỗi

Hãy xem xét một số cách Python cho phép bạn viết, in và truy cập các chuỗi trong mã của bạn

Chuỗi ký tự

Việc gõ các giá trị chuỗi trong mã Python khá đơn giản. Chúng bắt đầu và kết thúc bằng một trích dẫn. Nhưng sau đó làm thế nào bạn có thể sử dụng một trích dẫn bên trong một chuỗi? . May mắn thay, có nhiều cách để gõ chuỗi.

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
7 won’t work, because Python thinks the string ends after
print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
8, and the rest (
print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
9) is invalid Python code. Fortunately, there are multiple ways to type strings.

Dấu ngoặc kép

Các chuỗi có thể bắt đầu và kết thúc bằng dấu ngoặc kép, giống như chúng thực hiện với dấu ngoặc đơn. Một lợi ích của việc sử dụng dấu ngoặc kép là chuỗi có thể có một ký tự trích dẫn trong đó. Nhập thông tin sau vào vỏ tương tác

>>> spam = "That is Alice's cat."

Vì chuỗi bắt đầu bằng dấu nháy kép nên Python biết rằng dấu nháy đơn là một phần của chuỗi và không đánh dấu phần cuối của chuỗi. Tuy nhiên, nếu bạn cần sử dụng cả dấu ngoặc đơn và dấu ngoặc kép trong chuỗi, bạn sẽ cần sử dụng ký tự thoát

nhân vật trốn thoát

Một ký tự thoát cho phép bạn sử dụng các ký tự mà nếu không thì không thể đưa vào một chuỗi. Ký tự thoát bao gồm dấu gạch chéo ngược (_______5_______0) theo sau là ký tự bạn muốn thêm vào chuỗi. (Mặc dù bao gồm hai ký tự, nó thường được gọi là ký tự thoát số ít. ) Ví dụ: ký tự thoát cho một trích dẫn là

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
1. Bạn có thể sử dụng cái này bên trong một chuỗi bắt đầu và kết thúc bằng dấu nháy đơn. Để xem cách các ký tự thoát hoạt động, hãy nhập thông tin sau vào trình bao tương tác.

>>> spam = 'Say hi to Bob\'s mother.'

Python biết rằng vì trích dẫn đơn trong

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
2 có dấu gạch chéo ngược, nên nó không phải là trích dẫn đơn để kết thúc giá trị chuỗi. Các ký tự thoát
Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
1 và
Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
4 cho phép bạn lần lượt đặt dấu nháy đơn và dấu nháy kép bên trong chuỗi của mình

liệt kê các ký tự thoát mà bạn có thể sử dụng

Bảng 6-1. nhân vật trốn thoát

nhân vật trốn thoát

In dưới dạng

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
1

trích dẫn đơn

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
4

báo giá kép

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
7

Chuyển hướng

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
8

Dòng mới (ngắt dòng)

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
9

dấu gạch chéo ngược

Nhập thông tin sau vào vỏ tương tác

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.

dây thô

Bạn có thể đặt một

print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
0 trước dấu ngoặc kép bắt đầu của một chuỗi để biến nó thành một chuỗi thô. chuỗi thô hoàn toàn bỏ qua tất cả các ký tự thoát và in bất kỳ dấu gạch chéo ngược nào xuất hiện trong chuỗi. Ví dụ: nhập nội dung sau vào trình bao tương tác.

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.

Bởi vì đây là một chuỗi thô, Python coi dấu gạch chéo ngược là một phần của chuỗi chứ không phải là phần đầu của ký tự thoát. Các chuỗi thô sẽ hữu ích nếu bạn đang nhập các giá trị chuỗi chứa nhiều dấu gạch chéo ngược, chẳng hạn như các chuỗi được sử dụng cho các biểu thức chính quy được mô tả trong chương tiếp theo

Chuỗi nhiều dòng với dấu ngoặc kép

Mặc dù bạn có thể sử dụng ký tự thoát

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
8 để đặt một dòng mới vào một chuỗi, nhưng việc sử dụng các chuỗi nhiều dòng thường dễ dàng hơn. Một chuỗi nhiều dòng trong Python bắt đầu và kết thúc bằng ba dấu nháy đơn hoặc ba dấu nháy kép. Bất kỳ dấu ngoặc kép, tab hoặc dòng mới nào ở giữa "ba dấu ngoặc kép" đều được coi là một phần của chuỗi. Quy tắc thụt lề Python cho các khối không áp dụng cho các dòng bên trong chuỗi nhiều dòng

Mở trình chỉnh sửa tệp và viết như sau

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')

Lưu chương trình này dưới dạng catnapping. py và chạy nó. Đầu ra sẽ trông như thế này.

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob

Lưu ý rằng ký tự trích dẫn đơn trong

print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
2 không cần thoát. Thoát dấu ngoặc đơn và dấu ngoặc kép là tùy chọn trong chuỗi thô. Cuộc gọi
print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
3 sau đây sẽ in văn bản giống hệt nhau nhưng không sử dụng chuỗi nhiều dòng

print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')

Nhận xét nhiều dòng

Trong khi ký tự băm (

print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
4) đánh dấu phần đầu của một nhận xét cho phần còn lại của dòng, một chuỗi nhiều dòng thường được sử dụng cho các nhận xét trải rộng trên nhiều dòng. Sau đây là mã Python hoàn toàn hợp lệ

"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')

Lập chỉ mục và cắt chuỗi

Các chuỗi sử dụng các chỉ mục và lát theo cách tương tự như các danh sách. Bạn có thể coi chuỗi

print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
5 là một danh sách và mỗi ký tự trong chuỗi là một mục có chỉ số tương ứng

'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11

Khoảng cách và dấu chấm than được bao gồm trong số ký tự, vì vậy,

print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
5 dài 12 ký tự, từ
print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
7 ở chỉ mục 0 đến
print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
8 ở chỉ mục 11

Nhập thông tin sau vào vỏ tương tác

>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'

Nếu bạn chỉ định một chỉ mục, bạn sẽ nhận được ký tự ở vị trí đó trong chuỗi. Nếu bạn chỉ định một phạm vi từ chỉ mục này sang chỉ mục khác, thì chỉ mục bắt đầu được bao gồm và chỉ mục kết thúc không. Đó là lý do tại sao, nếu thư rác là

print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
5, thì
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
0 là
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
1. Chuỗi con bạn nhận được từ
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
0 sẽ bao gồm mọi thứ từ
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
3 đến
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
4, bỏ khoảng trống ở chỉ số 5

Lưu ý rằng việc cắt chuỗi không sửa đổi chuỗi gốc. Bạn có thể chụp một lát cắt từ một biến trong một biến riêng biệt. Hãy thử nhập nội dung sau vào trình bao tương tác

>>> spam = 'Say hi to Bob\'s mother.'
0

Bằng cách cắt và lưu trữ chuỗi con kết quả trong một biến khác, bạn có thể có cả chuỗi và chuỗi con tiện dụng để truy cập nhanh chóng, dễ dàng

Toán tử in và not in với chuỗi

Các toán tử

"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
5 và
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
6 có thể được sử dụng với các chuỗi giống như với các giá trị danh sách. Một biểu thức có hai chuỗi được nối bằng cách sử dụng
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
5 hoặc
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
6 sẽ đánh giá thành một giá trị Boolean
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
9 hoặc
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
0. Nhập thông tin sau vào vỏ tương tác

>>> spam = 'Say hi to Bob\'s mother.'
1

Các biểu thức này kiểm tra xem chuỗi đầu tiên (chuỗi chính xác, phân biệt chữ hoa chữ thường) có thể được tìm thấy trong chuỗi thứ hai hay không

Các phương thức chuỗi hữu ích

Python cắt chuỗi nhiều khoảng trắng
Bài 20 - Phương thức chuỗi và Mô-đun pyperclip

Một số phương thức chuỗi phân tích chuỗi hoặc tạo các giá trị chuỗi được chuyển đổi. Phần này mô tả các phương pháp bạn sẽ sử dụng thường xuyên nhất

Các phương thức chuỗi upper(), Lower(), isupper() và islower()

Các phương thức chuỗi

'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
1 và
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
2 trả về một chuỗi mới trong đó tất cả các chữ cái trong chuỗi ban đầu đã được chuyển đổi thành chữ hoa hoặc chữ thường tương ứng. Các ký tự không phải là chữ cái trong chuỗi không thay đổi. Nhập thông tin sau vào vỏ tương tác

>>> spam = 'Say hi to Bob\'s mother.'
2

Lưu ý rằng các phương thức này không tự thay đổi chuỗi mà trả về các giá trị chuỗi mới. Nếu bạn muốn thay đổi chuỗi ban đầu, bạn phải gọi

'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
1 hoặc
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
2 trên chuỗi đó rồi gán chuỗi mới cho biến nơi lưu trữ chuỗi ban đầu. Đây là lý do tại sao bạn phải sử dụng
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
5 để thay đổi chuỗi trong
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
6 thay vì chỉ đơn giản là
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
7. (Điều này giống như nếu một biến
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
8 chứa giá trị
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
9. Viết
>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
0 không thay đổi giá trị của
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
8, nhưng
>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
2 thì không. )

Các phương pháp

'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
1 và
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
2 rất hữu ích nếu bạn cần so sánh không phân biệt chữ hoa chữ thường. Các chuỗi
>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
5 và
>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
6 không bằng nhau. Nhưng trong chương trình nhỏ sau đây, việc người dùng gõ
>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
7,
>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
8 hay
>>> spam = 'Hello world!'
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
9 không quan trọng, bởi vì trước tiên chuỗi được chuyển đổi thành chữ thường

>>> spam = 'Say hi to Bob\'s mother.'
3

Khi bạn chạy chương trình này, câu hỏi sẽ được hiển thị và nhập một biến thể trên

>>> spam = 'Say hi to Bob\'s mother.'
00, chẳng hạn như
>>> spam = 'Say hi to Bob\'s mother.'
01, sẽ vẫn cho kết quả là
>>> spam = 'Say hi to Bob\'s mother.'
02. Thêm mã vào chương trình của bạn để xử lý các biến thể hoặc lỗi trong đầu vào của người dùng, chẳng hạn như cách viết hoa không nhất quán, sẽ giúp chương trình của bạn dễ sử dụng hơn và ít có khả năng bị lỗi hơn

>>> spam = 'Say hi to Bob\'s mother.'
4

Các phương thức

>>> spam = 'Say hi to Bob\'s mother.'
03 và
>>> spam = 'Say hi to Bob\'s mother.'
04 sẽ trả về giá trị Boolean
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
9 nếu chuỗi có ít nhất một chữ cái và tất cả các chữ cái lần lượt là chữ hoa hoặc chữ thường. Mặt khác, phương thức trả về
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
0. Nhập thông tin sau vào trình bao tương tác và chú ý mỗi cuộc gọi phương thức trả về kết quả gì

>>> spam = 'Say hi to Bob\'s mother.'
5

Vì bản thân các phương thức chuỗi

'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
1 và
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
2 trả về các chuỗi, nên bạn cũng có thể gọi các phương thức chuỗi trên những giá trị chuỗi được trả về. Các biểu thức thực hiện điều này sẽ trông giống như một chuỗi các cuộc gọi phương thức. Nhập thông tin sau vào vỏ tương tác.

>>> spam = 'Say hi to Bob\'s mother.'
6

Phương thức chuỗi isX

Cùng với

>>> spam = 'Say hi to Bob\'s mother.'
04 và
>>> spam = 'Say hi to Bob\'s mother.'
03, có một số phương thức chuỗi có tên bắt đầu bằng từ is . Các phương thức này trả về một giá trị Boolean mô tả bản chất của chuỗi. Dưới đây là một số phương thức chuỗi phổ biến
>>> spam = 'Say hi to Bob\'s mother.'
11 ______7_______12 .

  • >>> spam = 'Say hi to Bob\'s mother.'
    13 trả về
    """This is a test Python program.
    Written by Al Sweigart [email protected]
    
    This program was designed for Python 3, not Python 2.
    """
    
    def spam():
        """This is a multiline comment to help
        explain what the spam() function does."""
        print('Hello!')
    9 nếu chuỗi chỉ bao gồm các chữ cái và không trống

  • >>> spam = 'Say hi to Bob\'s mother.'
    15 trả về
    """This is a test Python program.
    Written by Al Sweigart [email protected]
    
    This program was designed for Python 3, not Python 2.
    """
    
    def spam():
        """This is a multiline comment to help
        explain what the spam() function does."""
        print('Hello!')
    9 nếu chuỗi chỉ bao gồm các chữ cái và số và không trống

  • >>> spam = 'Say hi to Bob\'s mother.'
    17 trả về
    """This is a test Python program.
    Written by Al Sweigart [email protected]
    
    This program was designed for Python 3, not Python 2.
    """
    
    def spam():
        """This is a multiline comment to help
        explain what the spam() function does."""
        print('Hello!')
    9 nếu chuỗi chỉ bao gồm các ký tự số và không trống

  • >>> spam = 'Say hi to Bob\'s mother.'
    19 trả về
    """This is a test Python program.
    Written by Al Sweigart [email protected]
    
    This program was designed for Python 3, not Python 2.
    """
    
    def spam():
        """This is a multiline comment to help
        explain what the spam() function does."""
        print('Hello!')
    9 nếu chuỗi chỉ bao gồm khoảng trắng, tab và dòng mới và không trống

  • >>> spam = 'Say hi to Bob\'s mother.'
    21 trả về
    """This is a test Python program.
    Written by Al Sweigart [email protected]
    
    This program was designed for Python 3, not Python 2.
    """
    
    def spam():
        """This is a multiline comment to help
        explain what the spam() function does."""
        print('Hello!')
    9 nếu chuỗi chỉ bao gồm các từ bắt đầu bằng một chữ cái viết hoa, theo sau chỉ là các chữ cái viết thường

Nhập thông tin sau vào vỏ tương tác

>>> spam = 'Say hi to Bob\'s mother.'
7

Các phương thức chuỗi

>>> spam = 'Say hi to Bob\'s mother.'
11 ______7_______12 rất hữu ích khi bạn cần xác thực đầu vào của người dùng. Ví dụ: chương trình sau liên tục hỏi người dùng về tuổi và mật khẩu của họ cho đến khi họ cung cấp thông tin đầu vào hợp lệ. Mở một cửa sổ soạn thảo tệp mới và nhập chương trình này, lưu nó dưới dạng validateInput. p .

>>> spam = 'Say hi to Bob\'s mother.'
8

Trong vòng lặp

>>> spam = 'Say hi to Bob\'s mother.'
25 đầu tiên, chúng tôi hỏi người dùng về tuổi của họ và lưu thông tin đầu vào của họ vào
>>> spam = 'Say hi to Bob\'s mother.'
26. Nếu
>>> spam = 'Say hi to Bob\'s mother.'
26 là một giá trị (thập phân) hợp lệ, chúng tôi sẽ thoát khỏi vòng lặp
>>> spam = 'Say hi to Bob\'s mother.'
25 đầu tiên này và chuyển sang vòng lặp thứ hai, yêu cầu mật khẩu. Mặt khác, chúng tôi thông báo cho người dùng rằng họ cần nhập một số và một lần nữa yêu cầu họ nhập tuổi của họ. Trong vòng lặp
>>> spam = 'Say hi to Bob\'s mother.'
25 thứ hai, chúng tôi yêu cầu nhập mật khẩu, lưu trữ thông tin nhập của người dùng vào
>>> spam = 'Say hi to Bob\'s mother.'
30 và thoát khỏi vòng lặp nếu thông tin đầu vào là chữ và số. Nếu không, chúng tôi không hài lòng nên chúng tôi cho người dùng biết mật khẩu cần phải là chữ và số và yêu cầu họ nhập lại mật khẩu

Khi chạy, đầu ra của chương trình trông như thế này

>>> spam = 'Say hi to Bob\'s mother.'
9

Gọi

>>> spam = 'Say hi to Bob\'s mother.'
17 và
>>> spam = 'Say hi to Bob\'s mother.'
15 trên các biến, chúng tôi có thể kiểm tra xem các giá trị được lưu trữ trong các biến đó có phải là số thập phân hay không, chữ và số hay không. Ở đây, những thử nghiệm này giúp chúng tôi từ chối đầu vào
>>> spam = 'Say hi to Bob\'s mother.'
33 và chấp nhận
>>> spam = 'Say hi to Bob\'s mother.'
34, đồng thời từ chối
>>> spam = 'Say hi to Bob\'s mother.'
35 và chấp nhận
>>> spam = 'Say hi to Bob\'s mother.'
36

Phương thức chuỗi startedwith() và endwith()

Các phương thức

>>> spam = 'Say hi to Bob\'s mother.'
37 và
>>> spam = 'Say hi to Bob\'s mother.'
38 trả về
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
9 nếu giá trị chuỗi mà chúng được gọi bắt đầu hoặc kết thúc (tương ứng) với chuỗi được truyền cho phương thức; . Nhập thông tin sau vào vỏ tương tác

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
0

Các phương thức này là những lựa chọn thay thế hữu ích cho toán tử bằng

>>> spam = 'Say hi to Bob\'s mother.'
41 nếu bạn chỉ cần kiểm tra xem phần đầu hoặc phần cuối của chuỗi, chứ không phải toàn bộ, có bằng một chuỗi khác hay không

Phương thức chuỗi join() và split()

Phương thức

>>> spam = 'Say hi to Bob\'s mother.'
42 rất hữu ích khi bạn có một danh sách các chuỗi cần nối với nhau thành một giá trị chuỗi duy nhất. Phương thức
>>> spam = 'Say hi to Bob\'s mother.'
42 được gọi trên một chuỗi, được truyền vào một danh sách các chuỗi và trả về một chuỗi. Chuỗi trả về là nối của mỗi chuỗi trong danh sách được truyền vào. Ví dụ: nhập thông tin sau vào trình bao tương tác

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
1

Lưu ý rằng chuỗi

>>> spam = 'Say hi to Bob\'s mother.'
42 gọi vào được chèn vào giữa mỗi chuỗi của đối số danh sách. Ví dụ: khi
>>> spam = 'Say hi to Bob\'s mother.'
45 được gọi trên chuỗi
>>> spam = 'Say hi to Bob\'s mother.'
46, chuỗi được trả về là 'cats, rats, bats'

Hãy nhớ rằng

>>> spam = 'Say hi to Bob\'s mother.'
42 được gọi trên một giá trị chuỗi và được truyền một giá trị danh sách. (Thật dễ dàng vô tình gọi nó theo cách khác. ) Phương thức
>>> spam = 'Say hi to Bob\'s mother.'
48 thì ngược lại. Nó được gọi trên một giá trị chuỗi và trả về một danh sách các chuỗi. Nhập thông tin sau vào vỏ tương tác

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
2

Theo mặc định, chuỗi

>>> spam = 'Say hi to Bob\'s mother.'
49 được phân tách ở bất kỳ nơi nào tìm thấy các ký tự khoảng trắng như dấu cách, tab hoặc ký tự xuống dòng. Các ký tự khoảng trắng này không được bao gồm trong các chuỗi trong danh sách được trả về. Bạn có thể chuyển một chuỗi dấu phân cách cho phương thức
>>> spam = 'Say hi to Bob\'s mother.'
48 để chỉ định một chuỗi khác để phân tách khi. Ví dụ: nhập thông tin sau vào trình bao tương tác

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
3

Một cách sử dụng phổ biến của

>>> spam = 'Say hi to Bob\'s mother.'
48 là chia một chuỗi nhiều dòng dọc theo các ký tự xuống dòng. Nhập thông tin sau vào vỏ tương tác

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
4

Vượt qua đối số

>>> spam = 'Say hi to Bob\'s mother.'
48
>>> spam = 'Say hi to Bob\'s mother.'
53 cho phép chúng tôi chia chuỗi nhiều dòng được lưu trữ trong
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
6 dọc theo dòng mới và trả về danh sách trong đó mỗi mục tương ứng với một dòng của chuỗi

Căn chỉnh văn bản với rjust(), ljust() và center()

Các phương thức chuỗi

>>> spam = 'Say hi to Bob\'s mother.'
55 và
>>> spam = 'Say hi to Bob\'s mother.'
56 trả về một phiên bản đệm của chuỗi mà chúng được gọi, với khoảng trắng được chèn vào để chứng minh văn bản. Đối số đầu tiên cho cả hai phương thức là độ dài số nguyên cho chuỗi được căn. Nhập thông tin sau vào vỏ tương tác

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
5

>>> spam = 'Say hi to Bob\'s mother.'
57 nói rằng chúng tôi muốn chứng minh đúng cho
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
1 trong một chuỗi có tổng chiều dài
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
9.
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
1 có năm ký tự, vì vậy năm dấu cách sẽ được thêm vào bên trái của nó, cho chúng ta một chuỗi gồm 10 ký tự với
"""This is a test Python program.
Written by Al Sweigart [email protected]

This program was designed for Python 3, not Python 2.
"""

def spam():
    """This is a multiline comment to help
    explain what the spam() function does."""
    print('Hello!')
1 được căn phải

Đối số thứ hai tùy chọn cho

>>> spam = 'Say hi to Bob\'s mother.'
55 và
>>> spam = 'Say hi to Bob\'s mother.'
56 sẽ chỉ định một ký tự điền không phải là ký tự khoảng trắng. Nhập thông tin sau vào vỏ tương tác

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
6

Phương thức chuỗi

>>> spam = 'Say hi to Bob\'s mother.'
64 hoạt động giống như
>>> spam = 'Say hi to Bob\'s mother.'
56 và
>>> spam = 'Say hi to Bob\'s mother.'
55 nhưng căn giữa văn bản thay vì canh nó sang trái hoặc phải. Nhập thông tin sau vào vỏ tương tác

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
7

Những phương pháp này đặc biệt hữu ích khi bạn cần in dữ liệu dạng bảng có khoảng cách chính xác. Mở cửa sổ soạn thảo tệp mới và nhập mã sau, lưu mã dưới dạng picnicTable. p .

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
8

Trong chương trình này, chúng tôi xác định một phương pháp

>>> spam = 'Say hi to Bob\'s mother.'
67 sẽ lấy từ điển thông tin và sử dụng
>>> spam = 'Say hi to Bob\'s mother.'
64,
>>> spam = 'Say hi to Bob\'s mother.'
56 và
>>> spam = 'Say hi to Bob\'s mother.'
55 để hiển thị thông tin đó ở định dạng giống như bảng được sắp xếp gọn gàng

Từ điển mà chúng ta sẽ chuyển cho

>>> spam = 'Say hi to Bob\'s mother.'
67 là
>>> spam = 'Say hi to Bob\'s mother.'
72. Năm
>>> spam = 'Say hi to Bob\'s mother.'
72, chúng tôi có 4 bánh mì, 12 quả táo, 4 cốc và 8000 bánh quy. Chúng tôi muốn sắp xếp thông tin này thành hai cột, với tên mặt hàng ở bên trái và số lượng ở bên phải

Để làm điều này, chúng tôi quyết định độ rộng mà chúng tôi muốn các cột bên trái và bên phải. Cùng với từ điển của chúng tôi, chúng tôi sẽ chuyển các giá trị này tới

>>> spam = 'Say hi to Bob\'s mother.'
67

>>> spam = 'Say hi to Bob\'s mother.'
67 lấy từ điển, một
>>> spam = 'Say hi to Bob\'s mother.'
76 cho cột bên trái của bảng và một
>>> spam = 'Say hi to Bob\'s mother.'
77 cho cột bên phải. Nó in một tiêu đề,
>>> spam = 'Say hi to Bob\'s mother.'
78, chính giữa phía trên bảng. Sau đó, nó lặp qua từ điển, in từng cặp khóa-giá trị trên một dòng với khóa được căn trái và được đệm bởi dấu chấm, còn giá trị được căn phải và được đệm bởi dấu cách

Sau khi xác định

>>> spam = 'Say hi to Bob\'s mother.'
67, chúng tôi xác định từ điển
>>> spam = 'Say hi to Bob\'s mother.'
72 và gọi
>>> spam = 'Say hi to Bob\'s mother.'
67 hai lần, chuyển các độ rộng khác nhau cho các cột bên trái và bên phải của bảng

Khi bạn chạy chương trình này, các mục dã ngoại được hiển thị hai lần. Lần đầu tiên cột bên trái rộng 12 ký tự và cột bên phải rộng 5 ký tự. Lần thứ hai, chúng lần lượt rộng 20 và 6 ký tự

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
9

Sử dụng

>>> spam = 'Say hi to Bob\'s mother.'
55,
>>> spam = 'Say hi to Bob\'s mother.'
56 và
>>> spam = 'Say hi to Bob\'s mother.'
64 cho phép bạn đảm bảo rằng các chuỗi được căn chỉnh ngay ngắn, ngay cả khi bạn không chắc chuỗi của mình dài bao nhiêu ký tự

Xóa khoảng trắng bằng dải (), rstrip () và lstrip ()

Đôi khi, bạn có thể muốn loại bỏ các ký tự khoảng trắng (dấu cách, tab và dòng mới) khỏi bên trái, bên phải hoặc cả hai bên của chuỗi. Phương thức chuỗi

>>> spam = 'Say hi to Bob\'s mother.'
85 sẽ trả về một chuỗi mới không có bất kỳ ký tự khoảng trắng nào ở đầu hoặc cuối. Các phương thức
>>> spam = 'Say hi to Bob\'s mother.'
86 và
>>> spam = 'Say hi to Bob\'s mother.'
87 sẽ lần lượt xóa các ký tự khoảng trắng ở đầu bên trái và bên phải. Nhập thông tin sau vào vỏ tương tác

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
0

Theo tùy chọn, đối số chuỗi sẽ chỉ định ký tự nào ở cuối sẽ bị xóa. Nhập thông tin sau vào vỏ tương tác

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
1

Vượt qua

>>> spam = 'Say hi to Bob\'s mother.'
85 đối số
>>> spam = 'Say hi to Bob\'s mother.'
89 sẽ yêu cầu nó loại bỏ các lần xuất hiện của
>>> spam = 'Say hi to Bob\'s mother.'
90,
>>> spam = 'Say hi to Bob\'s mother.'
91,
>>> spam = 'Say hi to Bob\'s mother.'
92 và viết hoa
>>> spam = 'Say hi to Bob\'s mother.'
93 từ các đầu của chuỗi được lưu trữ trong
'   H   e   l   l   o       w   o   r   l   d    !   '
    0   1   2   3   4   5   6   7   8   9   10   11
6. Thứ tự của các ký tự trong chuỗi được chuyển đến
>>> spam = 'Say hi to Bob\'s mother.'
85 không thành vấn đề.
>>> spam = 'Say hi to Bob\'s mother.'
96 sẽ làm điều tương tự như
>>> spam = 'Say hi to Bob\'s mother.'
97 hoặc
>>> spam = 'Say hi to Bob\'s mother.'
98

Sao chép và dán chuỗi bằng Mô-đun pyperclip

Mô-đun

>>> spam = 'Say hi to Bob\'s mother.'
99 có chức năng
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
00 và
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
01 có thể gửi văn bản đến và nhận văn bản từ khay nhớ tạm của máy tính. Gửi đầu ra của chương trình vào khay nhớ tạm sẽ giúp bạn dễ dàng dán nó vào email, trình xử lý văn bản hoặc một số phần mềm khác

Pyperclip không đi kèm với Python. Để cài đặt nó, hãy làm theo hướng dẫn cài đặt mô-đun của bên thứ ba trong Phụ lục A. Sau khi cài đặt mô-đun

>>> spam = 'Say hi to Bob\'s mother.'
99, hãy nhập thông tin sau vào trình bao tương tác

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
2

Tất nhiên, nếu một cái gì đó bên ngoài chương trình của bạn thay đổi nội dung khay nhớ tạm, hàm

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
01 sẽ trả về nó. Ví dụ: nếu tôi sao chép câu này vào khay nhớ tạm và sau đó gọi là
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
01, nó sẽ trông như thế này

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
3

Chạy tập lệnh Python bên ngoài IDLE

Cho đến nay, bạn đã chạy các tập lệnh Python của mình bằng trình chỉnh sửa tệp và shell tương tác trong IDLE. Tuy nhiên, bạn sẽ không muốn gặp phải sự bất tiện khi mở IDLE và tập lệnh Python mỗi khi bạn muốn chạy tập lệnh. May mắn thay, bạn có thể thiết lập các phím tắt để chạy các tập lệnh Python dễ dàng hơn. Các bước hơi khác nhau đối với Windows, OS X và Linux, nhưng mỗi bước được mô tả trong Phụ lục B. Chuyển sang Phụ lục B để tìm hiểu cách chạy tập lệnh Python của bạn một cách thuận tiện và có thể truyền đối số dòng lệnh cho chúng. (Bạn sẽ không thể truyền đối số dòng lệnh cho chương trình của mình bằng IDLE. )

Dự án. Khóa mật khẩu

Bạn có thể có tài khoản trên nhiều trang web khác nhau. Việc sử dụng cùng một mật khẩu cho mỗi trang là một thói quen xấu vì nếu bất kỳ trang nào trong số đó vi phạm bảo mật, tin tặc sẽ học được mật khẩu cho tất cả các tài khoản khác của bạn. Tốt nhất là sử dụng phần mềm quản lý mật khẩu trên máy tính của bạn sử dụng một mật khẩu chính để mở khóa trình quản lý mật khẩu. Sau đó, bạn có thể sao chép bất kỳ mật khẩu tài khoản nào vào khay nhớ tạm và dán vào trường Mật khẩu của trang web

Chương trình quản lý mật khẩu mà bạn sẽ tạo trong ví dụ này không an toàn nhưng nó cung cấp minh họa cơ bản về cách thức hoạt động của các chương trình đó

Dự án Chương

Đây là “dự án chương” đầu tiên của cuốn sách. Từ đây trở đi, mỗi chương sẽ có các dự án thể hiện các khái niệm được đề cập trong chương. Các dự án được viết theo phong cách đưa bạn từ cửa sổ soạn thảo tệp trống đến một chương trình hoạt động đầy đủ. Cũng giống như các ví dụ về shell tương tác, đừng chỉ đọc các phần của dự án mà hãy theo dõi trên máy tính của bạn

Bước 1. Thiết kế chương trình và cấu trúc dữ liệu

Bạn muốn có thể chạy chương trình này với đối số dòng lệnh là tên của tài khoản—ví dụ: email hoặc blog. That account’s password will be copied to the clipboard so that the user can paste it into a Password field. This way, the user can have long, complicated passwords without having to memorize them.

Mở một cửa sổ soạn thảo tệp mới và lưu chương trình với tên pw. p . Bạn cần bắt đầu chương trình bằng một dòng

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
05 ( shebang ) (xem Phụ lục B) và cũng nên viết nhận xét mô tả ngắn gọn về chương trình. Vì bạn muốn liên kết tên của từng tài khoản với mật khẩu của nó, nên bạn có thể lưu trữ chúng dưới dạng chuỗi trong từ điển. Từ điển sẽ là cấu trúc dữ liệu tổ chức dữ liệu tài khoản và mật khẩu của bạn. Làm cho chương trình của bạn trông giống như sau.

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
4

Bước 2. Xử lý đối số dòng lệnh

Các đối số dòng lệnh sẽ được lưu trữ trong biến

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
06. (Xem Phụ lục B để biết thêm thông tin về cách sử dụng đối số dòng lệnh trong chương trình của bạn. ) Mục đầu tiên trong danh sách
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
06 phải luôn là một chuỗi chứa tên tệp của chương trình (
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
08) và mục thứ hai phải là đối số dòng lệnh đầu tiên. Đối với chương trình này, đối số này là tên của tài khoản có mật khẩu mà bạn muốn. Vì đối số dòng lệnh là bắt buộc, nên bạn hiển thị thông báo sử dụng cho người dùng nếu họ quên thêm nó (nghĩa là nếu danh sách
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
06 có ít hơn hai giá trị trong đó). Làm cho chương trình của bạn trông giống như sau

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
5

Bước 3. Sao chép đúng mật khẩu

Bây giờ tên tài khoản được lưu dưới dạng chuỗi trong biến

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
10, bạn cần xem liệu nó có tồn tại trong từ điển
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
11 dưới dạng khóa không. Nếu vậy, bạn muốn sao chép giá trị của khóa vào khay nhớ tạm bằng cách sử dụng
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
12. (Vì bạn đang sử dụng mô-đun
>>> spam = 'Say hi to Bob\'s mother.'
99 nên bạn cần nhập nó. ) Lưu ý rằng bạn không thực sự cần biến
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
10; . Nhưng một biến có tên
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
10 dễ đọc hơn nhiều so với một biến khó hiểu như
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
15.

Làm cho chương trình của bạn trông giống như sau

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
6

Mã mới này tìm tên tài khoản trong từ điển

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
11. Nếu tên tài khoản là một khóa trong từ điển, chúng tôi sẽ lấy giá trị tương ứng với khóa đó, sao chép nó vào khay nhớ tạm và in thông báo cho biết chúng tôi đã sao chép giá trị. Nếu không, chúng tôi sẽ in một thông báo cho biết không có tài khoản nào có tên đó

Đó là kịch bản hoàn chỉnh. Sử dụng các hướng dẫn trong Phụ lục B để khởi chạy các chương trình dòng lệnh một cách dễ dàng, giờ đây bạn có một cách nhanh chóng để sao chép mật khẩu tài khoản của mình vào khay nhớ tạm. Bạn sẽ phải sửa đổi giá trị từ điển

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
11 trong nguồn bất cứ khi nào bạn muốn cập nhật chương trình bằng mật khẩu mới

Tất nhiên, bạn có thể không muốn giữ tất cả mật khẩu của mình ở một nơi mà bất kỳ ai cũng có thể dễ dàng sao chép chúng. Nhưng bạn có thể sửa đổi chương trình này và sử dụng nó để sao chép nhanh văn bản thông thường vào khay nhớ tạm. Giả sử bạn đang gửi một số email có nhiều đoạn giống nhau. Bạn có thể đặt mỗi đoạn dưới dạng một giá trị trong từ điển

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
11 (có thể bạn muốn đổi tên từ điển vào thời điểm này), sau đó bạn sẽ có một cách để nhanh chóng chọn và sao chép một trong nhiều đoạn văn bản tiêu chuẩn vào khay nhớ tạm

Trên Windows, bạn có thể tạo một tệp bó để chạy chương trình này với cửa sổ WIN -R Run. (Để biết thêm về các tệp bó, xem Phụ lục B. ) Nhập nội dung sau vào trình chỉnh sửa tệp và lưu tệp dưới dạng pw. bat trong C. Thư mục \Windows .

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
7

Với tệp lô này được tạo, việc chạy chương trình an toàn bằng mật khẩu trên Windows chỉ cần nhấn WIN -R và nhập

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
22.

Dự án. Thêm dấu đầu dòng vào đánh dấu Wiki

Khi chỉnh sửa một bài viết trên Wikipedia, bạn có thể tạo một danh sách có dấu đầu dòng bằng cách đặt mỗi mục trong danh sách vào dòng riêng của nó và đặt một ngôi sao ở phía trước. Nhưng giả sử bạn có một danh sách thực sự lớn mà bạn muốn thêm các gạch đầu dòng vào. Bạn chỉ cần gõ những ngôi sao đó ở đầu mỗi dòng, từng cái một. Hoặc bạn có thể tự động hóa tác vụ này bằng một đoạn mã Python ngắn

The bulletPointAdder. py sẽ lấy văn bản từ khay nhớ tạm, thêm dấu sao và dấu cách vào đầu mỗi dòng, sau đó dán văn bản mới này vào khay nhớ tạm. Ví dụ: nếu tôi đã sao chép văn bản sau (đối với bài viết Wikipedia “Danh sách Danh sách Danh sách”) vào khay nhớ tạm.

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
8

và sau đó chạy bulletPointAdder. py , thì bảng tạm sẽ chứa các nội dung sau.

>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
9

Văn bản có tiền tố dấu sao này đã sẵn sàng để dán vào một bài viết trên Wikipedia dưới dạng danh sách có dấu đầu dòng

Bước 1. Sao chép và Dán từ Clipboard

Bạn muốn bulletPointAdder. py chương trình để làm như sau.

  1. Dán văn bản từ khay nhớ tạm

  2. làm một cái gì đó với nó

  3. Sao chép văn bản mới vào khay nhớ tạm

Bước thứ hai hơi phức tạp, nhưng bước 1 và 3 khá đơn giản. Chúng chỉ liên quan đến các hàm

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
12 và
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
24. Hiện tại, chúng ta hãy viết phần chương trình bao gồm các bước 1 và 3. Nhập nội dung sau, lưu chương trình dưới dạng bulletPointAdder. p .

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
0

Nhận xét

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
25 là một lời nhắc nhở rằng cuối cùng bạn nên hoàn thành phần này của chương trình. Bước tiếp theo là thực sự triển khai phần đó của chương trình

Bước 2. Tách các dòng văn bản và thêm dấu sao

Cuộc gọi đến ____16_______24 trả về tất cả văn bản trên khay nhớ tạm dưới dạng một chuỗi lớn. Nếu chúng ta sử dụng ví dụ “Danh sách danh sách danh sách”, chuỗi được lưu trữ trong

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
27 sẽ trông như thế này

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
1

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
8 ký tự dòng mới trong chuỗi này khiến nó được hiển thị với nhiều dòng khi nó được in hoặc dán từ khay nhớ tạm. Có nhiều “dòng” trong một giá trị chuỗi này. Bạn muốn thêm một ngôi sao vào đầu mỗi dòng này

Bạn có thể viết mã tìm kiếm từng ký tự xuống dòng

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
8 trong chuỗi và sau đó thêm dấu sao ngay sau đó. Nhưng sẽ dễ dàng hơn khi sử dụng phương thức
>>> spam = 'Say hi to Bob\'s mother.'
48 để trả về danh sách các chuỗi, mỗi chuỗi tương ứng với một dòng trong chuỗi gốc, sau đó thêm dấu sao vào trước mỗi chuỗi trong danh sách

Làm cho chương trình của bạn trông giống như sau

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
2

Chúng tôi chia văn bản dọc theo các dòng mới của nó để có danh sách trong đó mỗi mục là một dòng của văn bản. Chúng tôi lưu trữ danh sách trong

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
31 và sau đó lặp qua các mục trong
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
31. Đối với mỗi dòng, chúng tôi thêm một ngôi sao và khoảng trắng vào đầu dòng. Bây giờ mỗi chuỗi trong
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
31 bắt đầu bằng một ngôi sao

Bước 3. Tham gia các dòng sửa đổi

Danh sách

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
31 hiện chứa các dòng được sửa đổi bắt đầu bằng dấu sao. Nhưng
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
12 đang mong đợi một giá trị chuỗi đơn lẻ, không phải danh sách các giá trị chuỗi. Để tạo giá trị chuỗi đơn này, hãy chuyển
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
31 vào phương thức
>>> spam = 'Say hi to Bob\'s mother.'
42 để lấy một chuỗi đơn được nối từ các chuỗi của danh sách. Làm cho chương trình của bạn trông giống như sau

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
3

Khi chương trình này được chạy, nó sẽ thay thế văn bản trên khay nhớ tạm bằng văn bản có dấu sao ở đầu mỗi dòng. Bây giờ chương trình đã hoàn tất và bạn có thể thử chạy nó với văn bản được sao chép vào khay nhớ tạm

Ngay cả khi bạn không cần tự động hóa tác vụ cụ thể này, bạn có thể muốn tự động hóa một số loại thao tác văn bản khác, chẳng hạn như xóa dấu cách ở cuối dòng hoặc chuyển đổi văn bản thành chữ hoa hoặc chữ thường. Dù nhu cầu của bạn là gì, bạn có thể sử dụng khay nhớ tạm cho đầu vào và đầu ra

Bản tóm tắt

Văn bản là một dạng dữ liệu phổ biến và Python đi kèm với nhiều phương thức chuỗi hữu ích để xử lý văn bản được lưu trữ trong các giá trị chuỗi. Bạn sẽ sử dụng các phương thức lập chỉ mục, cắt và chuỗi trong hầu hết mọi chương trình Python mà bạn viết

Các chương trình bạn đang viết bây giờ có vẻ không quá phức tạp—chúng không có giao diện người dùng đồ họa với hình ảnh và văn bản đầy màu sắc. Cho đến giờ, bạn đang hiển thị văn bản bằng

print('Dear Alice,\n\nEve\'s cat has been arrested for catnapping, cat
burglary, and extortion.\n\nSincerely,\nBob')
3 và cho phép người dùng nhập văn bản bằng
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
39. Tuy nhiên, người dùng có thể nhanh chóng nhập một lượng lớn văn bản thông qua khay nhớ tạm. Khả năng này cung cấp một con đường hữu ích để viết các chương trình thao tác với số lượng lớn văn bản. Các chương trình dựa trên văn bản này có thể không có cửa sổ hoặc đồ họa hào nhoáng, nhưng chúng có thể hoàn thành rất nhiều công việc hữu ích một cách nhanh chóng

Một cách khác để thao tác với lượng lớn văn bản là đọc và ghi tệp trực tiếp từ ổ cứng. Bạn sẽ học cách làm điều này với Python trong chương tiếp theo

Điều đó gần như bao gồm tất cả các khái niệm cơ bản về lập trình Python. Bạn sẽ tiếp tục học các khái niệm mới trong suốt phần còn lại của cuốn sách này, nhưng bây giờ bạn đã biết đủ để bắt đầu viết một số chương trình hữu ích có thể tự động hóa các tác vụ. Bạn có thể nghĩ rằng mình không có đủ kiến ​​thức về Python để thực hiện những việc như tải xuống trang web, cập nhật bảng tính hoặc gửi tin nhắn văn bản, nhưng đó là lúc các mô-đun Python xuất hiện. Các mô-đun này, được viết bởi các lập trình viên khác, cung cấp các chức năng giúp bạn dễ dàng thực hiện tất cả những việc này. Vì vậy, hãy học cách viết các chương trình thực tế để thực hiện các tác vụ tự động hữu ích

câu hỏi thực hành


Q

1. Ký tự thoát là gì?

Q

2. Các ký tự thoát

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
8 và
Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
7 đại diện cho điều gì?

Q

3. Làm thế nào bạn có thể đặt một ký tự dấu gạch chéo ngược

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
0 trong một chuỗi?

Q

4. Giá trị chuỗi

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
43 là một chuỗi hợp lệ. Tại sao ký tự trích dẫn đơn trong từ
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
44 không thoát không phải là vấn đề?

Q

5. Nếu bạn không muốn đặt

Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
8 trong chuỗi của mình, làm thế nào bạn có thể viết một chuỗi có dòng mới trong đó?

Q

6. Các biểu thức sau đây đánh giá điều gì?

  • >>> print("Hello there!\nHow are you?\nI\'m doing fine.")
    Hello there!
    How are you?
    I'm doing fine.
    46

  • >>> print("Hello there!\nHow are you?\nI\'m doing fine.")
    Hello there!
    How are you?
    I'm doing fine.
    47

  • >>> print("Hello there!\nHow are you?\nI\'m doing fine.")
    Hello there!
    How are you?
    I'm doing fine.
    48

  • >>> print("Hello there!\nHow are you?\nI\'m doing fine.")
    Hello there!
    How are you?
    I'm doing fine.
    49

Q

7. Các biểu thức sau đây đánh giá điều gì?

  • >>> print("Hello there!\nHow are you?\nI\'m doing fine.")
    Hello there!
    How are you?
    I'm doing fine.
    50

  • >>> print("Hello there!\nHow are you?\nI\'m doing fine.")
    Hello there!
    How are you?
    I'm doing fine.
    51

  • >>> print("Hello there!\nHow are you?\nI\'m doing fine.")
    Hello there!
    How are you?
    I'm doing fine.
    52

Q

8. Các biểu thức sau đây đánh giá điều gì?

  • >>> print("Hello there!\nHow are you?\nI\'m doing fine.")
    Hello there!
    How are you?
    I'm doing fine.
    53

  • >>> print("Hello there!\nHow are you?\nI\'m doing fine.")
    Hello there!
    How are you?
    I'm doing fine.
    54

Q

9. Những phương pháp chuỗi nào bạn có thể sử dụng để căn phải, căn trái và căn giữa một chuỗi?

Q

10. Làm cách nào bạn có thể cắt các ký tự khoảng trắng từ đầu hoặc cuối chuỗi?

Đồ án thực hành

Để thực hành, hãy viết một chương trình thực hiện như sau

Máy in bảng

Viết một hàm tên là

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
55 lấy một danh sách gồm các chuỗi và hiển thị nó trong một bảng được tổ chức hợp lý với mỗi cột được căn phải. Giả sử rằng tất cả các danh sách bên trong sẽ chứa cùng một số chuỗi. Ví dụ: giá trị có thể trông như thế này

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
4

Hàm

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
55 của bạn sẽ in như sau

print('''Dear Alice,

Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
5

Gợi ý. Trước tiên, mã của bạn sẽ phải tìm chuỗi dài nhất trong mỗi danh sách bên trong để toàn bộ cột có thể đủ rộng để chứa tất cả các chuỗi. Bạn có thể lưu trữ chiều rộng tối đa của mỗi cột dưới dạng danh sách các số nguyên. Hàm

>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
55 có thể bắt đầu bằng
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
58, hàm này sẽ tạo một danh sách chứa cùng một số lượng giá trị
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
59 như số lượng danh sách bên trong trong
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
60. Bằng cách đó,
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
61 có thể lưu chiều rộng của chuỗi dài nhất trong
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
62,
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
63 có thể lưu chiều rộng của chuỗi dài nhất trong
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
64, v.v. Sau đó, bạn có thể tìm giá trị lớn nhất trong danh sách
>>> print("Hello there!\nHow are you?\nI\'m doing fine.")
Hello there!
How are you?
I'm doing fine.
65 để tìm ra chiều rộng số nguyên cần chuyển cho phương thức chuỗi
>>> spam = 'Say hi to Bob\'s mother.'
55