Tại sao khoảng trắng lại quan trọng trong python?

- Python không quan tâm đến các dòng trống thừa trong chương trình của bạn, giống như hầu hết các ngôn ngữ. In fact, it's common for developers to add extra empty lines, also known as white space, You can think of it kind of like paragraphs in a book. Chúng ta hãy xem tệp 03_05_begin. Things are really squished together and we even have a new function thrown in. You might find it especially challenging to figure out what this code is going to do, and that's totally understandable. Let's add a few blank lines so that it can be easier to read. We'll put a little bit of space here, some here after line number five. Much easier to read. Although in movies, programmers are often depicted as just endlessly typing on the keyboard, we actually spend much more time reading and understanding code than we do writing it. That's why we add white space. between the different elements of our statements. So right here on line number two, we're going to add some white space after name and right after this equals sign. We'll do the same thing again here on line number five. Just adding more white space, it makes it easier to read. If we save this file and run the code, Let's give it a name. And then when we hit Enter, it says, "It's nice to meet you, Jill. "Are you enjoying the course?" If we type, "Yes," then it says, "That's good to hear. " Hopefully, you were able to pick up on what the input function does. It takes some input from the user, and then it stores it in a variable, just like you see here on line number two, we get some input and then we store it in the variable name. We do this same thing here on line number five, where we ask the user if they were enjoying the course. Then we store it in our variable answer. You'll be seeing it again and again, so now you know what it does. Now let's add a bit more space. This time we're going to add space here on line number seven, after our answer variable, and once again, after this equals sign. Let's go ahead and save it and make sure we get the same output. and choose Run Python File in Terminal. Once again, we can enter a name, hit Enter, and enter yes for if we're enjoying the course. where white space really matters to Python, and that's when it relates to its special key words. If you recall, there are over 30 key words Let's take a look here on line number seven. If is one of those key words. If is one of those key words. If we delete the space between if and the answer variable, If we delete the space between if and the answer variable, let's click Save and run this code. So we'll right click once again So we'll right click once again and choose Run Python File in Terminal. and choose Run Python File in Terminal. Notice that we get a syntax error. That's because Python expects us That's because Python expects us to have a space after the if key word. to have a space after the if key word. So let's go back and add a space once again after if. So let's go back and add a space once again after if. Don't worry if you don't understand all the ins and outs Don't worry if you don't understand all the ins and outs of the current code, just keep in mind that most of the current code, just keep in mind that most of the time, Python is very laid back about white space. In fact, you're encouraged to add it in wherever it helps to improve readability. wherever it helps to improve readability. But there are circumstances where Python takes white space very seriously, and your code will fail takes white space very seriously, and your code will fail if you don't respect the rules. if you don't respect the rules. The good thing is that the more you practice, The good thing is that the more you practice, the more you follow the rules without even thinking. the more you follow the rules without even thinking

Python is famous among programming languages for its fairly unique syntax. rather than being delimited by curly braces or “begin/end” keywords, blocks are delimited by indentation. Indenting a line is like adding an opening curly brace, and de-denting is like a closing curly brace. When people criticise Python, it is usually the first complaint. “why would I want to use a language which requires me to indent code?” Indeed, while programmers are very used to indenting their code, they are very un-used to being forced to do so, and I can understand why they may take it as an insult that a language tells them how to write code. I don’t usually like to get into syntax arguments, because I find them very superficial — it is much more important to discuss the semantics of a language than its syntax. But this is such a common argument among Python detractors, I wanted to address it. Python is right, and it’s just about the only language that is

I think the rub is that programmers like to think of languages as a tool, and tools should be as flexible as possible. I think in general it is a good principle for programming languages not to enforce conventions. Languages that do tend to annoy people who don’t subscribe to the same conventions. For example, the Go programming language enforces the “One True Brace Style” — every opening curly brace must appear on the same line as the function header or control statement. This irritates me because that’s not my preferred convention. But the indentation convention is so universal that it is considered bad programming practice to not indent in all cases. (Có sự bất đồng về tab so với khoảng trắng, số lượng khoảng trắng, v.v., nhưng tất cả chúng ta đều đồng ý rằng thụt lề là tốt. ) There is not a single situation in any country, in any programming language, or at any skill level, in which is it acceptable to not indent your code the way Python requires it. Therefore, it is technically redundant to have a language that is not whitespace-sensitive. Any language that is not whitespace-sensitive requires (by universal convention) that programmers communicate the scoping of the code in two distinct manners for every single line of code. braces (or begin/end) and indentation. You are required to make sure that these two things match up, and if you don’t, then you have a program that doesn’t work the way it looks like it works, and the compiler isn’t going to tell you

There are two solutions to this problem. 1. Make the compiler tell you. Force the programmer to indent and put in curly braces, and have the compiler check the indentation and give either a warning or error if they don’t match up. Now you’ve solved the problem of accidentally getting it wrong, but now what is the point of requiring curly braces at all? The programmer would just be doing extra work to please the compiler. Chúng tôi cũng có thể đi với 2. take out the curly braces and just have the compiler determine the blocks based on indentation

When you really analyse it, Python’s whitespace sensitivity is actually the only logical choice for a programming language, because you only communicate your intent one way, and that intent is read the same way by humans and computers. Lý do duy nhất để sử dụng ngôn ngữ không phân biệt khoảng trắng là đó là cách chúng tôi luôn làm mọi việc và đó không bao giờ là lý do chính đáng. That is why my programming language, Mars, has the same indentation rule as Python

* * *

An interesting aside. có một quy tắc cú pháp liên quan trong Python có vẻ không hợp lý lắm. bạn được yêu cầu đặt dấu hai chấm ở cuối bất kỳ dòng nào trước phần thụt lề. Tôi chưa kiểm tra đầy đủ điều này, nhưng tôi khá chắc chắn rằng không có lý do kỹ thuật nào cho việc đó (trình phân tích cú pháp vẫn có thể hoạt động rõ ràng nếu không có dấu hai chấm đó) và dường như nó cũng không bổ sung nhiều vào khả năng đọc. Tôi cũng tuân theo quy tắc này một cách mù quáng ở Mars, bởi vì với tư cách là một lập trình viên Python, điều đó “cảm thấy đúng” đối với tôi. Nhưng có lẽ bỏ nó đi thì tốt hơn

Chia sẻ cái này

  • Twitter
  • Facebook

Như thế này

Thích Đang tải.

Có liên quan

77 Bình luận

