Python
| Paradigma de programació: | Multiparadigma |
|---|---|
| Aparegut l'any: | 1991 |
| Desenvolupador: | Python Software Foundation |
| Darrera versió estable: | 3.2.2/ 04/09/2011 2.7.2/ 11/06/2011 |
| Tipus de dades: | Forta, dinàmica |
| Majors implementacions | CPython, Jython, IronPython, Pypy |
| Dialectes: | Stackless Python, RPython |
| Influenciat per: | ABC, ALGOL 68,[1] C, Haskell, Icon, Lisp, Modula-3, Perl, Java |
| Ha influenciat: | Ruby, Boo, Groovy |
| Sistema operatiu: | Multiplataforma |
| Llicència: | Python Software Foundation License |
| Pàgina web: | http://www.python.org |
Python és un llenguatge de programació d'alt nivell de propòsit general.[2] Guido van Rossum el va crear el 1991.[3] Combina una potència remarcable amb una sintaxi clara i entenedora. Molt sovint és comparat amb altres llenguatges com Java, Tcl, Perl o Scheme. Utilitza sagnats com a delimitadors de blocs, fet poc freqüent als llenguatges de programació. Una altra de les característiques d'aquest llenguatge és el tipificat dinàmic i la capacitat per interpretar el codi en temps d'execució, en contradicció d'altres llenguatges com ara C, que ho fan en temps de compilació.
El Python permet diversos paradigmes de programació (és multiparadigma), com poden ser orientat a objectes, imperatiu, i, en menor part, Programació funcional. Com altres llenguatges dinàmics, sovint s'utilitza com a llenguatge script, tot i que també s'utilitza en molts altres contexts.
L'implementació de referència –el CPython–, és programari lliure i té un model de desenvolupament basat en la comunitat, de la mateixa manera que la major part de les altres implementacions. Està controlat per l'organització sense ànim de lucre Python Software Foundation. El seu nom prové de la sèrie Monty Python's Flying Circus de la BBC (El Circ Ambulant de Monty Python).[4]
Taula de continguts |
[modifica] Sintaxi i semàntica
El Python està dissenyat per ser un llenguatge molt visual, i, com a característica principal i distintiva, utilitza sagnat. Això és poc comú en llenguatges de programació, ja que molts (com el C o Java) utilitzen delimitadors com poden ser { i }. Això el fa més llegible.
[modifica] Sagnat
El sagnat és la característica més visible del Python. Al contrari que en altres llenguatges, és obligatori i s'utilitza per delimitar blocs. Un augment en el sagnat, si va precedit per una declaració correcta, significa l'inici d'un nou bloc; la disminució significa el final del bloc actual.[5] S'inclou una comparació amb el Java per exemplificar-ho.
| Hola món en Python | Hola món en Java |
|---|---|
def main(): print u"Hola, món!" |
public class HolaMon { public static void main(String[] args) { System.out.println("Hola, món!"); } } o bé: (nota: aquesta sintaxi és possible. Tanmateix, no s'acostuma a utilitzar a causa de la poca llegibilitat). public class HolaMon { public static void main(String[] args) { System.out.println("Hola, món!"); } } |
[modifica] Sentències
Algunes de les sentències del Python són:
- La sentència
if, que executa un bloc de codi si es compleix una condició. Relacionat amb l'ifes troba l'else, que executa un bloc de codi si no és compleix una condició i l'elif(contracció d'else-if en anglès: sinó si en català), que executa un bloc de codi si no es compleix una condició però si una altra.
# Comparativa entre if, elif i else: x = 3 if x == 0: # Si x és 0 print u'x és 0' elif x == 2: # Si x és 2 print u'x és 2' else: # Si x no és 0 ni 2 print u'x és un altre número'
- La sentència
for, que itera sobre un objecte iterable, com per exemple una llista. Per cada iteració, executa un bloc de codi. - La sentència
while, que executa un bloc de codi sempre que es compleixi una condició. - La sentència
try, que permet el maneig d'excepcions ocorregudes dins d'un bloc de codi. Requereix la sentènciaexcept, que especifica quines excepcions s'han de tractar. També existeix la sentènciafinally, que s'executa sempre acabi al final. - La sentència
class, que crea una classe. S'utilitza en programació orientada a objectes. - La sentència
def, que defineix una subrutina o un mètode. - La sentència
with(a partir del Python 2.6). - La sentència
pass, que no efectua cap operació i es pot utilitzar en lloc d'un bloc de codi. - La sentència
assert, que s'utilitza en depuració per comprovar que es compleixin certes condicions. - La sentència
yield, que retorna un valor per ser utilitzat en un generador.
[modifica] Llibreria estàndard
El Python té una llibreria estàndard gran, que tot sovint se cita com una de les principals fortaleses del Python.[6] Aporta eines ja programades que poden fer una gran varietat de funcions. S'ha dit que el Python té "piles incloses".[7] Els mòduls de la llibreria estàndard es poden augmentar amb mòduls propis escrits en C o bé Python. Aquest fet, de poder combinar Python i C o C++, fa que sigui un "llenguatge de cola" molt potent entre eines i llenguatges.
La llibreria estàndard està particularment ben encarada per escriure aplicacions dirigides a Internet, amb una gran quantitat de formats estàndards i protocols (com per exemple MIME i HTTP). També inclou mòduls per crear interfícies gràfiques d'usuari, connectar a bases de dades relacionals o manipular expressions regulars.[8] La llibreria estàndard, però, no és essencial per utilitzar el Python o incrustar-lo en altres aplicacions. El Blender 2.49, per exemple, n'omet la major part.
[modifica] Implementacions
[modifica] CPython
La implementació principal del Python, coneguda com a CPython, està escrita en C, satisfent l'estàndard C89.[9] El CPython compila els programes Python en un bytecode intermedi,[10] que posteriorment s'executa per la màquina virtual.[11] Es distribueix amb una llibreria estàndard força gran escrita en una barreja de C i Python. Té versions per moltes plataformes, incloent Microsoft Windows i la major part dels sistemes Unix-like moderns. Des de la seva concepció va ésser dissenyat per ser multiplataforma; el seu ús i desenvolupament en plataformes esotèriques com Aomeba, juntament amb altres més convencionals com Unix i Mac OS, ha ajudat en aquest aspecte.[12] El 2009 Google va començar un projecte anomenat Unladen Swallow amb l'objectiu d'incrementar la velocitat de l'interpretador Python unes cinc vegades.[13]
[modifica] Programa d'exemple
Aquest programa imprimeix "Hola món" al dispositiu de sortida predeterminat (normalment la consola),
print "Hola món"
[modifica] Articles relacionats
[modifica] Referències
- ↑ «Entrevista amb Guido van Rossum», 1998. [Consulta: 29 de juliol 2007].
- ↑ «What is Python Good For?». Preguntes Més Freqüents del Python. Fundació Python. [Consulta: 5-9-2008].
- ↑ Història del Python. Advertència: És un fitxer llarg.
- ↑ Whetting Your Appetite
- ↑ «Is Python a good language for beginning programmers?». General Python FAQ. Python Foundation, 7 de març de 2005. [Consulta: 21-03-2007].
- ↑ Przemyslaw Piotrowski, Build a Rapid Web Development Environment for Python Server Pages and Oracle, Oracle Technology Network, juliol de 2006. Accedit el 21 d'octubre de 2008.
- ↑ «About Python». python.org. Python Software Foundation. [Consulta: 2009-06-27].
- ↑ «PEP 327 - Decimal Data Type». Python.org. [Consulta: 24-11-2008].
- ↑ «PEP 7 - Style Guide for C Code». Python.org. [Consulta: 24-11-2008].
- ↑ CPython byte code
- ↑ Python 2.5 internals
- ↑ «O'Reilly - An Interview with Guido van Rossum». Oreilly.com. [Consulta: 2008-11-24].
- ↑ ProjectPlan, Plans for optimizing Python - unladen-swallow
[modifica] Lectura addicional
- (anglès) Downey, Allen B. Think Python: How to Think Like a Computer Scientist.
- (anglès) Hamilton, Naomi. «The A-Z of Programming Languages: Python (entrevista amb Guido Van Rossum sobre el Python)». Computerworld (5 d'agost de 2008) [Consulta: 31-3-2010].
- (anglès) Lutz, Mark. Learning Python. 4th. O'Reilly Media, 2009. ISBN 978-0596158064.
- (anglès) Pilgrim, Mark. Dive Into Python. Apress, 2004. ISBN 978-1590593561.
- (anglès) Summerfield, Mark. Programming in Python 3. 2nd. Addison-Wesley Professional, 2009. ISBN 978-0321680563.
[modifica] Enllaços externs
- La web de Python (anglès)
- Python en altres plataformes (anglès)
- Scripting Layer for Android / Python per a l'Android (anglès) Introducció al Python a l'Android (anglès)
|
|||||