Talk:Python (programming language)/Archive 1/Article archive 1: Difference between revisions
imported>Pat Palmer (archiving Bibliography tab before original article) |
Pat Palmer (talk | contribs) mNo edit summary |
||
(4 intermediate revisions by one other user not shown) | |||
Line 145: | Line 145: | ||
== From former Related articles tab == | == From former Related articles tab == | ||
===Parent topics=== | |||
{{r|Open source software}} | |||
{{r|Programming language}} | |||
===Subtopics=== | |||
{{r|CPython}} | |||
{{r|Django}} | |||
{{r|IronPython}} | |||
{{r|Jython}} | |||
{{r|PyPy}} | |||
{{r|TurboGears}} | |||
{{r|Zope}} | |||
===Other related topics=== | |||
{{r|Perl}} | |||
{{r|Ruby (programming language)|Ruby}} | |||
{{r|Lexer}} | |||
{{r|Parser}} | |||
{{r|Indentation}} | |||
== From former External Links tab == | == From former External Links tab == | ||
* [http://www.python.org/ Python Programming Language] Homepage | |||
* [http://docs.python.org/tut/tut.html Guido van Rossum's Introduction to Python] | |||
* Richard Gruet's [http://rgruet.free.fr/PQR25/PQR2.5.html Python Reference Manual.] Contains also a compilation of useful Python-related resources (see 'Front matter'). | |||
* [http://www.diveintopython.org/toc/index.html Dive into Python]- an introduction to the python programming language. | |||
* [http://wwww.python-forum.org/py/index.php PythonForum.org] | |||
* [http://c2.com/cgi/wiki?PythonVsRuby Python Vs Ruby] on C2 Wiki |
Latest revision as of 15:38, 19 July 2024
Python is a dynamic object-oriented, general purpose interpreted programming language which runs on many different computer platforms and mobile devices. Python is open source software. Python aims to be a language that is efficient, coherent, readable, and fun to use. Because Python is an interpreted language, Python programs run immediately without the need for lengthy compile and link steps.
History
Python was first published by the Dutch computer scientist (and applied mathematician) Guido van Rossum in pre-release (early-adopter) form in 1991, and to this day he remains the project leader and final arbiter of Python Enhancement Proposals (PEPs). The language takes its name from the English comedy group, Monty Python. [1]
Python 2.7.1 is the current production release, and is very stable.
Python's major (standard) releases were:
- Python 2.5.1 (April 2007)
- Python 2.4.4 (October 2006)
- Python 2.3.6 (November 2006)
- Python 2.2.3 (May 2003)
- Python 2.1.3 (April 2002)
- Python 2.0.1 (June 2001)
- Python 1.6.1 (September 2000)
- Python 1.5.2 (April 1999)
- Python 1.4 (October 1996)
- Python 1.3 (October 1995)
- Python 1.2 (April 1995)
- Python 1.1 (1995)
- Python 1.0 (1994)
Examples
Hello World
The code for the "hello world" program can hardly be more simple:
print 'Hello World'
This can be put in a file "hello.py", for example, and executed with
python hello.py
from your operating system's command line. Alternatively, the code can be typed directly into an interactive Python environment (the Python command line interpreter or IDLE, both of which are included in the standard Python distribution).
Calculator
The Python interpreter can be invoked from the command line and used as a scientific calculator. At the prompt (denoted here by >>>
), type
>>> 2+3*(1+1)
the interpreter will print 8. Division of integers returns an integer result, so
>>> 7/2
is 3 (floor from the exact result). If a real result is needed, then at least one operand should be a real number, as shown below
>>> 7.0/2
More interesting functions can be found in the math module. It must be imported before it can be used.
>>> from math import *
>>> print sin(pi/2)
High quality graphs may be obtained with the matplotlib library[2]
Files
A useful Python construction is related to working with files. Line-by-line Perl-like file processing can be realized with a standard for
loop as in the following simple word count script. Below, the comments start with the hash '#' sign.
(char_count,word_count,line_count)=0,0,0 # multiple assignment is available file = open ('myfile.txt') # standard opening of the file for line in file: # this is "idiomatic" use of of the "for" loop wordlist = line.split() # splitting line into the list of words word_count += len(wordlist) # counting words line_count += 1 # counting lines char_count += len(line) - 1 # counting characters print line_count, word_count, char_count # we're done
The indentation indicates what code is executed within the loop. This is part of Python's syntax. When the end of file is reached, the loop terminates and the results are printed by the last line of the code. Note also that the variable line
contains the terminating newline character, so that 1 is subtracted from its length for the character counting. Another interesting observation can be made: the method (i.e. function) of splitting a string is 'provided' by this very string. Indeed, Python is an objective language; the string variables are objects and related methods are its attributes.
Internet access
The following script counts the images on the Citizendium Main Page.
1 import urllib2 2 cnt=0 3 for line in urllib2.urlopen('http://en.citizendium.org/wiki/Main_Page'): 4 cnt += line.count('<img src') 5 print cnt
(note that the line numbers were added for clarity - they are not needed in an actual Python script)
- In line 1, we import a module from the standard library. Python's standard library is said to be rich and often regarded as Python's strong point. In fact, Python official pages declare a "batteries included" philosophy.
- In line 2, the variable named 'cnt' is set to zero initially (a best practice in programming)
- In line 3, the URL is fetched using the urllib2 function. This merits some discussion. In Python, the source HTML files of web pages can be treated much like the local files, e.g. processed line-by-line with a for loop. In the above example the variable line is a string containing a piece of HTML code of Citizendium's Main Page. Embedded images are inserted in this code with a text that begins with '<img src'. So it's enough to count instances of this last string.
- In line 4 (inside the for loop), the appropriate method count() is used to increment the cnt variable by one every time the HTML tag beginning with "<img src" is encountered.
- In line 5, after the for loop exits (presumably because all instances of the 'img' tag have been counted), the variable 'cnt' is printed.
A ready-to-run copy of this script is available here.
Syntax
Remarkable global features of the Python syntax include high readability of the code, which is aided by the use of indentation to separate blocks of code and a general "one statement per line" principle.[3]
Implementations
Python's official distribution is known as CPython. It's written in C and functions as a virtual machine for interpreting bytecode-compiled Python programs. Jython is an implementation for the Java Virtual Machine, which can run either standalone (like CPython) or as an embedded scripting engine. IronPython is an implementation for the Common Language Runtime (.NET and Mono). PyPy is an implementation written in Python that targets several backends, including C, LLVM, JavaScript, JVM and CLR.
Run-time efficiency
Generally, a high-level interpreted scripting language is far not as fast as a compiled program. However, a specializing just-in-time compiler "Psyco"[4] runs existing Python programs much faster, with no change in the source text. In addition, the Python library contains a number of modules performing useful operations quite effectively. For example, "anydbm"[5] can effectively maintain a large indexed file.
Python IDEs
Python can be supported as the programming language in an integrated development environment (IDE).
Popular Python IDEs include the following:
- IDLE, the default Integrated Development Environment for Python
- Eclipse pydev, the pydev plug-in to the Eclipse IDE for Python
- ActiveState Komodo, the multiple scripting languages IDE
- Wingware Wing, the multiplatform Python-language-specific IDE
Notes and references
- ↑ Why is it called Python?. General Python FAQ. Python Software Foundation. (Mar 02, 2011).
- ↑ This is installed separately, see its introduction and a couple of examples.
- ↑ Backslash "\" at the end of line allows to break e.g. a long assignment over multiple lines. There is also a formal possibility to put more than one statement in a line by separating them with a semicolon. Still, the general principle shapes the code.
- ↑ Psyco: High-level languages need not be slower than low-level ones.
- ↑ anydbm -- Generic access to DBM-style databases
From former Bibliography tab
- Beazley, David M. Python Essential Reference, 3rd Ed. Sams, 2006 ISBN 0672328623
- Chun, Wesley J. Core Python Programming, 2nd Ed. Prentice Hall, 2006 ISBN 0132269937
- Goerzen, John. Foundations Of Python Network Programming Apress, 2006 ISBN 1590593715
- Hetland, Magnus Lie. Beginning Python: From Novice To Professional Apress, 2005 ISBN 159059519X
- Lutz, Mark. Programming Python, 3rd Ed. O'Reilly, 2006 ISBN 0596009259
- Lutz, Mark and Ascher, David. Learning Python, 2nd Ed. O'Reilly, 2003 ISBN 0596002815
- Martelli, Alex. Python In A Nutshell, 2nd Ed. O'Reilly, 2006 ISBN 0596001886
- Martelli, Alex. Ravenscroft, Anna. Ascher, David. Python Cookbook, 2nd Ed. O'Reilly, 2005 ISBN 0596007973
- Zelle, John M. Python Programming: An Introduction To Computer Science Franklin Beedle, 2003 ISBN 1887902996
From former Related articles tab
Parent topics
- Open source software [r]: Software where the source code is freely modifiable and redistributable. [e]
- Programming language [r]: A formal language specification, and programs for translating the formal language to machine code. [e]
Subtopics
- CPython [r]: Add brief definition or description
- Django [r]: Open source web application framework written in Python. [e]
- IronPython [r]: Open source implementation of Python on the .NET Framework using the Dynamic Language Runtime. Allows Python programmers to call .NET system classes and interoperate with code written in C# and other .NET languages. [e]
- Jython [r]: Add brief definition or description
- PyPy [r]: Add brief definition or description
- TurboGears [r]: Add brief definition or description
- Zope [r]: Add brief definition or description
- Perl [r]: Dynamic, interpreted programming language with good string processing and powerful regular expression engine. [e]
- Ruby [r]: Dynamically-typed, object-oriented programming language created by Yukihiro Matsumoto in 1995. [e]
- Lexer [r]: Add brief definition or description
- Parser [r]: Add brief definition or description
- Indentation [r]: Add brief definition or description
From former External Links tab
- Python Programming Language Homepage
- Guido van Rossum's Introduction to Python
- Richard Gruet's Python Reference Manual. Contains also a compilation of useful Python-related resources (see 'Front matter').
- Dive into Python- an introduction to the python programming language.
- PythonForum.org
- Python Vs Ruby on C2 Wiki