Cách trả về nhiều dòng trong Python

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 cùng với 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 được 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 cách, 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 [

Dear Alice,

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

Sincerely,
Bob
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

Bảng 6-1 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['''Dear Alice,

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

Sincerely,
Bob''']
6

dây thô

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

print['''Dear Alice,

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

Sincerely,
Bob''']
70 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['''Dear Alice,

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

Sincerely,
Bob''']
8

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,

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

Sincerely,
Bob''']
72 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,

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

Sincerely,
Bob''']
73 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,

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

Sincerely,
Bob''']
7

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

Trong khi ký tự băm [

print['''Dear Alice,

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

Sincerely,
Bob''']
74] đá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ệ

print['''Dear Alice,

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

Sincerely,
Bob''']
6

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,

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

Sincerely,
Bob''']
75 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

print['''Dear Alice,

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

Sincerely,
Bob''']
8

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

print['''Dear Alice,

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

Sincerely,
Bob''']
75 dài 12 ký tự, từ
print['''Dear Alice,

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

Sincerely,
Bob''']
77 ở chỉ mục 0 đến
print['''Dear Alice,

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

Sincerely,
Bob''']
78 ở chỉ mục 11

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

print['''Dear Alice,

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

Sincerely,
Bob''']
2

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,

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

Sincerely,
Bob''']
75, thì
print['''Dear Alice,

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

Sincerely,
Bob''']
60 là
print['''Dear Alice,

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

Sincerely,
Bob''']
61. Chuỗi con bạn nhận được từ
print['''Dear Alice,

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

Sincerely,
Bob''']
60 sẽ bao gồm mọi thứ từ
print['''Dear Alice,

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

Sincerely,
Bob''']
63 đến
print['''Dear Alice,

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

Sincerely,
Bob''']
64, 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 thuận tiện để 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ử

print['''Dear Alice,

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

Sincerely,
Bob''']
65 và
print['''Dear Alice,

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

Sincerely,
Bob''']
66 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
print['''Dear Alice,

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

Sincerely,
Bob''']
65 hoặc
print['''Dear Alice,

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

Sincerely,
Bob''']
66 sẽ đánh giá thành Boolean
print['''Dear Alice,

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

Sincerely,
Bob''']
69 hoặc
print['''Dear Alice,

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

Sincerely,
Bob''']
80. 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

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

print['''Dear Alice,

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

Sincerely,
Bob''']
81 và
print['''Dear Alice,

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

Sincerely,
Bob''']
82 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

print['''Dear Alice,

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

Sincerely,
Bob''']
81 hoặc
print['''Dear Alice,

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

Sincerely,
Bob''']
82 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
print['''Dear Alice,

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

Sincerely,
Bob''']
85 để thay đổi chuỗi trong
print['''Dear Alice,

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

Sincerely,
Bob''']
86 thay vì chỉ đơn giản là
print['''Dear Alice,

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

Sincerely,
Bob''']
87. [Điều này giống như nếu một biến
print['''Dear Alice,

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

Sincerely,
Bob''']
88 chứa giá trị
print['''Dear Alice,

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

Sincerely,
Bob''']
89. Viết
print['''Dear Alice,

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

Sincerely,
Bob''']
20 không thay đổi giá trị của
print['''Dear Alice,

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

Sincerely,
Bob''']
88, nhưng
print['''Dear Alice,

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

Sincerely,
Bob''']
22 thì không. ]

Các phương pháp

print['''Dear Alice,

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

Sincerely,
Bob''']
81 và
print['''Dear Alice,

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

Sincerely,
Bob''']
82 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
print['''Dear Alice,

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

Sincerely,
Bob''']
25 và
print['''Dear Alice,

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

Sincerely,
Bob''']
26 không bằng nhau. Nhưng trong chương trình nhỏ sau đây, việc người dùng gõ
print['''Dear Alice,

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

Sincerely,
Bob''']
27,
print['''Dear Alice,

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

Sincerely,
Bob''']
28 hay
print['''Dear Alice,

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

Sincerely,
Bob''']
29 không quan trọng 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
print['''Dear Alice,

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

Sincerely,
Bob''']
69 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ề
print['''Dear Alice,

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

Sincerely,
Bob''']
80. 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

print['''Dear Alice,

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

Sincerely,
Bob''']
81 và
print['''Dear Alice,

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

