Cách sử dụng dòng và thụt đầu dòng trong python

Thụt lề trong Python được sử dụng để tạo một nhóm các câu lệnh. Nhiều ngôn ngữ phổ biến như C và Java sử dụng dấu ngoặc nhọn [{ }] để xác định một khối mã và Python sử dụng dấu thụt đầu dòng

Thụt đầu dòng trong Python là gì?

Thụt lề trong Python đề cập đến khoảng trắng ở đầu dòng. Chúng ta có thể tạo thụt đầu dòng bằng dấu cách hoặc tab. Khi viết mã Python, chúng ta phải định nghĩa một nhóm câu lệnh cho hàm và vòng lặp. Điều này được thực hiện bằng cách thụt lề đúng cách các câu lệnh cho khối đó

Khoảng trắng hàng đầu [dấu cách và tab] ở đầu dòng được sử dụng để xác định mức độ thụt lề của dòng. Chúng ta phải tăng mức thụt lề để nhóm các câu lệnh cho khối mã đó. Tương tự, giảm thụt đầu dòng để đóng nhóm

Bốn khoảng trắng hoặc một ký tự tab đơn được sử dụng để tạo hoặc tăng mức độ thụt lề của mã. Hãy xem một ví dụ để hiểu cách thụt lề mã và nhóm các câu lệnh

def foo[]:
    print["Hi"]

    if True:
        print["true"]
    else:
        print["false"]

print["Done"]

Thụt lề Python

Quy tắc thụt lề Python

  • Chúng tôi không thể tách thụt đầu dòng thành nhiều dòng bằng dấu gạch chéo ngược
  • Dòng đầu tiên của mã Python không thể có thụt đầu dòng, nó sẽ ném ra
    def print_numbers[x, y]:
        for i in range[x, y]:
            print[i]
    
    1
  • Bạn nên tránh trộn lẫn các tab và khoảng trắng để tạo thụt đầu dòng. Đó là bởi vì các trình soạn thảo văn bản trong các hệ thống Non-Unix hoạt động khác đi và việc trộn chúng có thể gây ra lỗi thụt đầu dòng
  • Nên sử dụng khoảng trắng để thụt lề hơn là ký tự tab
  • Cách tốt nhất là sử dụng 4 khoảng trắng cho lần thụt đầu dòng đầu tiên và sau đó tiếp tục thêm 4 khoảng trắng bổ sung để tăng mức thụt đầu dòng

Lợi ích của thụt đầu dòng trong Python

  • Trong hầu hết các ngôn ngữ lập trình, thụt đầu dòng được sử dụng để cấu trúc đúng mã. Trong Python dùng để gom nhóm, giúp code tự động đẹp
  • Quy tắc thụt lề Python rất đơn giản. Hầu hết các IDE Python tự động thụt lề mã cho bạn, vì vậy rất dễ dàng để viết mã được thụt lề đúng cách

Nhược điểm của việc thụt đầu dòng trong Python

  • Vì các khoảng trắng được sử dụng để thụt đầu dòng, nếu mã lớn và thụt đầu dòng bị hỏng thì việc sửa nó thực sự rất tẻ nhạt. Nó xảy ra chủ yếu bằng cách sao chép mã từ các nguồn trực tuyến, tài liệu Word hoặc tệp PDF
  • Hầu hết các ngôn ngữ lập trình phổ biến đều sử dụng dấu ngoặc nhọn để thụt đầu dòng, vì vậy bất kỳ ai đến từ một thế giới lập trình khác ban đầu đều thấy khó thích nghi với ý tưởng sử dụng khoảng trắng để thụt đầu dòng

Thụt lề trong Python cho vòng lặp

Chúng ta phải tăng thụt đầu dòng trong vòng lặp for để mã sẽ được nhóm lại với nhau. Hãy xem một ví dụ về thụt đầu dòng trong python for loop

def print_numbers[x, y]:
    for i in range[x, y]:
        print[i]

Ví dụ về lỗi thụt lề

Hãy xem xét một số ví dụ về IndentationError trong mã Python

>>>     x = 10
  File "", line 1
    x = 10
    ^
IndentationError: unexpected indent
>>> 

Chúng tôi không thể có một vết lõm trong dòng đầu tiên của mã. Đó là lý do tại sao IndentationError bị ném

if True:
    print["true"]
     print["Hi"]
else:
    print["false"]

Lỗi thụt lề Python

Các dòng mã bên trong khối if có mức độ thụt đầu dòng khác nhau, do đó IndentationError

if True:
    print["true"]
else:
    print["false"]

 print["Done"]

Lỗi cấp độ thụt lề Python Unindent

Ở đây, câu lệnh in cuối cùng có một số thụt đầu dòng nhưng không có câu lệnh nào để đính kèm nó, do đó lỗi thụt lề được đưa ra

if True:
print["true"]
else:
print["false"]

đầu ra

File "/Users/pankaj/Documents/PycharmProjects/PythonTutorialPro/hello-world/indent.py", line 2
    print["true"]
        ^
IndentationError: expected an indented block

Tóm lược

