Category:Python: Difference between revisions

Content added Content deleted
(bnf param)
(Add notes on deviations from idiomatic Python to support 2.X and 3.X.)
Line 12: Line 12:
It is easy to create clean bug-free programs in Python due to the motto: "Errors should never pass silently." Python is an [[wp:Interpreter (computing)|interpreter]]. Python source files (.py files) are typically compiled to an intermediate [[bytecode]] language (.pyc files) and executed by a Python Virtual Machine.
It is easy to create clean bug-free programs in Python due to the motto: "Errors should never pass silently." Python is an [[wp:Interpreter (computing)|interpreter]]. Python source files (.py files) are typically compiled to an intermediate [[bytecode]] language (.pyc files) and executed by a Python Virtual Machine.


===Notes===
Note: because Python uses whitespace for structure, do not format long code examples with leading whitespace, instead use <code><nowiki><pre></pre></nowiki></code> tags, or, preferably, <code><nowiki><lang python></lang></nowiki></code> tags. This will make it easier to copy code into and out of the wiki. Example:
Because Python uses whitespace for structure, do not format long code examples with leading whitespace, instead use <code><nowiki><pre></pre></nowiki></code> tags, or, preferably, <code><nowiki><lang python></lang></nowiki></code> tags. This will make it easier to copy code into and out of the wiki. Example:
<lang python>print 'this line must not have leading indentation!'
:<lang python>print 'this line must not have leading indentation!'
if True:
if True:
print 'example: ', foo(3), len(bar)</lang>
print 'example: ', foo(3), len(bar)</lang>

Some Python examples may deviate from idiomatic Python because they may be written to work in Python 3.X as well as Python 2.X environments. This includes doing things like:
* Using brackets in print statements/functions of one expression.
* Using zip and not izip; keys(), values(), items() and not their iter- forms.
* Checking for raw_input and setting raw_input to input if not found.
* Conditionally importing reduce if it is not found.
This style is not a requirement for Python code on RC, but it may be in use and should not necessarily be 'corrected' if found in examples.


==See Also==
==See Also==