This is a nonstarter — meaningful indentation is a pretty baked-in ( and
liked ) part of the language.

And yes, it’s been brought up many times before on this list.

And it already exists:

for item in a_sequence:
    do_some_stuff
#end for

:-)

-CHB

PS: I’m pretty sure some has written an import hook that does something
like this — but mostly as a joke.



On Mon, Dec 2, 2019 at 3:12 PM Jan Bakuwel <jan.baku...@gmail.com> wrote:

> Hi folks,
>
> I have a few decades of experience with software engineering using
> assembler, C, FORTRAN, Pascal, Ada and a fair number of other languages.
> I've been using Python as well for a number of years now.
>
> Both Pascal and Ada have "end" statements, which make the code (at least
> for me :-) ) a lot more readable and maintainable, especially if the
> code within if/while/for statements gets longer and nested deeper. These
> statements exist in these languages for a good reason.
>
> I had a look in the archives to see if someone else already proposed
> this but couldn't find anything, so here goes.
>
> Please let me know whether you think this idea is worth to convert to a
> PEP.
>
> thanks,
> Jan
>
>
> Idea:
>
> To include optional "end if", "end while", "end for" and "end <function
> name>", "end <class name>" in the language. The Python interpreter would
> test that any "end" matches with the correct corresponding statements
> and have the correct indentation, in other words throw an error if you
> would write "end if" where an "end while" should be. This will be a
> great help preventing errors with procedural logic, that I now have to
> painstakingly debug at runtime, especially after moving bits of code
> around.
>
> Python editors would ideally highlight "if" and "end if" just like they
> now highlight "if". By default different colors could be picked for "if"
> and "end if", "while" and "end while" etc.
>
> All this is completely optional of course, so it won't break any
> existing code.
>
> Advantages:
> - better readability and maintainability
> - help prevent procedural logic mistakes
> - editors could use this for improved highlighting of code
>
> Disadvantages:
> - none :-) it's optional, just like the typing that was introduced in
> Python 3
>
>
> Code example:
>
> def func (i: int, j: int, k: int) -> None:
>      if (i == 3):
>          while (i < 15):
>              i += 1
>              if (k == 8):
>                  lots of other code (think a page or more)
>                  lots of other code
>          here is more code <- to which if or while does this belong?
>          and a bit more
>
> further code
>
>
> The code could be rewritten like this:
>
> def func (i: int, j: int, k: int) -> None:
>      if (i == 3):
>          while (i < 15):
>              i += 1
>              if (k == 8):
>                  lots of other code (think a page or more)
>                  lots of other code
>              end if
>          end while (writing "end if" would throw an error at parse time)
>          here is more code
>          and a bit more
>      end if
> end func
>
> further code
>
>
>
> Looking forward to your feedback!
>
> regards,
> Jan
> NEW ZEALAND
>
>
>
> _______________________________________________
> Python-ideas mailing list -- python-ideas@python.org
> To unsubscribe send an email to python-ideas-le...@python.org
> https://mail.python.org/mailman3/lists/python-ideas.python.org/
> Message archived at
> https://mail.python.org/archives/list/python-ideas@python.org/message/UQ4D63RYZSC2CKSUZFWDDPO3IIFTZFD5/
> Code of Conduct: http://python.org/psf/codeofconduct/
>
-- 
Christopher Barker, PhD

Python Language Consulting
  - Teaching
  - Scientific Software Development
  - Desktop GUI and Web Development
  - wxPython, numpy, scipy, Cython
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/ZHS2MCLYGKUSXQOD3R4SXVFPVW7SK5FG/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to