Differences between revisions 4 and 5
Revision 4 as of 2007-03-16 13:51:56
Size: 3305
Editor: PaulBoddie
Comment: Added the built-in name shadowing pitfall.
Revision 5 as of 2007-07-28 11:52:08
Size: 3520
Editor: PaulBoddie
Comment: Fixed links and added "Python Gotchas".
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
 * Even for advanced users there are features of the Python language that can cause difficulties. See [http://zephyrfalcon.org/labs/python_pitfalls.html 10 Python pitfalls] and [http://www.amk.ca/python/writing/warts.html Python warts].  * Even for advanced users there are features of the Python language that can cause difficulties. See [http://zephyrfalcon.org/labs/python_pitfalls.html 10 Python pitfalls], [http://web.archive.org/web/20031002184114/www.amk.ca/python/writing/warts.html Python Warts] and [http://www.ferg.org/projects/python_gotchas.html Python Gotchas]. These observations have in part been used to suggest refinements in future Python versions, notably Python 3000.

Moved from the educational wikis at http://coedit.net/ to here:

Common Problems Beginners Have

  • The [http://www.alice.org/ Alice] 3D project developed a 3D programming environment for beginners. They used ["Python"] as the programming language originally (now switched to something else). There were two Python-specific issues that were problematic for beginners: the case-sensitivity of the language ("variable1" is not the same as "Variable1"), and integer division (a carryover from C, 3/4 = 0, not 0.75 because 0 is an integer and 0.75 is a float). The latter issue has been fixed, but the former has not and very likely never will. See this [http://www.linuxjournal.com/article.php?sid=5028 interview] in Linux Journal and this [http://www.alice.org/advancedtutorial/ConwayDissertation.PDF dissertation] for more details.

    • DougHolton is said to have patches to implement both of these features in the [http://boo.codehaus.org/ Boo] programming language, a language with similarities to Python, and they will appear in a release of Boo in the near future.

  • This article ([http://www.onlamp.com/pub/a/python/2004/02/05/learn_python.html Common Mistakes of Python Programmers]) lists other common errors seen in Python training classes. Many result from the use of Python's interactive prompt and the IDLE text-based python development environment. Some of these problems might be solved by using IPython instead, but in general I never used (nor currently use) python's interactive prompt to develop applications.

  • Another common error mentioned in the above article is forgetting to add a colon (:) at the end of if statements, class declarations, etc.
  • Subtle errors which may cause some fairly difficult to follow messages happens when built-in type and function names are "shadowed" (ie. redefined). For example, using str as a variable name in a scope (ie. a function or class) will prevent the built-in function of the same name from being usable, producing an error like this: TypeError: 'str' object is not callable

  • Even for advanced users there are features of the Python language that can cause difficulties. See [http://zephyrfalcon.org/labs/python_pitfalls.html 10 Python pitfalls], [http://web.archive.org/web/20031002184114/www.amk.ca/python/writing/warts.html Python Warts] and [http://www.ferg.org/projects/python_gotchas.html Python Gotchas]. These observations have in part been used to suggest refinements in future Python versions, notably Python 3000.

  • Some ["Intermediate Conundrums"] have been noted with regard to the behaviour of some Python features, although these may be outside the scope of beginner problems.

Comments, Potential Solutions

BeginnerErrorsWithPythonProgramming (last edited 2021-01-31 19:34:47 by MatsWichmann)

Unable to edit the page? See the FrontPage for instructions.