Làm thế nào để bạn thụt lề nhiều dòng trong python?

Trong bài viết này, chúng ta sẽ xem xét cách thụt lề mã đúng cách cho các chuỗi nhiều dòng trong Python, vì vậy hãy bắt đầu bằng cách làm rõ chuỗi nhiều dòng là gì và tại sao việc thụt lề lại quan trọng. Khả năng đọc cho người dùng khác là một trong những yêu cầu chính để viết mã Python hiệu quả, do đó, việc có một chuỗi rất dài trên một dòng mâu thuẫn với yêu cầu cơ bản này. Ba cách chính để tách một chuỗi trong Python là ba dấu ngoặc kép (________ 03), dấu ngoặc vuông (________ 04) và dấu gạch chéo ngược (________ 05), tất cả những cách này chúng ta sẽ xem xét chi tiết hơn

Mặt khác, việc thụt lề thích hợp ít liên quan đến tính thẩm mỹ nhưng là một yêu cầu với Python vì nó cho trình thông dịch biết rằng một loạt các câu lệnh thuộc về một khối mã cụ thể. Do đó, việc thụt lề không chính xác có thể dẫn đến lỗi hoặc mã không chạy theo yêu cầu

Hãy sử dụng một ví dụ về một chuỗi dài và xem các phương thức khác nhau mà chúng ta có để tạo một chuỗi nhiều dòng và thụt lề đúng cách.  

# No!
string = "no matter how much experience you have coding in Python, making your code readable is vital so very, very long lines need to be split"

Phương pháp 'Ba dấu ngoặc kép'

Một trong những cách phổ biến nhất và đơn giản nhất để tách chuỗi của chúng tôi là phương thức dấu ngoặc kép. Chúng tôi có thể sử dụng ba dấu nháy đơn (

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
3) hoặc kép (
string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
7) và bất kỳ thứ gì trong dấu ngoặc kép đều trở thành một phần của chuỗi nhiều dòng. Ví dụ: chúng ta có thể sử dụng nút enter để ngắt chuỗi như sau

# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''

Mặc dù đây là một cải tiến nhất định, khả năng đọc vẫn có thể được cải thiện bằng cách thụt đầu dòng. Cách đơn giản nhất để thực hiện việc này là xếp các dòng tiếp theo bằng ký tự đầu tiên

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
3

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''

Vì vậy, đó là dễ dàng. Chúng tôi đã tạo một chuỗi nhiều dòng và thụt lề đúng cách… hoàn thành công việc

Thật không may, nó không dễ dàng vì theo nghĩa đen, bất kỳ thứ gì có trong dấu ngoặc kép đều trở thành một phần của chuỗi - bao gồm khoảng trắng, dòng mới và thụt đầu dòng. Vì vậy, nếu chúng ta cần chạy hoặc xử lý hậu kỳ mã, chẳng hạn bằng cách in, đầu ra có phải là thứ chúng ta muốn không?

no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split

Thật không may là không, trong khi dòng đầu tiên của chúng tôi đã được căn chỉnh sang trái, các dòng tiếp theo đã duy trì định dạng mà chúng tôi đã đưa vào để làm cho mã có thể đọc được. Vì vậy, bây giờ chúng ta cần loại bỏ bất kỳ khoảng trắng hoặc thụt đầu dòng nào mà chúng ta không cần và có hai cách chính để thực hiện việc này

Thụt lề với textwrap. vết lõm

Mô-đun

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
9 có thể được sử dụng để định dạng và gói văn bản thuần túy. Trong trường hợp chuỗi nhiều dòng, chúng ta có thể sử dụng nó để xóa khoảng trắng ở đầu phổ biến khỏi mọi dòng

Hãy xem lại ví dụ của chúng tôi

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
1

Đầu ra

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
2

Bước đầu tiên là nhập mô-đun

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
9. Sau đó, chúng tôi đã đính kèm chuỗi thực của mình trong hàm
no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split
1 và khi làm như vậy, các dòng chuỗi của chúng tôi đã được tự động thụt vào. Ngoài ra, chúng tôi đã bắt đầu chuỗi của mình bằng dấu gạch chéo ngược
no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split
2 để đảm bảo chuỗi của chúng tôi bắt đầu trên dòng mới

Điều quan trọng cần lưu ý với mô-đun này là khoảng trắng phải là 'chung' tôi. e. , nhất quán để làm việc hiệu quả. Vì vậy, điều gì xảy ra nếu không, và chúng tôi thêm khoảng trắng và thụt lề bổ sung?

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
6

đầu ra

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
7

Thay vì gói chuỗi của chúng tôi trong hàm

no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split
1, lần này chúng tôi gọi nó như một phần của câu lệnh in của chúng tôi. Mặc dù điều này không ảnh hưởng đến kết quả, nhưng các mức thụt đầu dòng khác nhau từ dòng đầu tiên đến dòng thứ ba có nghĩa là văn bản không được căn chỉnh vì khoảng trắng không nhất quán

Thụt đầu dòng Với kiểm tra. làm sạch

