Python

De Viquipèdia
Dreceres ràpides: navegació, cerca


Python
El logotip del Python.
Paradigma de programació: Multiparadigma
Aparegut l'any: 1991
Dissenyat per: Guido van Rossum
Desenvolupador: Python Software Foundation
Darrera versió estable: 3.4.0/ Març 17, 2014; fa 25 dies (2014-03-17)
2.7.6/ Novembre 10, 2013; fa 4 mesos (2013-11-10)
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.

La 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[modifica | modifica el codi]

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[modifica | modifica el codi]

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!"); } }

Sentències[modifica | modifica el codi]

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'if existeix 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.
# 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ència except, que especifica quines excepcions s'han de tractar. També existeix la sentència finally, 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[modifica | modifica el codi]

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[modifica | modifica el codi]

CPython[modifica | modifica el codi]

Article principal: 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[modifica | modifica el codi]

Aquest programa imprimeix "Hola món" al dispositiu de sortida predeterminat (normalment la consola),

 print "Hola món"

Articles relacionats[modifica | modifica el codi]

Referències[modifica | modifica el codi]

  1. «Entrevista amb Guido van Rossum», 1998. [Consulta: 29 de juliol 2007].
  2. «What is Python Good For?». Preguntes Més Freqüents del Python. Fundació Python. [Consulta: 5-9-2008].
  3. Història del Python. Advertència: És un fitxer llarg.
  4. Whetting Your Appetite
  5. «Is Python a good language for beginning programmers?». General Python FAQ. Python Foundation, 7 de març de 2005. [Consulta: 21-03-2007].
  6. 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.
  7. «About Python». python.org. Python Software Foundation. [Consulta: 2009-06-27].
  8. «PEP 327 - Decimal Data Type». Python.org. [Consulta: 24-11-2008].
  9. «PEP 7 - Style Guide for C Code». Python.org. [Consulta: 24-11-2008].
  10. CPython byte code
  11. Python 2.5 internals
  12. «O'Reilly - An Interview with Guido van Rossum». Oreilly.com. [Consulta: 2008-11-24].
  13. ProjectPlan, Plans for optimizing Python - unladen-swallow

Lectura addicional[modifica | modifica el codi]

Enllaços externs[modifica | modifica el codi]