Thụt lề Python làm cho mã của chúng tôi đẹp. Nó cũng phục vụ mục đích nhóm các câu lệnh thành một khối mã. Điều này dẫn đến thói quen viết mã đẹp mọi lúc vì đó không phải là tính năng Tốt-Có mà là yêu cầu Bắt buộc phải có của mã

Thông thường, bạn không nên trộn lẫn các tab và dấu cách khi viết mã bằng Python. Việc làm này có thể gây ra lỗi

def print_numbers[x, y]:
    for i in range[x, y]:
        print[i]
2 và chương trình của bạn sẽ bị sập. Hãy nhất quán khi bạn viết mã - chọn thụt lề bằng tab hoặc dấu cách và tuân theo quy ước bạn đã chọn trong suốt chương trình của mình

Khối mã và thụt đầu dòng

Một trong những tính năng đặc biệt nhất của Python là việc sử dụng thụt đầu dòng để đánh dấu các khối mã. Xem xét câu lệnh if từ chương trình kiểm tra mật khẩu đơn giản của chúng tôi

if pwd == 'apple':
    print['Logging on ...']
else:
    print['Incorrect password.']

print['All done!']

Các dòng print[‘Đăng nhập …’] và print[‘Mật khẩu không chính xác. ’] là hai khối mã riêng biệt. Những cái này chỉ dài một dòng, nhưng Python cho phép bạn viết các khối mã bao gồm bất kỳ số lượng câu lệnh nào

Để chỉ ra một khối mã trong Python, bạn phải thụt lề mỗi dòng của khối theo cùng một lượng. Hai khối mã trong câu lệnh if ví dụ của chúng tôi đều được thụt vào bốn khoảng trắng, đây là số lượng thụt lề điển hình cho Python

Trong hầu hết các ngôn ngữ lập trình khác, thụt đầu dòng chỉ được sử dụng để giúp mã trông đẹp hơn. Nhưng trong Python, cần phải chỉ ra khối mã mà một câu lệnh thuộc về. Chẳng hạn, bản in cuối cùng ['Tất cả đã xong. '] không được thụt vào và do đó không phải là một phần của khối khác

Các lập trình viên quen thuộc với các ngôn ngữ khác thường nổi giận với suy nghĩ rằng thụt đầu dòng quan trọng. Nhiều lập trình viên thích tự do định dạng mã của họ theo cách họ muốn. Tuy nhiên, các quy tắc thụt đầu dòng trong Python khá đơn giản và hầu hết các lập trình viên đã sử dụng cách thụt đầu dòng để mã của họ có thể đọc được. Python chỉ đơn giản là đưa ý tưởng này tiến thêm một bước và mang lại ý nghĩa cho sự thụt đầu dòng

Câu lệnh if/elif

Câu lệnh if/elif là câu lệnh if tổng quát có nhiều hơn một điều kiện. Nó được sử dụng để đưa ra quyết định phức tạp. Ví dụ: giả sử một hãng hàng không có các mức giá vé "trẻ em" như sau. Trẻ em từ 2 tuổi trở xuống bay miễn phí, trẻ em trên 2 tuổi nhưng dưới 13 tuổi trả giá vé trẻ em được giảm giá và bất kỳ ai từ 13 tuổi trở lên trả giá vé người lớn thông thường. Chương trình sau xác định số tiền hành khách phải trả

________số 8

Sau khi Python nhận được tuổi từ người dùng, nó sẽ nhập câu lệnh if/elif và kiểm tra lần lượt từng điều kiện theo thứ tự chúng được đưa ra. Vì vậy, trước tiên, nó kiểm tra xem tuổi có nhỏ hơn 2 hay không và nếu có, nó cho biết rằng việc bay là tự do và nhảy ra khỏi điều kiện elif. Nếu tuổi không nhỏ hơn 2, thì nó sẽ kiểm tra điều kiện elif tiếp theo để xem tuổi có nằm trong khoảng từ 2 đến 13 không. Nếu vậy, nó sẽ in thông báo thích hợp và nhảy ra khỏi câu lệnh if/elif. Nếu cả điều kiện if và điều kiện elif đều không đúng, thì nó sẽ thực thi mã trong khối khác

biểu thức điều kiện

Python có thêm một toán tử logic mà một số lập trình viên thích [và một số thì không]. ]. Về cơ bản, đây là một ký hiệu viết tắt cho các câu lệnh if có thể được sử dụng trực tiếp trong các biểu thức. Hãy xem xét mã này

food = input["What's your favorite food? "]
reply = 'yuck' if food == 'lamb' else 'yum'

Biểu thức ở vế phải của = trong dòng thứ hai được gọi là biểu thức điều kiện và nó có giá trị là 'yuck' hoặc 'yum'. Nó tương đương như sau

def print_numbers[x, y]:
    for i in range[x, y]:
        print[i]
0

Các biểu thức điều kiện thường ngắn hơn các câu lệnh if/else tương ứng, mặc dù không hoàn toàn linh hoạt hoặc dễ đọc. Nói chung, bạn nên sử dụng chúng khi chúng làm cho mã của bạn đơn giản hơn

Tài liệu Python - Thụt lề

QUẢNG CÁO

QUẢNG CÁO

QUẢNG CÁO

Nếu bài viết này hữu ích, hãy tweet nó

Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu

Chủ Đề