77 phản hồi cho “Tại sao quy tắc khoảng trắng của Python lại đúng”

  1. Tại sao khoảng trắng lại quan trọng trong python?

    Tim 18 Tháng 10, 2011 lúc 6. 08 giờ tối. Reply

    The colon rule probably helps editors – after a colon and a newline, they know you _must_ indent (and will do so for you typically), without having to pay special attention to keywords

    Also more importantly, it means you have the exact same syntax for a single-line conditional

    if foo.
    continue

    naturally condenses (if you wish) to

    if foo. continue

    • Tim October 18, 2011 at 6. 09 pm . Reply

      the comment field ate my indentation, but you know what I mean…

    • Tại sao khoảng trắng lại quan trọng trong python?

      Matt Giuca October 18, 2011 at 7. 32 pm . Reply

      Good point. Trình chỉnh sửa không quá quan trọng vì tôi chắc chắn rằng trình chỉnh sửa có thể phát hiện “Dòng bắt đầu bằng def/if/while/for/etc và không chứa dấu hai chấm”. Nhưng tính nhất quán là một điểm tốt

  2. Tại sao khoảng trắng lại quan trọng trong python?

    AndrewC Tháng sáu 10, 2013 tại 8. 51 giờ sáng. Đáp lại

    (Tôi đồng ý với bạn hết lòng. ) Không, dấu hai chấm không cần thiết. Ví dụ, Haskell có khoảng trắng đáng kể và không có dấu hai chấm

    • AndrewC Tháng sáu 10, 2013 tại 8. 53 giờ sáng. Đáp lại

      ít nhất, không có dấu hai chấm cho mục đích cú pháp. (Nó được sử dụng như một hàm tạo danh sách. )

  3. Tại sao khoảng trắng lại quan trọng trong python?

    Vua Beauregard Tháng Tám 30, 2013 lúc 3. 13 giờ sáng. Đáp lại

    Tôi không thể tưởng tượng làm thế nào mà một ngôn ngữ bị hỏng nếu bạn thụt lề sai lại có thể được coi không chỉ là một lựa chọn hợp lý, mà còn là “lựa chọn hợp lý duy nhất”. Không còn nghi ngờ gì nữa, nó hoàn toàn hợp lý đối với bản thân máy tính và có lẽ nó có thể dành cho loài khác, nhưng không phải loài này

    Đôi khi, con đường ít người đi lại ít người đi hơn là có lý do

    • Matt Giuca Tháng Tám 30, 2013 lúc 11. 02 giờ sáng. Đáp lại

      Bạn có thể giải thích tại sao nó không dành cho loài này không? . chính loài này có các tiêu chuẩn mã hóa gần như phổ quát nói rằng bạn phải thụt lề mã của mình. Vì vậy, vì dù sao thì bạn cũng đang thụt lề mã của mình, tại sao không đảm bảo rằng bạn đang thụt lề chính xác?

  4. Tại sao khoảng trắng lại quan trọng trong python?

    Người chăn bò Tháng mười một 10, 2013 lúc 1. 57 giờ tối. Đáp lại

    @Matt, hãy xem xét sự khác biệt giữa Python

    nếu x.
    nếu y.
    foo()
    else.
    thanh()

    và C

    if (x) {
    if (y) {
    foo();
    }
    } else {
    bar();
    }

    Trong trường hợp C, ý nghĩa là rõ ràng; . Tuy nhiên, bạn biết tôi *có ý định* viết gì… phải không?

    • Matt Giuca November 10, 2013 at 2. 04 giờ chiều. Đáp lại

      Đó là sự thật, nhưng tôi cho rằng đây là một thiếu sót của WordPress, không phải Python. Mặc dù làm như vậy sẽ ít phổ biến hơn, nhưng tôi có thể viết một công cụ viết blog loại bỏ các dấu ngoặc nhọn và sau đó mã C sẽ bị hỏng. Tôi coi “khả năng đọc” và “trông giống như những gì nó thực sự làm” là mục tiêu thiết kế quan trọng hơn đối với ngôn ngữ lập trình hơn là “liệu ​​mã có bị hỏng nếu dán vào trang web X ngẫu nhiên không?”

      • Tại sao khoảng trắng lại quan trọng trong python?

        Sebastian Redl Tháng Ba 18, 2016 tại 8. 14 giờ chiều. Đáp lại

        Bạn đã bao giờ thử dán mã C++ bằng các mẫu (hoặc Java bằng cách sử dụng chung chung) vào trường nhận xét loại bỏ các thẻ HTML chưa?

    • Tại sao khoảng trắng lại quan trọng trong python?

      Khỉ cánh cụt Tháng Chín 3, 2019 lúc 12. 48 giờ sáng. Đáp lại

      BTW. đó là một trên lót.
      foo() if x and y other bar()

      • Tại sao khoảng trắng lại quan trọng trong python?

        Greg Schmit Tháng mười hai 14, 2019 tại 8. 40 giờ sáng. Đáp lại

        Huh? . Nếu x là Đúng và y là Sai, thì không nên gọi foo hay bar, nhưng lệnh gọi một lớp của bạn là bar. Bạn sẽ cần `foo() nếu x và y khác (bar() nếu không x khác Không có)`

  5. Tại sao khoảng trắng lại quan trọng trong python?

    negyxo Tháng mười hai 16, 2013 tại 6. 13 giờ sáng. Đáp lại

    Xin lỗi vì đã bình luận bài viết của bạn gần đây, nhưng tôi không thể cưỡng lại 🙂

    Lần đầu tiên tôi nhìn thấy mã được phân cách bằng khoảng trắng trong Haskell – một ngôn ngữ điên rồ và cũng rất hay 🙂

    Tôi đang làm việc với C# được gần 10 năm rồi. Tôi chỉ có thể nói rằng tôi càng làm việc với C#, tôi càng ghét các dấu ngoặc nhọn. Đó là một sự lãng phí thời gian. Tại công ty nơi tôi làm việc, chúng tôi có các công cụ (FxCop, StyleCop) buộc chúng tôi phải tuân thủ các tiêu chuẩn của công ty. Tất nhiên là không sao, nhưng sau đó tôi nhận thấy một điều, có một quy tắc kỳ lạ trong một số công cụ này buộc bạn phải bắt đầu mọi khối bằng một dòng mới và bạn cũng cần phải thụt lề khối đó. Vì vậy, cuối cùng, có một quy tắc buộc bạn phải làm điều tương tự mà Python thực thi bạn nhưng với các dấu ngoặc nhọn bổ sung mà bạn phải duy trì thủ công (hoặc mua một số công cụ của bên thứ 3). Bạn không thể đăng ký (cam kết) mã của mình trừ khi bạn sửa nó. Điều này cũng tương tự với các công ty không có xác minh tự động, cuối cùng nếu tất cả các bạn đã đồng ý về một số quy tắc, tại sao bạn có thể chia nhỏ chúng?

    Và vâng, khoảng trắng là một phần của chính chương trình, chúng tôi đã sử dụng nó làm thông tin đầu vào cho mắt của mình, tại sao lại tệ như vậy nếu chúng tôi sử dụng cùng một thông tin để cung cấp cho trình biên dịch/trình thông dịch?

  6. Tại sao khoảng trắng lại quan trọng trong python?

    Jimmy Lu Tháng mười một 16, 2014 lúc 11. 39 giờ sáng. Đáp lại

    Quy tắc thụt đầu dòng của Python khiến việc tạo mã khó hơn. Trong một ngôn ngữ như thế này, bạn cần cung cấp một chế độ thay thế để tạo mã (xem những gì có sẵn trong Haskell). Trong Python, chúng tôi không có cái này, cái này thực sự rất tệ

    • Matt Giuca Tháng mười một 16, 2014 tại 1. 14 giờ chiều. Đáp lại

      Tôi sẽ thừa nhận nó khó hơn một chút. điều đó có nghĩa là trình tạo mã của bạn phải luôn theo dõi mức thụt đầu dòng và mỗi khi nó chèn một dòng mới, để chèn nhiều khoảng trắng/tab đó. Nhưng đó là một nhiệm vụ khá tầm thường so với tất cả những thứ khác mà bạn phải biết khi viết trình tạo mã, cho bất kỳ ngôn ngữ nào. Tôi không nghĩ đây là vấn đề lớn, nhất là khi ngôn ngữ lập trình nên được thiết kế chủ yếu cho con người viết chứ không phải máy tính

      Quy tắc khoảng trắng của Haskell phức tạp hơn nhiều so với Python, và vâng, việc viết một trình tạo mã cho Haskell được phân tách bằng khoảng trắng sẽ khó hơn nhiều so với Python, vì vậy nó không thực sự có thể so sánh được (i. e. , thật tốt khi Haskell cung cấp một chế độ được phân cách bằng dấu ngoặc nhọn;

    • Khỉ cánh cụt Tháng Chín 3, 2019 lúc 12. 52 am . Đáp lại

      Để tạo mã trong Python, chỉ cần làm.
      ‘\t’ * indentLevel+câu lệnh

      IMO Tôi nghĩ mặc dù bạn nên sử dụng Hy để tạo mã, không phải Python AST hoặc chuỗi mặc dù…

  7. Tại sao khoảng trắng lại quan trọng trong python?

    joe blo Tháng một 28, 2015 tại 1. 29 giờ sáng. Đáp lại

    Đã từng làm việc với lập trình không có nẹp và có nẹp trong YAML, JSON, Haskell, Java, HTML, HAML, Ruby, Python, XML, v.v…

    Bạn đã hoàn toàn sai lầm về điều này. “Lý do duy nhất để sử dụng ngôn ngữ không phân biệt khoảng trắng là đó là cách chúng tôi luôn làm mọi việc”

    Không, lý do tôi thích dấu ngoặc nhọn trong mã của mình là vì tôi có thể nhấn một tổ hợp phím và tự động định dạng lại mã của mình trong khi hoàn toàn chắc chắn rằng tôi không thay đổi ý nghĩa của nó. Đây là một điều tốt. Điều đó có nghĩa là tôi không phải đếm khoảng trắng. Tôi không phải lo lắng về các tab và không gian hỗn hợp. Tôi có thể gõ một vài biểu thức trên một dòng, nhấn tổ hợp phím và có mã hoàn toàn dễ đọc mà không phải liên tục lãng phí tài nguyên tinh thần để đáp ứng các tiêu chuẩn định dạng khập khiễng

    • Matt Giuca Tháng Một 29, 2015 tại 9. 47 giờ sáng. Đáp lại

      Tôi không theo lập luận này. Hãy quay trở lại quan điểm ban đầu của tôi. với dấu ngoặc nhọn, có *hai* biểu diễn riêng biệt của cấu trúc mã. một cái có thể đọc được bằng máy và một cái có thể đọc được bằng con người. Nếu bạn không đảm bảo rằng họ hoàn toàn đồng ý, thì con người rất có thể sẽ hiểu sai mã của bạn. Trong khi với độ nhạy khoảng trắng, chỉ có một biểu diễn cấu trúc mã mà cả máy và con người đều có thể đọc và đồng ý

      Quan điểm của bạn dường như là bạn có một công cụ lấy biểu diễn mà máy có thể đọc được và đảm bảo biểu diễn mà con người có thể đọc được phù hợp. Điều đó thật tuyệt (Tôi cũng sử dụng công cụ này - mặc dù nó không tồn tại khi tôi viết bài đăng trên blog này vào năm 2011 và tôi không biết bất kỳ công cụ nào đã tồn tại). Nhưng nếu bạn đang sử dụng một ngôn ngữ nhạy cảm với khoảng trắng, thì bạn hoàn toàn không cần đến công cụ đó, bởi vì biểu diễn mà con người có thể đọc được *luôn* khớp với biểu diễn mà máy có thể đọc được. “X tốt hơn Y vì X có thể đạt được những lợi ích tương tự như Y với công cụ bổ sung” không phải là lập luận ủng hộ X

      Bạn không nên “đếm khoảng trống” — mắt bạn làm điều đó cho bạn (bạn chỉ cần quan sát cái nào thụt vào nhiều hơn cái nào). Bạn *không bao giờ* nên trộn lẫn các tab và dấu cách, bằng bất kỳ ngôn ngữ nào, vì vậy đó không phải là vấn đề (và bạn sẽ thấy rằng, trong khi mã C dở hơi trộn lẫn các tab và khoảng trắng rất nhiều, thì điều đó hầu như không bao giờ xảy ra trong mã Python dở tệ bởi vì . Quan điểm của tôi là bạn không *cần* lãng phí tài nguyên tinh thần để định dạng lại mã trong Python vì mọi mã chính xác *đã* được định dạng chính xác rồi

  8. Tại sao khoảng trắng lại quan trọng trong python?

    Jason Tháng hai 10, 2015 tại 4. 31 giờ sáng. Đáp lại

    Bạn là một thằng ngốc cổ bút chì ngu ngốc. Bạn giống như một người chấp nhận bị cúi xuống một cái thùng và bị một anh chàng đeo dây đeo khổng lồ húc vào mông và nói: “Không sao đâu, anh ta đang sử dụng bao cao su nên tôi sẽ không bắt được gì từ những người bạn lập dị khác của mình. .
    Không, bắt buộc phải sử dụng khoảng trắng là không ổn đâu đồ ngốc. Nó lấy đi sự lựa chọn. Bất kỳ ngôn ngữ nào lấy đi sự lựa chọn đều phải được loại bỏ ngay lập tức. Điều tương tự cũng xảy ra với việc phá vỡ khả năng tương thích ngược trong vòng chưa đầy 10 năm. Các ký tự vô hình để đánh dấu mã… hoàn toàn ngu xuẩn…. and fools like you who accept this make it all possible for the great creators of these garbage to state they have a product.

    • Matt Giuca Tháng hai 10, 2015 tại 7. 11 giờ đêm. Đáp lại

      Quyết định không đánh dấu bình luận xúc phạm ghê tởm này là thư rác chỉ để tôi có thể phản đối nó

      > Không, bắt buộc phải sử dụng khoảng trắng là không ổn đâu đồ ngu. Nó lấy đi sự lựa chọn

      Thật là một lý lẽ nực cười. Bất cứ điều gì lấy đi sự lựa chọn nên được binned? . Java ngăn tôi chuyển đổi một int thành một con trỏ và làm hỏng máy tính; . Ruby khẳng định rằng các hướng dẫn của tôi được thực hiện từ trên xuống dưới chứ không phải từ dưới lên trên

      Thiết kế ngôn ngữ - hay đúng hơn là bất kỳ thiết kế nào của bất kỳ thứ gì - là về việc lựa chọn cẩn thận các hạn chế để người dùng thử và tăng cơ hội đạt được kết quả tốt. Lò vi sóng của tôi không cho phép tôi sử dụng khi cửa mở, để tránh bức xạ cho tôi. Bạn có nghĩ điều đó là sai vì nó “lấy đi sự lựa chọn” không? . Nếu bạn không thích nó, tốt, bạn có thể tự do chọn một ngôn ngữ khác. Nhưng đó là, theo ý kiến ​​của tôi, một hạn chế hữu ích

      Về thái độ của bạn, hãy lớn lên nếu bạn muốn được coi trọng

  9. Tại sao khoảng trắng lại quan trọng trong python?

    rogerdpack Tháng Năm 8, 2015 tại 6. 19 giờ sáng. Đáp lại

    Đây là lý do tại sao những người tạo golang dường như không thích nó.
    http. //tốt hơn. com/roger/2015/05/go-creators-why-curly-braces-instead-of-respect-indentation/ (Tôi cũng không tranh cãi, nhưng tôi đã từng nghe một câu trích dẫn từ họ)

  10. Tại sao khoảng trắng lại quan trọng trong python?

    Alexander Werth Tháng Năm 12, 2015 tại 8. 12 giờ sáng. Đáp lại

    Vấn đề là toàn bộ đối số cho khoảng trắng pyhtonic dựa vào việc các nhà phát triển phải thực hiện thụt đầu dòng thủ công.
    Đó không phải là trường hợp của trình chỉnh sửa hiện đại. Bạn đặt dũng cảm và mã được định dạng cho bạn. Đó là không tốn thời gian cho việc thụt đầu dòng và đầu ra hoàn hảo.
    Mặt khác, Python thường buộc lập trình viên phải xử lý thụt đầu dòng theo cách thủ công.
    Đó là vì không thể suy ra mức độ thụt đầu dòng phù hợp từ bất kỳ thứ gì khác.
    Ví dụ: mỗi lần tôi thêm dấu ngoặc đóng, tôi phải hủy thụt lề theo cách thủ công.
    Vì vậy, không có thời gian an toàn ở đó. Nhưng mọi thứ trở nên tồi tệ hơn từ đó.
    Đặc biệt đối với việc tái cấu trúc mã trong đó các phần được di chuyển xung quanh vết lõm phải được điều chỉnh thủ công hầu hết thời gian.
    Và mặc dù điều đó chỉ hơi khó chịu khi di chuyển các khối lớn hơn mà có thể được (thủ công) thụt vào trong khối, nhưng lại gây lãng phí rất nhiều thời gian cho tất cả các thay đổi nhỏ khi thêm một điều kiện hoặc vòng lặp bổ sung.

    • Matt Giuca Tháng Năm 12, 2015 tại 10. 39 giờ sáng. Đáp lại

      Mặc dù bạn chắc chắn đúng rằng các công cụ định dạng tự động làm cho các ngôn ngữ dựa trên dấu ngoặc nhọn trở nên dễ sử dụng, nhưng lập luận cơ bản của tôi vẫn đúng. Lưu ý rằng tôi đã viết bài viết này vào năm 2011 khi (theo hiểu biết của tôi), không có công cụ định dạng tự động tốt cho C/C++, nhưng tất nhiên bây giờ đã có ClangFormat và tôi sử dụng nó mọi lúc

      Nhưng tôi không thấy điều này đặt Python ở thế *bất lợi* như thế nào so với một lập trình viên C với ClangFormat. Chắc chắn bất kỳ trình soạn thảo văn bản tốt nào cũng có tính năng thụt lề/lùi khối. Vì vậy, việc di chuyển các khối Python vào hoặc ra khỏi vòng lặp rất đơn giản. chọn tất cả các dòng bạn muốn thụt lề, nhấn Shift+> (ví dụ trong Vim) và bạn đã hoàn tất. It’s still simpler than manually inserting braces and then running ClangFormat

      Quan điểm ban đầu của tôi, mà tôi vẫn luôn ủng hộ, đó là trong Python, bạn không nên nghĩ về ý định là “dành thêm thời gian để hoàn thiện mã”. Đặt thủ công thụt đầu dòng trong Python *hoàn toàn tương đương* với đặt dấu ngoặc nhọn theo cách thủ công trong các ngôn ngữ khác, ngoại trừ phần thưởng được thêm vào (phải thừa nhận là ít hơn vì hiện tại chúng tôi có ClangFormat) mã của bạn có thể tự động đọc được

      Vẫn còn vấn đề về bất kỳ mã C nào *chưa* được chạy qua ClangFormat, chẳng hạn như mã cũ và mã mà đồng nghiệp của bạn có thể viết. Ưu điểm của Python là việc thụt lề chính xác là nền tảng của ngôn ngữ, không phải là một công cụ tùy chọn mà bạn có thể chạy. Lỗi này đơn giản là không thể xảy ra trong Python

      if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
      goto fail;
      goto fail;

      • Matt Giuca Tháng Năm 12, 2015 tại 10. 40 giờ sáng. Đáp lại

        Và tôi tự cắn mình với đoạn mã cuối cùng đó. Nhưng hãy xem câu trả lời của tôi cho https. //không xác định. báo chí. com/2011/10/18/why-pythons-whitespace-rule-is-right/#comment-690

  11. Tại sao khoảng trắng lại quan trọng trong python?

    Lý Tiểu Long Tháng Tám 18, 2015 lúc 12. 40 giờ sáng. Đáp lại

    Khoảng trắng này với python thực sự khiến tôi bật cười. Ngoại trừ việc tôi phải lập trình trong đó. Điều yêu thích của tôi là khi các pythonistas tuyên bố rằng ngôn ngữ không thực thi quyền riêng tư của thành viên đối tượng cũng không sao (chẳng hạn như được thực hiện trong java và c ++), bởi vì, và tôi trích dẫn, “Tất cả chúng ta đều là người lớn ở đây” và bạn chỉ là . Được rồi, đủ công bằng, ngoại trừ việc rõ ràng, chúng ta “tất cả đều là người lớn ở đây” chỉ khi nó phù hợp với những lập luận khá khập khiễng của họ, nhưng liệu chúng ta có “đủ trưởng thành” để quyết định cách thức và thời điểm thụt lề không? . Chào mừng bạn đến với python, nơi mọi người được coi là một lập trình viên mới làm quen. Tập hợp các dòng đầu tiên mà tôi phải đánh dấu là tiếp tục qua nhiều dòng làm cho nội dung tào lao khó đọc hơn bất kỳ tập hợp dấu ngoặc nhọn nào.

    Python là chim gõ kiến ​​của các ngôn ngữ lập trình. Thực sự, bạn có thể xuất hiện trong một thời gian, nhưng đảm bảo rằng việc sử dụng cái đầu của bạn như một cái búa sẽ không đưa bạn đến con đường tiến hóa cao hơn… Và hiếm có ngôn ngữ nào phát triển được số lượng fanboy đáng kinh ngạc như vậy. Fanboy là người không thể bị thuyết phục, bất kể bằng chứng hay lập luận nào, rằng họ có thể đang phóng đại mọi thứ…chỉ…một…chút…chút. “why-pythons-whitespace-rule-is-right” là một ví dụ hoàn hảo về điều đó. [lòng bàn tay]

  12. Cách tôi sửa Atom - davidvgalbraith Tháng một 29, 2016 lúc 10. 08 giờ sáng. Đáp lại

    […] không có hầu hết các từ khóa, dấu ngoặc đơn và dấu ngoặc đơn. Nó sử dụng khoảng trắng để xác định phạm vi, giống như Python. Nó cũng hỗ trợ các lớp. Hai dòng này định nghĩa một phương thức của lớp TextEditor có tên là […]

  13. Tại sao khoảng trắng lại quan trọng trong python?

    ZhadowOfLight Tháng Năm 11, 2016 tại 4. 30 giờ sáng. Đáp lại

    Đúng là nói chung, tất cả chúng ta đều đồng ý rằng việc thụt đầu dòng là quan trọng và tuyệt vời, nhưng tôi không nghĩ rằng đó là trường hợp mà chúng ta luôn có thể đồng ý về các chi tiết cụ thể.
    Nếu bạn bỏ qua cho tôi “tất-cả-mã-nên-đẹp”, đó là trong một thế giới lý tưởng mà chúng ta không ở đó,
    nếu tôi . Where(i => i func(j));
    In C# statements like
    thing.Where(i => i func(j));
    Đọc tốt. Tất cả những gì tôi phải làm để đảm bảo giãn cách ổn định là thực hiện Ctrl+k+f (định dạng)
    Tôi không thể làm điều đó trong Python.
    Tôi không thể
    int func (a) { return func(a, default) }
    Nếu tôi cộng tác trong . tab, số lượng khoảng trắng, v.v.,
    vì vậy tôi thực sự KHÔNG KIẾM được bất cứ thứ gì.

    Mặc dù đúng là niềng răng nói chung là dư thừa, nhưng trong một số trường hợp cụ thể, chúng rất hữu ích
    1. Chúng làm cho khoảng trắng trở nên không đáng kể, đối với những trường hợp khó chịu (là những trường hợp quan trọng) mà chúng ta cần chúng trở nên không đáng kể
    2. They permit auto-formatting
    3. Nó hoàn toàn rõ ràng.
    4. Tôi không biết làm thế nào để cộng tác giữa các nhóm/tái cấu trúc khác nhau trong đó các lập trình viên python có thể dễ dàng thực hiện khoảng trắng, nhưng nếu khoảng trắng có thể là một ngôn ngữ không nhạy cảm, tôi chỉ có thể tưởng tượng trong python.

    Đó không phải là lựa chọn hợp lý duy nhất. Chỉ là một mô phạm.
    Tôi muốn kiểm soát khoảng trắng của mình để có khả năng đọc tối đa,
    Trình biên dịch không hiểu khả năng đọc, tôi hiểu.

    Tôi thực sự yêu thích hầu hết các quyết định thiết kế của python, nhưng quyết định đó thật lãng phí.
    Dù sao đi nữa, chúng ta cũng có thể tranh luận về sự tồn tại của những con ma, bạn sẽ không bao giờ thay đổi ý định của mình.

  14. Tại sao khoảng trắng lại quan trọng trong python?

    toraf Tháng Mười 19, 2016 lúc 5. 46 giờ sáng. Đáp lại

    Lưu ý rằng tôi đã viết bài viết này vào năm 2011 khi (theo hiểu biết của tôi), không có công cụ định dạng tự động tốt cho C/C++. Đội ngũ studio hình ảnh sẽ rất khó chịu…

  15. Tại sao khoảng trắng lại quan trọng trong python?

    Nick Tháng Năm 6, 2017 tại 5. 30 giờ sáng. Đáp lại

    Tôi đồng ý với King Beauregard, bất kỳ ngôn ngữ nào mà việc thụt lề có ý nghĩa quan trọng đối với cú pháp đều là ngu ngốc. Tôi ngạc nhiên về số lượng người đang viết mã bằng ngôn ngữ này. Tôi sẽ không bao giờ nghĩ về việc sử dụng một ngôn ngữ như vậy

  16. Tại sao khoảng trắng lại quan trọng trong python?

    mikkel toxwenius Tháng Năm 18, 2017 tại 8. 22 giờ sáng. Đáp lại

    Yêu cầu thụt lề là một tính năng tuyệt vời của Python. Tuy nhiên, nó đi kèm với khả năng xảy ra các lỗi thụt lề khó chịu có thể rất khó phát hiện. Hãy xem mã này trong hình ảnh trong liên kết bên dưới. Đó là mã Python được viết bằng Sublime Text 3. Có một lỗi thụt lề trong đó. Bạn có thể phát hiện ra nó?

    Tại sao khoảng trắng lại quan trọng trong python?

    • Matt Giuca Tháng Năm 18, 2017 tại 12. 38 giờ chiều. Đáp lại

      [Ghi chú. Tôi đã chỉnh sửa nhận xét của bạn bằng hình ảnh chính xác mà sau này bạn đã đăng trong phần tiếp theo. ]

      Tôi không chắc bạn đang làm gì với ví dụ này; . Đây có phải là tab/không gian hỗn hợp không? . https. //không xác định. báo chí. com/2011/10/18/why-pythons-whitespace-rule-is-right/#comment-2834

      Quan điểm của tôi là bạn không bao giờ nên trộn lẫn các tab và dấu cách và trình chỉnh sửa của bạn phải được định cấu hình để chỉ ra điều đó. Lý tưởng nhất, đó sẽ là một lỗi cú pháp nếu bất kỳ khối nào trộn lẫn các tab và khoảng trắng để thụt đầu dòng

      Nếu không, tôi không chắc nó là gì

  17. Tại sao khoảng trắng lại quan trọng trong python?

    Chơi game điên rồ Có thể 19, 2017 tại 10. 50 giờ sáng. Đáp lại

    Có, có một khoảng trống ở đó giữa các tab, nhưng nó không hiển thị. the indentation is visually exactly the same. I don’t know why this is, because with an extra space in between the tabs I would expect a slight indentation to be noticed visually. But it isn’t. Anyway the editor can be made to show tabs and spaces by selecting all code and thus the culprit can be found, which does makes it a whole lot easier

    This is shown in this screenshot, its the dot in line 6. Có lẽ đây là cách mọi người thường phát hiện ra lỗi thụt lề nhưng giờ tôi mới phát hiện ra điều này lol 😉

    http. // hình ảnh. com/4L9SA2s

    • Matt Giuca Tháng Năm 19, 2017 tại 11. 12 giờ sáng. Đáp lại

      À, đúng rồi. Vâng, như tôi đã nói, tôi nghĩ vấn đề ở đây là trộn lẫn các tab và dấu cách (không phải toàn bộ khái niệm khoảng trắng dưới dạng cú pháp). Và tôi nghĩ Python sẽ tốt hơn nếu nó không cho phép bạn kết hợp

  18. Tại sao khoảng trắng lại quan trọng trong python?

    Smitty Tháng Năm 22, 2017 tại 11. 21 giờ tối. Đáp lại

    Thực tế là bạn dựa vào *không nhìn thấy được* (tôi. e. không thể in được) các ký tự cho tôi biết bất cứ ai đưa ra quyết định này là một kẻ ngu ngốc

    • Matt Giuca Có thể 23, 2017 tại 2. 18 giờ chiều. Đáp lại

      Không gian hoàn toàn có thể nhìn thấy và in được… trên thực tế, nó ảnh hưởng mạnh mẽ đến cách con người đọc mã, vì vậy nó có thể nhìn thấy rõ ràng. Thực tế là nó rất quan trọng để đọc mã là lý do tại sao trình biên dịch sử dụng cùng một chỉ báo để phân tích cú pháp của chính nó lại rất có ý nghĩa.

  19. Smitty Tháng Năm 23, 2017 tại 6. 50 giờ chiều. Đáp lại

    Ngoại trừ việc có vô số ký tự không in được – tạo ra “khoảng trắng”

    Dưới đây là phổ biến nhất

    SPACE (điểm mã 32, U+0020)
    TAB (điểm mã 9, U+0009)
    NGUỒN FEED (điểm mã 10, U+000A)
    LINE TABULATION (codepoint 11, U+000B)
    FORM FEED (codepoint 12, U+000C)
    CARRIAGE RETURN (codepoint 13, U+000D)

    Bạn muốn chèn cái nào trong số này vào mã nguồn của mình?

    • Matt Giuca Tháng Năm 23, 2017 tại 7. 19 giờ tối. Đáp lại

      Lý tưởng nhất, chỉ là KHÔNG GIAN. Nhưng rõ ràng là có những người thích TAB để thụt lề hơn và họ nên được cung cấp. Không có mã nào cần sử dụng TABULATION DÒNG hoặc FORM FEED hoặc bất kỳ ký tự điều khiển nào khác (ngoài TAB, CR và LF), vì vậy đó có thể chỉ là lỗi cú pháp

      Rõ ràng, các dòng mới khác biệt rõ ràng với SPACE/TAB để chúng tạo thành một phần riêng biệt của cú pháp ngôn ngữ. Không có sự nhầm lẫn ở đó. Có *có* sự nhầm lẫn giữa CR, LF và CR+LF, nhưng không sao, chúng ta có thể cho phép tất cả chúng và đối xử với chúng như nhau

      Vấn đề *thực sự* duy nhất khi cho phép SPACE và TAB là TAB thụt lề các số lượng khác nhau trên các hệ thống khác nhau, vì vậy việc trộn chúng là một vấn đề. Điều này đã được thảo luận rất lâu trong các nhận xét ở trên; . Cú pháp ngôn ngữ lý tưởng của tôi sẽ khiến nó trở thành lỗi cú pháp khi trộn SPACE và TAB trong cùng một khối;

      Tái bút. Lập luận rằng nhiều ký tự có thể không thể phân biệt được chung chung hơn các ký tự khoảng trắng và thường không được chấp nhận là lý do để các ký tự đó không có ý nghĩa trong cú pháp ngôn ngữ lập trình. Ví dụ: nhiều ngôn ngữ cho phép các chữ cái không phải ASCII trong mã định danh của chúng, điều đó có nghĩa là bạn có thể có 'a' (U+0061 CHỮ NHỎ LATIN A) và 'а' (U+0430 CHỮ CHỮ NHỎ CHỮ KỲ KIỂU A) làm mã định danh riêng biệt. Đó không phải là thứ thường cần được thực thi ở cấp độ ngôn ngữ, bởi vì các lập trình viên thường sẽ tránh sử dụng cả hai

  20. Lý Tiểu Long 24 Tháng Năm, 2017 tại 11. 48 giờ sáng. Đáp lại

    Tuy nhiên, tôi nhận thấy bạn sử dụng dấu chấm câu ở cuối câu của bạn. Tại sao không chỉ kết thúc trong khoảng trắng? . Thật khó để hiểu tại sao bạn thậm chí còn cố gắng đưa ra lập luận này. (And, admittedly, why I continue to follow it, ha. )

    • Matt Giuca Tháng Năm 24, 2017 tại 12. 24 giờ chiều. Đáp lại

      > Thật khó để hiểu tại sao bạn thậm chí còn cố gắng đưa ra lập luận này

      Thực tế là một trong những ngôn ngữ lập trình phổ biến nhất mọi thời đại sử dụng khoảng trắng có nghĩa là ít nhất nó cũng đáng nói. Điều đó không có nghĩa là nó hợp lệ, nhưng tôi hơi bối rối bởi tất cả những người bác bỏ nó vì rõ ràng là sai, nó “thậm chí không đáng để tranh cãi”.

      Sự tương tự của dấu chấm câu là thiếu sót vì tôi đặt dấu cách giữa tất cả các từ của mình;

      Ngoài ra, văn xuôi hoàn toàn khác với mã lập trình. Lập luận chính xác mà tôi đưa ra trong bài viết này là mã lập trình đã được tất cả các lập trình viên nghiêm túc thụt lề (không giống như văn xuôi, vốn thiếu nhiều cấu trúc vật lý ngoài các đoạn văn), và do đó, dấu chấm câu là không cần thiết vì việc thụt đầu dòng rất dễ đọc và dễ nhận thấy

      • Tại sao khoảng trắng lại quan trọng trong python?

        James Tháng Bảy 8, 2020 tại 4. 24 giờ sáng. Đáp lại

        Chà, bạn chắc chắn đã thực hiện một bước nhảy vọt từ 'thậm chí không đáng để tranh luận' sang tuyên bố rằng mọi ngôn ngữ sử dụng dấu ngoặc nhọn đều sai

  21. Lý Tiểu Long 24 Tháng Năm, 2017 tại 7. 17 giờ chiều. Đáp lại

    PHP cũng phổ biến. Điều đó làm cho nó có thể đọc được? . Tôi sẽ cho bạn biết rằng khá nhiều người đã uống kool-aid, vâng

    Nhưng đến mức. Chỉ có mã _more_ readable và _less_ readable. Và python đưa ra nhiều lựa chọn dễ đọc. Chấm dứt khối vô hình chỉ là một

    Nếu tôi có 3 khối sâu giảm xuống 0 khối sâu, điều này dễ đọc hơn nhiều

    rất nhiều mã, độ sâu của mã tại thời điểm này là bao nhiêu?
    statement
    }
    }
    }

    thêm mã

    và điều này hơi khó đọc

    rất nhiều mã, độ sâu của mã tại thời điểm này là bao nhiêu?
    câu lệnh

    thêm mã

    hmmm… tốt hơn hãy cuộn ngược lại và cố gắng đếm các vết lõm trên trang ở đâu đó…. -P

    ——————————

    và sau đó là sự xấu xí vô cùng mà tôi-chưa-làm-được. ký hiệu. kinda, heh, "bash" tới tương lai, tôi đoán vậy. )

    từ nexus. cmd. đáp lại. cli. network_config nhập NetworkConfig \
    dưới dạng NetworkConfigCliResponse

    và ký hiệu đây là khi tôi hoàn thành không xấu xí

    từ nexus. cmd. đáp lại. cli. network_config nhập NetworkConfig
    dưới dạng NetworkConfigCliResponse;

    ————————————

    isinstance(…)

    nghiêm túc? . nối các từ thành một mớ hỗn độn dài nóng bỏng là điều ngược lại với khả năng đọc. lại. làm thế nào điều này thậm chí còn gây tranh cãi?

  22. Lý Tiểu Long 24 Tháng Năm, 2017 tại 7. 19 giờ tối. Đáp lại

    thở dài. trình định dạng tại trang web này dường như đồng ý rằng khoảng trắng là một thứ tầm thường nên được bỏ qua hoàn toàn. . -P

  23. Lý Tiểu Long 26 Tháng Năm, 2017 tại 2. 36 giờ sáng. Đáp lại

    Đọc lại một chút, đây là nhận xét sâu sắc nhất được đưa ra trong chủ đề này (và nó không phải của tôi. đi hình…)

    ZhadowOfLight anh ấy nói

    “Trình biên dịch không hiểu khả năng đọc, tôi hiểu. ”

    Amen

  24. Tại sao khoảng trắng lại quan trọng trong python?

    derp Tháng Bảy 16, 2017 lúc 7. 43 giờ sáng. Đáp lại

    “Không có một tình huống nào ở bất kỳ quốc gia nào, ở bất kỳ ngôn ngữ lập trình nào hoặc ở bất kỳ trình độ kỹ năng nào, trong đó việc không thụt lề mã của bạn theo cách Python yêu cầu là có thể chấp nhận được”

    “if(condition) response();” is perfectly well accepted code. khẳng định của bạn là sai afaict

    Ngoài ra, việc cho rằng ý kiến ​​của bạn là đúng không giúp ích gì cho quan điểm của tôi về bạn

  25. Tại sao khoảng trắng lại quan trọng trong python?

    TheRealKenC (@therealkenc) ngày 25 tháng 7 năm 2017 lúc 6. 43 giờ sáng. Đáp lại

    Tiền đề của bài viết về cơ bản là thiếu sót. Nó dựa trên lập luận rằng (trích dẫn) “Có sự bất đồng về tab so với khoảng trắng, số lượng khoảng trắng, v.v., nhưng tất cả chúng ta đều đồng ý rằng thụt lề là tốt”

    Không ai nói rằng mã cần phải được tạo ra bởi con người chứ đừng nói đến việc con người có thể đọc được, bởi vì các trình tạo mã. Và các trình nén/làm rối mã rất hữu ích nếu không chúng sẽ không tồn tại

    Đó là các ngôn ngữ như Python và điều đó có nghĩa là tất cả chúng ta phải đánh lừa các trình soạn thảo của mình bằng các cờ “cho phép hiển thị khoảng trắng”. Thở dài

  26. Tại sao khoảng trắng lại quan trọng trong python?

    roger Tháng Tám 15, 2017 tại 7. 18 giờ chiều. Đáp lại

    Bạn có hai sự lựa chọn

    Đường trăn.
    + Bạn lưu một ký tự (dấu ngoặc nhọn kết thúc).
    – Code breaking compatibility issues with different styles of indentation (tabs, 2 space, 4 space. )

    Cách thông thường.
    + Các vấn đề về khả năng tương thích chỉ mang tính thẩm mỹ. Mã sẽ chạy tốt.
    – Bạn nhập thêm ký tự

    Sử dụng bất kỳ IDE đàng hoàng nào, bạn có thể làm cho nó tự động chèn dấu ngoặc nhọn và đóng dấu ngoặc nhọn, để điều đó trở thành tranh luận, chỉ để lại các vấn đề về tính tương thích (mỹ phẩm so với vi phạm mã). Như bạn đã nói, mọi người đều thụt lề, vì vậy việc ép buộc nó không mang lại lợi ích gì

    Và bạn cho rằng cách của trăn là “lựa chọn hợp lý duy nhất”

  27. Tại sao khoảng trắng lại quan trọng trong python?

    Arthur Tháng Chín 7, 2017 lúc 10. 41 giờ sáng. Đáp lại

    Xin chào Matt, tôi chỉ muốn gửi lời cảm ơn sâu sắc đến bạn vì đã viết bài viết này và trả lời rất cặn kẽ những nhận xét này. Sau rất nhiều quảng cáo về Python, tôi đã cố gắng thử. Tôi thực sự phát cáu với việc buộc phải sử dụng khoảng trắng, vì vậy tôi nghĩ mình nên tra Google nhanh để xem những người ủng hộ Python nói gì để bảo vệ điều này. Tôi tìm thấy bài viết này, và đọc mọi thứ ở đây. Tôi có rất nhiều phàn nàn tương tự (chủ yếu là khó tái cấu trúc mã và tính toàn vẹn của mã được đảm bảo) mà nhiều người khác đã giải quyết. Đối với tôi, điều khó hiểu nhất là phải làm việc với thứ mà tôi thực sự không thể “nhìn thấy”, chẳng hạn như khí ga. Khoảng trắng có thể tích giống như khí, nhưng tôi thực sự không thể nhìn thấy những gì ở đó trừ khi IDE phân biệt đó là ký tự nào. Nó có thể là một khoảng trắng, một tab, một khoảng trắng, có thể là một ký tự null. Tôi đã hy vọng sẽ bị ảnh hưởng, nhưng có vẻ như bạn đã hiểu sai rất nhiều lập luận mà mọi người đang đưa ra và mặc định dấu ngoặc nhọn là “thừa thãi”. Vì bạn đã quyết định viết một ngôn ngữ lập trình phụ thuộc vào định dạng khoảng trắng, nên tôi chỉ có thể cho rằng bạn hoàn toàn tin tưởng vào điều này. Thành thật mà nói và không hề mỉa mai, tôi có thể nói rằng tôi rất vui vì tôi có thể bị thuyết phục để tránh Python bởi một người quá chú trọng đến khoảng trắng này. Cảm ơn một lần nữa

  28. Tại sao khoảng trắng lại quan trọng trong python?

    Andy Tháng Mười Hai 6, 2017 lúc 3. 52 giờ sáng. Đáp lại

    Blog thảo luận rất tốt, với lập luận thuyết phục theo cả hai hướng. Tôi hiện đang thiết kế ngôn ngữ dành riêng cho miền của riêng mình và ban đầu tôi nghĩ sẽ sử dụng thụt đầu dòng như Python. Chỉ khi tôi cố gắng viết một ngữ pháp phi ngữ cảnh, tôi mới nhận ra rằng bạn không thể làm điều đó đối với một ngôn ngữ dựa trên dấu đầu dòng (ít nhất là không ở mức byte). Python giải quyết vấn đề bằng cách giới thiệu mã thông báo INDENT và DEDENT, do đó, nó chỉ phi ngữ cảnh ở cấp độ phân tích cú pháp. Tôi vẫn chưa quyết định liệu khoảng trắng có quan trọng về mặt cú pháp hay không nhưng blog được duy trì tốt này đã cho tôi rất nhiều điều để suy nghĩ. Cảm ơn bạn đã dành thời gian để trả lời chu đáo cho từng bình luận

  29. Andy Tháng Mười Hai 7, 2017 lúc 2. 28 giờ sáng. Đáp lại

    Tôi đồng ý rằng một ngôn ngữ lập trình nên được thiết kế cho con người, không phải máy tính. Rốt cuộc, một máy tính chỉ hoạt động với mã máy, về cơ bản là các chuỗi 0 và 1. Và nếu ngôn ngữ đó cũng có thể đơn giản hóa việc phát triển trình phân tích cú pháp [như bạn nói, lý tưởng nhất là LL(1)], thì nó có nhiều khả năng được chấp nhận hơn. JSON là một ví dụ điển hình, mặc dù đó chỉ dành cho dữ liệu

    Đánh giá về các phản ứng đối với blog này, rất nhiều lập trình viên đã thử cả hai dấu ngoặc nhọn và thụt đầu dòng, nhưng vẫn rất ủng hộ dấu ngoặc nhọn. Tôi có thể cộng hưởng với một số mối quan tâm của họ. Niềng răng có thể là một dấu hiệu trực quan tốt hơn về phạm vi, mặc dù tôi nghĩ rằng điều đó chỉ áp dụng cho căn chỉnh dọc kiểu Allman. Tôi vẫn cố gắng tuân theo JavaScript kiểu K&R. Nhược điểm là có thêm không gian theo chiều dọc và, như bạn đã đi sâu vào, mã được thụt lề đúng cách (dù sao thì mọi người cũng làm) thường khiến chúng trở nên thừa

    Không cần quá Perl-esque, sẽ thật tuyệt nếu một ngôn ngữ cho phép cả hai hình thức biểu diễn phạm vi. Có lẽ nhiều lập trình viên sẽ bị cám dỗ bởi mặt tối của việc bỏ qua dấu ngoặc nhọn (nhanh hơn, quyến rũ hơn) nếu họ được tự do lựa chọn. Tuy nhiên, tôi có thể tưởng tượng ra những vấn đề lớn khi cố gắng hỗ trợ kết hợp cả hai hình thức. Giống như với các tab và dấu cách, có lẽ đơn giản là cấm trộn. Đó là trí tuệ Ghostbuster. “Đừng qua suối. ”

  30. Andy December 7, 2017 at 9. 09 giờ tối. Reply

    Cool. Thanks, I will

  31. Tại sao khoảng trắng lại quan trọng trong python?

    Kamen January 1, 2018 at 9. 55 giờ sáng. Đáp lại

    Khoảng trắng của Python là không đúng; . Hence, the FOR arguments are weaker than the AGAINST arguments. Sorry

  32. Writing a Scientific Software Package. Configuring vim . Brian Jackson April 2, 2018 at 5. 46 giờ sáng. Reply

    […] many other languages, Python considers whitespace in its interpretation, and the Python style guide recommends using four spaces for each level of indentation. It would be […]

  33. Tại sao khoảng trắng lại quan trọng trong python?

    Tashka August 12, 2018 at 8. 51 pm . Reply

    Great post. Đối với "trộn các tab và dấu cách và bất kỳ ký tự vô hình nào có trong vũ trụ" thì tôi sẽ không mua một BS như thế này - tôi * chưa bao giờ * gặp sự cố như thế này trong suốt sự nghiệp lập trình viên python của mình (như 7-8

  34. Tại sao khoảng trắng lại quan trọng trong python?

    Kirk Augustin October 27, 2018 at 3. 30 giờ chiều. Reply

    White space is terrible way to delineate because you have no explicit control over it. For example, on a small screen, you don’t want lines to wrap by themselves. You want to break up long lines under your control and use newlines, white space, indenting, etc. , to make it readable without changing the syntactic meaning. When you cut and paste, if there are special deliminators, then you know you did not miss a line from the beginning or end of the block you are copying

  35. Tại sao khoảng trắng lại quan trọng trong python?

    PiotrKroptokin February 27, 2019 at 9. 44 pm . Reply

    Tôi rất không đồng ý. In a modern programming language, you do not both indent the code and use braces. Bạn chỉ cần sử dụng dấu ngoặc nhọn và để trình chỉnh sửa thụt lề cho bạn.
    Trong Python, điều đó không hiệu quả và nó làm chậm quá trình phát triển rất nhiều do luôn phải điều chỉnh thụt đầu dòng theo cách thủ công; .

    Also, the Python way is not new. Khoảng trắng đáng kể chỉ mang lại phương pháp cũ, lỗi thời, được sử dụng bởi COBOL và Fortran (vì chúng phát sinh trong thời kỳ thẻ đục lỗ). mandatory columns. Complete with a continuation character that further makes modifying code frustrating…

  36. Penguin Monkey September 2, 2019 at 2. 07 giờ tối. Đáp lại

    Khoảng trắng đáng kể cũng được sử dụng trong Miranda, Idris, Elm, Agda, Haskell, F#, ISWIM và Yaml. Tôi nghĩ rằng nó làm cho mã dễ đọc hơn vì có ít mã thông báo hơn và trông gọn gàng hơn rất nhiều. Bạn dành nhiều thời gian để đọc mã hơn là viết nó. Hầu hết các trình soạn thảo có thể hiển thị sự khác biệt giữa TABS và SPACES, ví dụ: trong Sublime do ALT-SHIFT-P hiển thị khoảng trắng và với một trong các lệnh của nó, bạn có thể biến SPACES thành TABS, điều này cũng dễ dàng tìm thấy trong các IDE khác. Để dán mã Python vào đây mặc dù bạn phải thay thế TABS bằng…. hoặc —- mặc dù. Sao chép/Dán mã Python có thể yêu cầu bạn chuyển khoảng trắng thành tab hoặc Shift-TAB, nhưng tôi nghĩ nó đáng giá. Python không ngăn cản bạn đặt nhiều câu lệnh trong một dòng, tách các biểu thức và sử dụng các trình vòng lặp hoặc với các câu lệnh bạn có thể thụt lề hoặc kết hợp các vòng lặp…

  37. Trăn thật. Python đấu với C++. Chọn công cụ phù hợp cho công việc - Nhà thiết kế và lập trình viên web Adrian Tudor Ngày 12 tháng 9 năm 2019 lúc 4. 00 giờ sáng. Đáp lại

    […] đã có rất nhiều bài viết, la hét và ca ngợi về các quy tắc khoảng trắng của Python, vì vậy chúng ta hãy bỏ qua […]