Một giải pháp thay thế cho mô-đun

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
9 là mô-đun kiểm tra và hàm
no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split
5. Mục đích của chức năng này là loại bỏ đồng nhất bất kỳ khoảng trắng nào từ dòng thứ hai trở đi

Nếu chúng ta xem lại chuỗi ban đầu của mình

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
1
string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
2

Bây giờ hãy xem điều gì sẽ xảy ra khi chúng ta nhập mô-đun

no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split
6 và chạy
no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split
7

# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''
0

đầu ra

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
2

Như chúng ta đã thấy với mô-đun

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
9 vì chúng ta đã đính kèm chuỗi nhiều dòng của mình trong hàm nên nó sẽ tự động được thụt vào. Đầu ra của chúng tôi cũng đã được căn chỉnh sang trái và khoảng trắng đã bị xóa, nhưng trong ví dụ này, chúng tôi có khoảng trắng nhất quán. Hãy xem điều gì sẽ xảy ra nếu chúng ta làm cho điều này không nhất quán

# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''
2
# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''
3

Không giống như mô-đun

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
9 với
no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split
6, chuỗi nhiều dòng đã được căn chỉnh về bên trái và việc thụt lề dòng thứ ba đã giữ nguyên sự liên kết với dòng thứ hai

Phương pháp 'Dấu ngoặc'

Một cách khác để sử dụng ba dấu ngoặc kép (_______03) để tạo chuỗi nhiều dòng là đặt toàn bộ chuỗi trong dấu ngoặc (_______04) và tách chuỗi của chúng ta bằng nút enter. Điều này sẽ tự động thụt lề từng dòng một cách chính xác vì mọi thứ trong ngoặc được coi là một khối mã. Tuy nhiên, mỗi dòng của chuỗi sẽ cần được đặt trong (

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
13) hoặc (
string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
14) như sau

# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''
4

Điều này chắc chắn giải quyết được vấn đề xung quanh việc thụt đầu dòng vì điều này được thực hiện tự động. Bây giờ hãy xem điều gì sẽ xảy ra khi chúng ta muốn sử dụng mã của mình, sử dụng lại hàm

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
15

# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''
5
# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''
6

Vì vậy, trong khi phương pháp dấu ngoặc giúp thụt đầu dòng, vẫn có một vấn đề với xử lý hậu kỳ, nghĩa là chúng ta phải định dạng chuỗi cho phù hợp – để in, chúng ta cần định dạng chuỗi theo cách chúng ta muốn nó được in. Trong ví dụ này, chúng tôi sẽ bao gồm một dấu ngắt dòng mới (

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
16) sau mỗi câu, nhưng nó cũng có thể bao gồm khoảng trắng, thụt lề thêm hoặc các yêu cầu định dạng khác

# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''
7
string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
2

Phương pháp 'Dấu gạch chéo ngược'

Một cách khác để tạo chuỗi nhiều dòng trong Python là sử dụng dấu gạch chéo ngược (

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
5) để tách chuỗi của chúng ta và đặt mỗi dòng của chuỗi trong dấu ngoặc kép. Không giống như phương thức của dấu ngoặc, chuỗi nhiều dòng không được thụt lề tự động

# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''
9
# Yes!
string='''no matter how much experience you have coding in Python,
making your code readable is vital so
very, very long lines need to be split'''
6

Với phương pháp này, chúng tôi không chỉ phải thụt lề chuỗi nhiều dòng theo cách thủ công, vì vậy nó tuân theo các nguyên tắc về khả năng đọc của Python, chúng tôi cũng phải định dạng theo cách chúng tôi muốn xử lý hậu kỳ. Do đó, nếu chúng tôi muốn mỗi dòng trong chuỗi của chúng tôi là một dòng mới, chúng tôi phải chèn dấu ngắt dòng mới (hoặc khoảng trắng) theo cách thủ công ngoài việc thụt lề thủ công để dễ đọc

string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
1
string='''no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split'''
2

Bản tóm tắt

Một trong những điều tốt nhất khi làm việc với Python là nó cung cấp nhiều giải pháp cho hầu hết các vấn đề, rất hiếm khi chỉ có một câu trả lời. Phần khó khăn nhất là tìm ra giải pháp thích hợp nhất phù hợp nhất với bạn và yêu cầu của bạn

Trong số các phương pháp tạo và thụt lề một chuỗi nhiều dòng mà chúng ta đã xem xét trong bài viết này, theo tôi, có một phương pháp duy nhất đưa ra giải pháp hợp lý nhất

💡 Việc đặt chuỗi nhiều dòng của chúng ta trong ba dấu ngoặc kép trong hàm

no matter how much experience you have coding in Python,
       making your code readable is vital so
       very, very long lines need to be split
7 không chỉ đảm bảo độ thụt đầu dòng ban đầu của chúng ta là chính xác để dễ đọc mà còn giúp chúng ta nhất quán khi chạy mã. Điều này đối với tôi bao gồm các yêu cầu cơ bản của bất kỳ tập lệnh Python nào