Sincerely,
Bob''']
82 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 của
>>> spam = 'Say hi to Bob\'s mother.'
11
>>> spam = 'Say hi to Bob\'s mother.'
12
.

  • >>> spam = 'Say hi to Bob\'s mother.'
    13 trả về
    print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    69 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ề
    print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    69 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ề
    print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    69 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ề
    print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    69 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ề
    print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    69 nếu chuỗi chỉ bao gồm các từ bắt đầu bằng chữ hoa, theo sau chỉ là chữ 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
>>> spam = 'Say hi to Bob\'s mother.'
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 trữ thông tin đầu vào của họ trong
>>> 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 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 mật khẩu, lưu trữ đầu vào của người dùng trong
>>> spam = 'Say hi to Bob\'s mother.'
30 và thoát ra khỏi vòng lặp nếu đầ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, các bài kiểm tra 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ề
print['''Dear Alice,

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

Sincerely,
Bob''']
69 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['''Dear Alice,

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

Sincerely,
Bob''']
60

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['''Dear Alice,

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

Sincerely,
Bob''']
61

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 chuyển qua 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['''Dear Alice,

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

Sincerely,
Bob''']
62

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['''Dear Alice,

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

Sincerely,
Bob''']
63

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['''Dear Alice,

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

Sincerely,
Bob''']
64

Truyền

>>> spam = 'Say hi to Bob\'s mother.'
48 đối số
>>> 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
print['''Dear Alice,

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

Sincerely,
Bob''']
86 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['''Dear Alice,

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

Sincerely,
Bob''']
65

>>> spam = 'Say hi to Bob\'s mother.'
57 nói rằng chúng tôi muốn chứng minh đúng cho
print['''Dear Alice,

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

Sincerely,
Bob''']
61 trong một chuỗi có tổng chiều dài
print['''Dear Alice,

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

Sincerely,
Bob''']
89.
print['''Dear Alice,

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

Sincerely,
Bob''']
61 có năm ký tự, vì vậy năm khoảng trắng 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
print['''Dear Alice,

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

Sincerely,
Bob''']
61 đượ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['''Dear Alice,

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

Sincerely,
Bob''']
66

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 trái hoặc phải. Nhập thông tin sau vào vỏ tương tác

print['''Dear Alice,

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

Sincerely,
Bob''']
67

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['''Dear Alice,

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

Sincerely,
Bob''']
68

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

>>> 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 đến

>>> spam = 'Say hi to Bob\'s mother.'
67 là
>>> spam = 'Say hi to Bob\'s mother.'
72. Trong
>>> 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['''Dear Alice,

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

Sincerely,
Bob''']
69

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['''Dear Alice,

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

Sincerely,
Bob''']
80

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['''Dear Alice,

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

Sincerely,
Bob''']
81

Vượt qua đối số

>>> 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 ________ 790, ________ 791, ________ 792 và viết hoa ________ 793 khỏi các đầu của chuỗi được lưu trữ trong
print['''Dear Alice,

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

Sincerely,
Bob''']
86. 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['''Dear Alice,

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

Sincerely,
Bob''']
600 và
print['''Dear Alice,

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

Sincerely,
Bob''']
601 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['''Dear Alice,

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

Sincerely,
Bob''']
82

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['''Dear Alice,

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

Sincerely,
Bob''']
601 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['''Dear Alice,

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

Sincerely,
Bob''']
601, nó sẽ trông như thế này

print['''Dear Alice,

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

Sincerely,
Bob''']
83

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ự định. 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 với dòng

print['''Dear Alice,

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

Sincerely,
Bob''']
605 [ 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['''Dear Alice,

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

Sincerely,
Bob''']
84

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['''Dear Alice,

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

Sincerely,
Bob''']
606. [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['''Dear Alice,

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

Sincerely,
Bob''']
606 phải luôn là một chuỗi chứa tên tệp của chương trình [
print['''Dear Alice,

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

Sincerely,
Bob''']
608] 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 sẽ 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['''Dear Alice,

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

Sincerely,
Bob''']
606 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['''Dear Alice,

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

Sincerely,
Bob''']
85

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['''Dear Alice,

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

Sincerely,
Bob''']
610, bạn cần xem liệu nó có tồn tại trong từ điển
print['''Dear Alice,

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

Sincerely,
Bob''']
611 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['''Dear Alice,

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

Sincerely,
Bob''']
612. [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['''Dear Alice,

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

Sincerely,
Bob''']
610; . Nhưng một biến có tên
print['''Dear Alice,

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

Sincerely,
Bob''']
610 dễ đọc hơn nhiều so với một biến khó hiểu như
print['''Dear Alice,

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

Sincerely,
Bob''']
615.

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''']
86

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

