Khoảng trắng đáng kể của Python

Lisp, Algol, Pascal, C, v.v. vân vân. được giới hạn bởi BEGIN. KẾT THÚC hoặc theo ký tự ngoặc. Trọng tâm của các ngôn ngữ lập trình ban đầu là khiến máy tính làm những gì chúng ta muốn. Sẽ không có vấn đề gì nếu định dạng trông có vẻ lộn xộn

Nhưng sau đó lập trình đã trở thành một câu chuyện thành công rực rỡ và các chương trình, mô-đun và toàn bộ hệ thống trở nên khổng lồ và khó sử dụng. Cuối cùng, chúng tôi nhận ra rằng làm cho mã trông đẹp mắt đối với người đọc cũng quan trọng như làm cho mã đó dễ hiểu đối với máy tính, bởi vì nếu không thì không ai có thể duy trì mã cũ. Phản ánh cấu trúc logic [lồng] với thụt đầu dòng hóa ra là một cách rất tốt để đạt được điều này. Thụt lề thích hợp đã trở thành một quy tắc tiêu chuẩn của mã sạch

Cuối cùng mọi người nhận ra rằng có thể sử dụng vết lõm để thông báo cho cả lập trình viên và máy tính. với thụt lề thích hợp - điều mà mọi hướng dẫn về phong cách đã nói rằng dù sao bạn cũng nên sử dụng - trên thực tế, bạn có thể bỏ qua BEGIN của Pascal. END, hoặc vùng đất hoang của dấu ngoặc đơn của Lisp hoặc dấu ngoặc của C/Java và khả năng đọc sẽ còn tốt hơn nữa. Điểm cuối cùng này còn gây tranh cãi, nhưng về mặt lịch sử, việc phân định khoảng trắng là điểm cuối của sự phát triển, không phải là tàn dư

$ cat /tmp/t
#!/usr/bin/python3

def fn[x]:
        x *= 2
   return x

fn[4]

dstromberg-desktop-dstromberg:~/public_html i486-pc-linux-gnu 25187 - above cmd done 2010 Fri Jan 01 11:14 AM

$ /tmp/t
  File "/tmp/t", line 5
    return x
           ^
IndentationError: unindent does not match any outer indentation level
dstromberg-desktop-dstromberg:~/public_html i486-pc-linux-gnu 25187 - above cmd done 2010 Fri Jan 01 11:19 AM

Khi cuộc nói chuyện rơi vào khoảng trắng đáng kể, phản ứng phổ biến nhất mà tôi nghe được dường như là một trong những phản ứng lệch lạc thần kinh

"Vấn đề thụt lề? Ồ, không. tôi kinh hoàng. "

Tôi luôn tự hỏi tại sao mọi người lại phản ứng như vậy. Vấn đề với khoảng trắng đáng kể là gì?

Nếu được lựa chọn, tôi thích thụt đầu dòng hơn. Theo cách đó, tôi không phải khai báo phạm vi nhiều lần

phạm vi rõ ràng

Nếu phải chọn giữa ba cách triển khai C# sau đây của FizzBuzz kata, bạn sẽ chọn cách nào?

a

class Program
{
static void Main[]
{
for [int i = 1; i 

Chủ Đề