Page 1 of 1

Python beginner

PostPosted: Sat May 15, 2010 11:47 pm
by cbuffer
Can someone point me to an explanation of the significance of the L in line 2 please?

>>> pow(2,31)
2147483648L
>>> print pow(2,31)
2147483648

TIA

Ken

PostPosted: Sun May 16, 2010 2:32 am
by graemef
The L indicates that the data type is a Long integer. The second version which prints the value converts the numeric to a character string and the data type is not shown.

PostPosted: Sun May 16, 2010 8:15 am
by LeeNukes
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.

PostPosted: Sun May 16, 2010 10:15 am
by ollie
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.


Ref: http://book.opensourceproject.org.cn/lamp/python/diveintopython/index.html

Indenting is a structural requirement of Python syntax.

PostPosted: Sun May 16, 2010 11:39 am
by nelz
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.

PostPosted: Sun May 16, 2010 4:18 pm
by cbuffer
graemef wrote:The L indicates that the data type is a Long integer. The second version which prints the value converts the numeric to a character string and the data type is not shown.


Thank you graemef, I really should have worked that out for myself.

Ken

PostPosted: Sun May 16, 2010 5:39 pm
by LeeNukes
nelz wrote:
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.

PostPosted: Sun May 16, 2010 5:50 pm
by JPGargoyle
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

PostPosted: Sun May 16, 2010 6:04 pm
by LeeNukes
JPGargoyle wrote:
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,

PostPosted: Sun May 16, 2010 6:14 pm
by JPGargoyle
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.

Best regards