print['''Dear Alice,

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

Sincerely,
Bob''']
611 cho tên tài khoản. 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['''Dear Alice,

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

Sincerely,
Bob''']
611 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['''Dear Alice,

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

Sincerely,
Bob''']
611 [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ó 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['''Dear Alice,

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

Sincerely,
Bob''']
87

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['''Dear Alice,

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

Sincerely,
Bob''']
622.

Dự định. 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['''Dear Alice,

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

Sincerely,
Bob''']
88

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

print['''Dear Alice,

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

Sincerely,
Bob''']
89

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['''Dear Alice,

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

Sincerely,
Bob''']
612 và
print['''Dear Alice,

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

Sincerely,
Bob''']
624. 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['''Dear Alice,

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

Sincerely,
Bob''']
625 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

Lệnh gọi tới

print['''Dear Alice,

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

Sincerely,
Bob''']
624 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['''Dear Alice,

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

Sincerely,
Bob''']
627 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ự xuống dòng trong chuỗi này khiến chuỗi này được hiển thị với nhiều dòng khi đượ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ự dòng mới

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 cho 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['''Dear Alice,

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

Sincerely,
Bob''']
631 và sau đó lặp qua các mục trong
print['''Dear Alice,

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

Sincerely,
Bob''']
631. Đố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['''Dear Alice,

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

Sincerely,
Bob''']
631 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['''Dear Alice,

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

Sincerely,
Bob''']
631 hiện chứa các dòng đã sửa đổi bắt đầu bằng dấu sao. Nhưng
print['''Dear Alice,

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

Sincerely,
Bob''']
612 đ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['''Dear Alice,

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

Sincerely,
Bob''']
631 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

Tóm lược

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,

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

Sincerely,
Bob''']
73 và cho phép người dùng nhập văn bản bằng
print['''Dear Alice,

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

Sincerely,
Bob''']
639. 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 cách 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['''Dear Alice,

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

Sincerely,
Bob''']
643 là một chuỗi hợp lệ. Tại sao ký tự trích dẫn đơn trong từ
print['''Dear Alice,

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

Sincerely,
Bob''']
644 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['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    646

  • print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    647

  • print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    648

  • print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    649

Q

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

  • print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    650

  • print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    651

  • print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    652

Q

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

  • print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    653

  • print['''Dear Alice,
    
    Eve's cat has been arrested for catnapping, cat burglary, and extortion.
    
    Sincerely,
    Bob''']
    654

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 có tên là

print['''Dear Alice,

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

Sincerely,
Bob''']
655 lấy một danh sách các chuỗi và hiển thị nó trong một bảng được tổ chức tốt 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

Chức năng

print['''Dear Alice,

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

Sincerely,
Bob''']
655 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['''Dear Alice,

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

Sincerely,
Bob''']
655 có thể bắt đầu bằng
print['''Dear Alice,

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

Sincerely,
Bob''']
658, hàm này sẽ tạo một danh sách chứa cùng số lượng giá trị
print['''Dear Alice,

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

Sincerely,
Bob''']
659 như số lượng danh sách bên trong trong
print['''Dear Alice,

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

Sincerely,
Bob''']
660. Bằng cách đó,
print['''Dear Alice,

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

Sincerely,
Bob''']
661 có thể lưu chiều rộng của chuỗi dài nhất trong ________ 1662, ________ 1663 có thể lưu chiều rộng của chuỗi dài nhất trong
print['''Dear Alice,

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

Sincerely,
Bob''']
664, v.v. Sau đó, bạn có thể tìm giá trị lớn nhất trong danh sách ________ 1665 để tìm ra độ rộng số nguyên cần chuyển cho phương thức chuỗi ________ 755

Bạn có thể trả lại nhiều thứ bằng Python không?

Bạn có thể trả về nhiều giá trị từ một hàm trong Python . Để làm như vậy, hãy trả về cấu trúc dữ liệu chứa nhiều giá trị, chẳng hạn như danh sách chứa số dặm chạy mỗi tuần. Cấu trúc dữ liệu trong Python được sử dụng để lưu trữ các bộ sưu tập dữ liệu, có thể được trả về từ các hàm.

Bạn có thể trả về nhiều lần trong một hàm Python không?

Hàm Python có thể trả về nhiều biến . Các biến này có thể được lưu trữ trực tiếp trong các biến. Một hàm không bắt buộc phải trả về một biến, nó có thể trả về 0, một, hai hoặc nhiều biến. Đây là thuộc tính riêng của Python, các ngôn ngữ lập trình khác như C++ hay Java mặc định không hỗ trợ tính năng này.

Chủ Đề