Dive into Python wrote:Python functions have no explicit begin or end, and no curly braces to mark where the function code starts and stops. The only delimiter is a colon (:) and the indentation of the code itself.

LeeNukes wrote:While on the theme of Python, why are indents such an issue? I used to think they were just to make it easy for people to read, but it stops a program working if they are slightly wrong.

Because indentation is part of the syntax, it does the job of braces in most other languages. You'd expect a syntax error from a missing brace in them, you get the same from a missing tab in Python, for exactly the same reasons.

"Insanity: doing the same thing over and over again and expecting different results." (Albert Einstein)

LeeNukes wrote:While on the theme of Python, why are indents such an issue? I used to think they were just to make it easy for people to read, but it stops a program working if they are slightly wrong.

Because indentation is part of the syntax, it does the job of braces in most other languages. You'd expect a syntax error from a missing brace in them, you get the same from a missing tab in Python, for exactly the same reasons.

at least braces are visible though. Trying to work out which indent needs to line up with which isn't straight forward.

LeeNukes wrote:at least braces are visible though. Trying to work out which indent needs to line up with which isn't straight forward.

How can you say that?

If you don't know what must be lined up, then you don't know what you are programming.
If you are writing a python (or any other) program, it's you who know it's logical structure, so for example you should know all the code that must be executed inside an if statement for your program to work. If that block of code must be inside braces, or equally indented, it's exactly the same.

LeeNukes wrote:at least braces are visible though. Trying to work out which indent needs to line up with which isn't straight forward.

How can you say that?

If you don't know what must be lined up, then you don't know what you are programming.If you are writing a python (or any other) program, it's you who know it's logical structure, so for example you should know all the code that must be executed inside an if statement for your program to work. If that block of code must be inside braces, or equally indented, it's exactly the same.

Best regards

This was someone elses code I was trying to get to work. I sorted it in the end, but I had to mess with the indents,

LeeNukes wrote:This was someone elses code I was trying to get to work. I sorted it in the end, but I had to mess with the indents,

Ah, that's the major point on python's indenting: posting code online, copy-pasting it, leaving to situations where white-spacing and formatting is lost. But that's no reason to change one of the (IMHO) best features of python.