Python
| Paradigma de programació: | Multiparadigma |
|---|---|
| Aparegut l'any: | 1991 |
| Dissenyat per: | Guido van Rossum |
| Desenvolupador: | Python Software Foundation |
| Darrera versió estable: | 3.2.2/ Plantilla:Release date 2.7.2/ Plantilla:Release date |
| 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]
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.
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 |
|---|---|
| <source lang="python">
def main(): print u"Hola, món!" </source> |
<source lang="java">
public class HolaMon { public static void main(String[] args) {
System.out.println("Hola, món!");
}
}
</source> o bé: (nota: aquesta sintaxi és possible. Tanmateix, no s'acostuma a utilitzar a causa de la poca llegibilitat). <source lang="java" style="width:700px;overflow:auto;"> public class HolaMon { public static void main(String[] args) { System.out.println("Hola, món!"); } } </source> |
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'ifexisteix l'else, que executa un bloc de codi si no es compleix una condició i l'elif(contracció d'else-if en anglès: si no-si en català), que executa un bloc de codi si no es compleix una condició però si una altra.
<source lang="python">
- 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'
</source>
- 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.
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.
Implementacions
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]
Programa d'exemple
Aquest programa imprimeix "Hola món" al dispositiu de sortida predeterminat (normalment la consola), <source lang="python">
print "Hola món"
</source>
Articles relacionats
Referències
- ↑ «Entrevista amb Guido van Rossum», 1998. [Consulta: Plantilla:Data consulta].
- ↑ «What is Python Good For?». Preguntes Més Freqüents del Python. Fundació Python. [Consulta: Plantilla:Data consulta].
- ↑ 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, {{#invoke:data|data_format|7 de març de 2005|d-m-Y}}. [Consulta: Plantilla:Data consulta].
- ↑ 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: Plantilla:Data consulta].
- ↑ «PEP 327 - Decimal Data Type». Python.org. [Consulta: Plantilla:Data consulta].
- ↑ «PEP 7 - Style Guide for C Code». Python.org. [Consulta: Plantilla:Data consulta].
- ↑ CPython byte code
- ↑ Python 2.5 internals
- ↑ «O'Reilly - An Interview with Guido van Rossum». Oreilly.com. [Consulta: Plantilla:Data consulta].
- ↑ ProjectPlan, Plans for optimizing Python - unladen-swallow
Lectura addicional
- (anglès) Downey, Allen B. Think Python: How to Think Like a Computer Scientist.
- (anglès) Plantilla:Citar publicació
- (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.
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)
| |||||

