Вы находитесь на странице: 1из 15

20/2/2015

PythonWikipedia,laenciclopedialibre

Python
DeWikipedia,laenciclopedialibre
Python es un lenguaje de programacin interpretado
cuya filosofa hace hincapi en una sintaxis que
favorezcauncdigolegible.

Python

Se trata de un lenguaje de programacin


multiparadigma,yaquesoportaorientacinaobjetos,
programacin imperativa y, en menor medida,
programacinfuncional. Es un lenguaje interpretado,
usatipadodinmicoyesmultiplataforma.
Es administrado por la Python Software Foundation.
Posee una licencia de cdigo abierto, denominada
Python Software Foundation License,1 que es
compatibleconlaLicenciapblicageneraldeGNUa
partir de la versin 2.1.1, e incompatible en ciertas
versionesanteriores.

ndice
1Historia
2Caractersticasyparadigmas
3Filosofa
4Modointeractivo
5Elementosdellenguaje
5.1Comentarios
5.2Variables
5.3Tiposdedatos
5.4ListasyTuplas
5.5Diccionarios
5.6Conjuntos
5.7Listasporcomprensin
5.8Funciones
5.9Clases
5.10Condicionales
5.11Buclefor
5.12Buclewhile
5.13Mdulos
6Sistemadeobjetos
7Bibliotecaestndar
8Implementaciones
9DiferenciasentrePython2.xyPython3.x
10Vasetambin
11Referencias
12Bibliografa
13Enlacesexternos
http://es.wikipedia.org/wiki/Python

Desarrollador(es)
PythonSoftwareFoundation
http://www.python.org/
Informacingeneral
Extensiones
comunes

.py,.pyc,.pyd,.pyo,.pyw

Paradigma

multiparadigma:orientadoa
objetos,imperativo,funcional,
reflexivo

Aparecien

1991

Diseadopor

GuidovanRossum

ltimaversin
estable

3.4.2/2.7.8(10deagostode2014/
1dejuliode2014)

ltimaversinen 3.5.0alpha0(3dejuliode2014)
pruebas
Tipodedato

dbilmentetipado,dinmico

Implementaciones CPython,IronPython,Jython,
PythonforS60,PyPy,PyGame,
ActivePython,UnladenSwallow
Dialectos

StacklessPython,RPython

Influidopor

ABC,ALGOL68,C,Haskell,
Icon,Lisp,Modula3,Perl,
Smalltalk,Java

Hainfluidoa

Boo,Cobra,D,Falcon,Genie,
Groovy,Ruby,JavaScript,
Cython,Go
1/15

20/2/2015

PythonWikipedia,laenciclopedialibre

13Enlacesexternos

Sistemaoperativo Multiplataforma
Licencia

Historia

PythonSoftwareFoundation
License

[editardatosenWikidata]

Pythonfuecreadoafinalesdelosochenta2porGuido
vanRossum en el Centro para las Matemticas y la Informtica (CWI, Centrum
Wiskunde&Informatica),enlosPasesBajos,comoun sucesordel lenguaje de
programacin ABC, capaz de manejar excepciones e interactuar con el sistema
operativoAmoeba.3
El nombre del lenguaje proviene de la aficin de su creador por los humoristas
britnicosMontyPython.4
VanRossumeselprincipalautordePython,ysucontinuorolcentralendecidirla
direccindePythonesreconocido,refirindosealcomoBenevolenteDictador
Vitalicio(eningls:BenevolentDictatorforLife,BDFL).

GuidovanRossum,
creadordePython,
enlaconvencin
OSCON2006

En 1991, van Rossum public el cdigo de la versin 0.9.0 en alt.sources


(news:alt.sources).5 En esta etapa del desarrollo ya estaban presentes clases con
herencia, manejo de excepciones, funciones y los tipos modulares, como: str,
list,dict,entreotros.Ademsenestelanzamientoinicialaparecaunsistemade
mdulosadoptadodeModula3vanRossumdescribeelmdulocomounadelasmayoresunidadesde
programacindePython.2ElmodelodeexcepcionesenPythonesparecidoaldeModula3,conlaadicin
de una clusula else.3 En el ao 1994 se form comp.lang.python (news:comp.lang.python), el foro de
discusinprincipaldePython,marcandounhitoenelcrecimientodelgrupodeusuariosdeestelenguaje.
Python alcanz la versin 1.0 en enero de 1994. Una caracterstica de este lanzamiento fueron las
herramientasdelaprogramacinfuncional: lambda, reduce, filtery map. Van Rossum explicquehace
12aos,Pythonadquirilambda,reduce(),filter()ymap(),cortesadeunpiratainformticodeLispquelas
extraabayqueenviparches.6 El donante fue Amrit Prem no se hace ninguna mencin especfica de
cualquierherenciadeLispenlasnotasdelanzamiento.
LaltimaversinliberadaprovenientedeCWIfuePython1.2.En1995,vanRossumcontinusutrabajo
en Python en la Corporation for National Research Initiatives (CNRI) en Reston, Virginia, donde lanz
variasversionesdelsoftware.
Durante su estancia en CNRI, van Rossum lanz la iniciativa Computer Programming for Everybody
(CP4E), con el fin de hacer la programacin ms accesible a ms gente, con un nivel de 'alfabetizacin'
bsicoenlenguajesdeprogramacin,similaralaalfabetizacinbsicaeninglsyhabilidadesmatemticas
necesariaspormuchostrabajadores.Pythontuvounpapelcrucialenesteproceso:debidoasuorientacin
haciaunasintaxislimpia,yaeraidneo,ylasmetasdeCP4Epresentabansimilitudesconsupredecesor,
ABC. El proyecto fue patrocinado por DARPA.7 En el ao 2007, el proyecto CP4E est inactivo, y
mientrasPythonintentaserfcildeaprenderynomuyarcanoensusintaxisysemntica,alcanzandoalos
noprogramadores,noesunapreocupacinactiva.8

http://es.wikipedia.org/wiki/Python

2/15

20/2/2015

PythonWikipedia,laenciclopedialibre

Enelao2000,elequipoprincipaldedesarrolladoresdePythonsecambiaBeOpen.comparaformarel
equipoBeOpenPythonLabs.CNRIpidiquelaversin1.6fuerapblica,continuandosudesarrollohasta
queelequipodedesarrolloabandonCNRIsuprogramadelanzamientoyeldelaversin2.0tenanuna
significativacantidaddetraslapo.9Python2.0fueelprimerynicolanzamientodeBeOpen.com.Despus
que Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores de
PythonLabsseunieronenDigitalCreations.
Python 2.0 tom una caracterstica mayor del lenguaje de programacin funcional Haskell: listas por
comprensin. La sintaxis de Python para esta construccin es muy similar a la de Haskell, salvo por la
preferencia de los caracteres de puntuacin en Haskell, y la preferencia de Python por palabras claves
alfabticas. Python 2.0 introdujo adems un sistema de recoleccin de basura capaz de recolectar
referenciascclicas.9
Posterioraestedoblelanzamiento,ydespusquevanRossumdejCNRIparatrabajarcondesarrolladores
desoftwarecomercial,quedclaroquelaopcindeusarPythonconsoftwaredisponiblebajoGNU GPL
era muy deseable. La licencia usada entonces, la PythonLicense, inclua una clusula estipulando que la
licencia estaba gobernada por el estado de Virginia, por lo que, bajo la ptica de los abogados de Free
SoftwareFoundation(FSF),sehacaincompatibleconGPL.CNRIyFSFserelacionaronparacambiarla
licencia de software libre de Python para hacerla compatible con GPL. En el ao 2001, van Rossum fue
premiadoconFSFAwardfortheAdvancementofFreeSoftware.
Python1.6.1esesencialmenteelmismoquePython1.6,conunospocosarreglosdebugs,yconunanueva
licenciacompatibleconGPL.1
Python2.1fueuntrabajoderivadodePython
1.6.1, as como tambin de Python 2.0. Su
licencia fue renombrada a: Python Software
Foundation License. Todo el cdigo,
documentacin y especificaciones aadidas,
desde la fecha del lanzamiento de la versin
alfadePython2.1,tienecomodueoaPython
SoftwareFoundation (PSF), una organizacin
sin nimo de lucro fundada en el ao 2001,
tomando como modelo la Apache Software
Foundation.1Incluidoenestelanzamientofue
unaimplementacindelscopingmsparecida
alasreglasdestaticscoping(delcualScheme
eseloriginador).10
CdigoPythonconcoloreadodesintaxis.
Una innovacin mayor en Python 2.2 fue la
unificacin de los tipos en Python (tipos
escritos en C), y clases (tipos escritos en
Python) dentro de una jerarqua. Esa unificacin logr un modelo de objetos de Python puro y
consistente.11TambinfueronagregadoslosgeneradoresquefueroninspiradosporellenguajeIcon.12

Las adiciones a la biblioteca estndar de Python y las decisiones sintcticas fueron influenciadas
fuertementeporJavaenalgunoscasos:elpackage logging,13introducidoenlaversin2.3,estbasadoen
log4jelparserSAX,introducidoen2.0elpackagethreading,14cuyaclaseThreadexponeunsubconjunto
http://es.wikipedia.org/wiki/Python

3/15

20/2/2015

PythonWikipedia,laenciclopedialibre

delainterfazdelaclasehomnimaenJava.

Caractersticasyparadigmas
Python es un lenguaje de programacin multiparadigma. Esto significa que ms que forzar a los
programadores a adoptar un estilo particular de programacin, permite varios estilos: programacin
orientadaaobjetos,programacinimperativayprogramacinfuncional.Otrosparadigmasestnsoportados
medianteelusodeextensiones.
Pythonusatipadodinmicoyconteodereferenciasparalaadministracindememoria.
UnacaractersticaimportantedePythoneslaresolucindinmicadenombresesdecir,loqueenlazaun
mtodoyunnombredevariabledurantelaejecucindelprograma(tambinllamadoenlacedinmicode
mtodos).
Otro objetivo del diseo del lenguaje es la facilidad de extensin. Se pueden escribir nuevos mdulos
fcilmenteenCoC++.Pythonpuedeincluirseenaplicacionesquenecesitanunainterfazprogramable.
Aunque la programacin en Python podra considerarse en algunas situaciones hostil a la programacin
funcionaltradicionaldelLisp,existenbastantesanalogasentrePythonyloslenguajesminimalistasdela
familiaLispcomopuedeserScheme.

Filosofa
LosusuariosdePythonserefierenamenudoalaFilosofaPythonqueesbastanteanlogaalafilosofade
Unix. El cdigo que sigue los principios de Python de legibilidad y transparencia se dice que es
"pythonico".Contrariamente,elcdigoopacouofuscadoesbautizadocomo"nopythonico"("unpythonic"
eningls).EstosprincipiosfueronfamosamentedescritosporeldesarrolladordePythonTimPetersenEl
ZendePython
Belloesmejorquefeo.
Explcitoesmejorqueimplcito.
Simpleesmejorquecomplejo.
Complejoesmejorquecomplicado.
Planoesmejorqueanidado.
Dispersoesmejorquedenso.
Lalegibilidadcuenta.
Loscasosespecialesnosontanespecialescomoparaquebrantarlasreglas.
Aunqueloprcticoganaalapureza.
Loserroresnuncadeberandejarsepasarsilenciosamente.
Amenosquehayansidosilenciadosexplcitamente.
Frentealaambigedad,rechazalatentacindeadivinar.
Deberahaberunaypreferiblementeslounamaneraobviadehacerlo.
Aunqueesamanerapuedenoserobviaalprincipioamenosqueustedseaholands.15
Ahoraesmejorquenunca.
Aunquenuncaesamenudomejorqueyamismo.
Silaimplementacinesdifcildeexplicar,esunamalaidea.
Silaimplementacinesfcildeexplicar,puedequeseaunabuenaidea.
http://es.wikipedia.org/wiki/Python

4/15

20/2/2015

PythonWikipedia,laenciclopedialibre

Losespaciosdenombres(namespaces)sonunagranideaHagamosmsdeesascosas!
TimPeters,ElZendePython

Desdelaversin2.1.2,Pythonincluyeestospuntos(ensuversinoriginaleningls)comounhuevo de
pascuaquesemuestraalejecutarimportthis.16

Modointeractivo
El intrprete de Python estndar incluye un modo
interactivo en el cual se escriben las instrucciones en
unaespeciedeintrpretedecomandos:lasexpresiones
pueden ser introducidas una a una, pudiendo verse el
resultadodesuevaluacininmediatamente,loquedala
posibilidad de probar porciones de cdigo en el modo
interactivo antes de integrarlo como parte de un
programa. Esto resulta til tanto para las personas que
se estn familiarizando con el lenguaje como para los
programadoresmsavanzados.

LaLAMPcomprendePython(aquconSquid)

Existen otros programas, tales como IDLE (http://docs.python.org/library/idle.html), bpython


(http://bpythoninterpreter.org/)oIPython,17queaadenfuncionalidadesextraalmodointeractivo,comoel
autocompletadodecdigoyelcoloreadodelasintaxisdellenguaje.
Ejemplodelmodointeractivo:

>>>1+1
2
>>>a=range(10)
>>>printa
[0,1,2,3,4,5,6,7,8,9]

Elementosdellenguaje
Python fue diseado para ser ledo con facilidad. Una de sus caractersticas es el uso de palabras donde
otroslenguajesutilizaransmbolos.Porejemplo,losoperadoreslgicos !, ||y &&enPythonseescriben
not,oryand,respectivamente.
Elcontenido de los bloques de cdigo (bucles, funciones, clases, etc.) es delimitado medianteespacioso
tabuladores,conocidoscomoindentacin,antesdecadalneaderdenespertenecientesalbloque.18Python
sediferenciaasdeotroslenguajesdeprogramacinquemantienencomocostumbredeclararlosbloques
mediante un conjunto de caracteres, normalmente entre llaves {}.19 20 Se pueden utilizar tanto espacios
comotabuladoresparaindentarelcdigo,peroserecomiendanomezclarlos.21
FuncinfactorialenC(indentacinopcional)
http://es.wikipedia.org/wiki/Python

Funcin factorial en Python (indentacin


obligatoria)
5/15

20/2/2015

intfactorial(intx)
{
if(x==0)
return1;
else
returnx*factorial(x1);
}

PythonWikipedia,laenciclopedialibre

deffactorial(x):
ifx==0:
return1
else:
returnx*factorial(x1)

Debidoalsignificadosintcticodelaindentacin,cadainstruccindebeestarcontenidaenunasolalnea.
No obstante, si por legibilidad se quiere dividir la instruccin en varias lneas, aadiendo una barra
invertida\alfinaldeunalnea,seindicaquelainstruccincontinaenlasiguiente.
Estasinstruccionessonequivalentes:

lista=['valor1','valor2','valor3']
cadena='Estoesunacadenabastantelarga'

lista=['valor1','valor2'\
,'valor3']
cadena='Estoesunacadena'\
'bastantelarga'

Comentarios
Loscomentariossepuedenponerdedosformas.Laprimeraymsapropiadaparacomentarioslargoses
utilizando la notacin ''' comentario ''', tres apstrofos de apertura y tres de cierre. La segunda notacin
utilizaelsmbolo#,yseextiendenhastaelfinaldelalnea.
Elintrpretenotieneencuentaloscomentarios,locualestilsideseamosponerinformacinadicionalen
nuestrocdigocomo,porejemplo,unaexplicacinsobreelcomportamientodeunaseccindelprograma.

'''
ComentariomslargoenunalneaenPython
'''
print"Holamundo"#Tambinesposibleaadiruncomentarioalfinaldeunalneadecdigo

Variables
Lasvariablessedefinendeformadinmica,loquesignificaquenosetienequeespecificarculessutipo
de antemano y puede tomar distintos valores en otro momento, incluso de un tipo diferente al que tena
previamente.Seusaelsmbolo=paraasignarvalores.

x=1
x="texto"#Estoesposibleporquelostipossonasignadosdinmicamente

http://es.wikipedia.org/wiki/Python

6/15

20/2/2015

PythonWikipedia,laenciclopedialibre

Tiposdedatos
Lostiposdedatossepuedenresumirenestatabla:
Tipo

Clase

Notas

Ejemplo

str

Cadena

Inmutable

'Cadena'

unicode

Cadena

VersinUnicodedestr

u'Cadena'

list

Secuencia

Mutable, puede contener objetos de diversos


[4.0,'Cadena',True]
tipos

tuple

Secuencia

Inmutable,puedecontenerobjetosdediversos
(4.0,'Cadena',True)
tipos

set

Conjunto

Mutable,sinorden,nocontieneduplicados

set([4.0,'Cadena',True])

frozenset

Conjunto

Inmutable,sinorden,nocontieneduplicados

frozenset([4.0,
True])

dict

Mapping

Grupodeparesclave:valor

{'key1':
False}

int

Nmeroentero

Precisin fija, convertido en long en caso de


42
overflow.

long

Nmeroentero Precisinarbitraria

42L456966786151987643L

float

Nmero
decimal

Comaflotantededobleprecisin

3.1415927

complex

Nmero
complejo

Parterealyparteimaginariaj.

(4.5+3j)

bool

Booleano

Valorbooleanoverdaderoofalso

TrueoFalse

1.0,

'Cadena',
'key2':

Mutable:sisucontenido(odichovalor)puedecambiarseentiempodeejecucin.
Inmutable:sisucontenido(odichovalor)nopuedecambiarseentiempodeejecucin.

ListasyTuplas
Para declarar una lista se usan los corchetes [], en cambio, para declarar una tupla se usan los
parntesis ().Enambasloselementosseseparanporcomas,yenelcasodelastuplasesnecesario
quetengancomomnimounacoma.
Tantolaslistascomolastuplaspuedencontenerelementosdediferentestipos.Noobstantelaslistas
suelenusarseparaelementosdelmismotipoencantidadvariablemientrasquelastuplassereservan
paraelementosdistintosencantidadfija.
Paraaccederaloselementosdeunalistaotuplaseutilizaunndiceentero(empezandopor"0",no
por"1").Sepuedenutilizarndicesnegativosparaaccederelementosapartirdelfinal.
Las listas se caracterizan por ser mutables, es decir, se puede cambiar su contenido en tiempo de
ejecucin,mientrasquelastuplassoninmutablesyaquenoesposiblemodificarelcontenidounavez
creada.
Listas

http://es.wikipedia.org/wiki/Python

7/15

20/2/2015

PythonWikipedia,laenciclopedialibre

>>>lista=["abc",42,3.1415]
>>>lista[0]#Accederaunelementoporsundice
'abc'
>>>lista[1]#Accederaunelementousandounndicenegativo
3.1415
>>>lista.append(True)#Aadirunelementoalfinaldelalista
>>>lista
['abc',42,3.1415,True]
>>>dellista[3]#Borraunelementodelalistausandounndice(enestecaso:True)
>>>lista[0]="xyz"#Reasignarelvalordelprimerelementodelalista
>>>lista[0:2]#Mostrarloselementosdelalistadelndice"0"al"2"(sinincluiresteltimo)
['xyz',42]
>>>lista_anidada=[lista,[True,42L]]#Esposibleanidarlistas
>>>lista_anidada
[['xyz',42,3.1415],[True,42L]]
>>>lista_anidada[1][0]#Accederaunelementodeunalistadentrodeotralista(delsegundoelemento,mostrarelprimer
True

Tuplas

>>>tupla=("abc",42,3.1415)
>>>tupla[0]#Accederaunelementoporsundice
'abc'
>>>deltupla[0]#Noesposibleborrar(niaadir)unelementoenunatupla,loqueprovocarunaexcepcin
(Excepcin)
>>>tupla[0]="xyz"#Tampocoesposiblereasignarelvalordeunelementoenunatupla,loquetambinprovocarunaexc
(Excepcin)
>>>tupla[0:2]#Mostrarloselementosdelatupladelndice"0"al"2"(sinincluiresteltimo)
('abc',42)
>>>tupla_anidada=(tupla,(True,3.1415))#Tambinesposibleanidartuplas
>>>1,2,3,"abc"#Estotambinesunatupla,aunqueesrecomendableponerlaentreparntesis(recuerdaquerequiere,al
(1,2,3,'abc')
>>>(1)#Aunqueentreparntesis,estonoesunatupla,yaquenoposeealmenosunacoma,porloquenicamenteaparecer
1
>>>(1,)#Encambio,enesteotrocaso,sesunatupla
(1,)
>>>(1,2)#Conmsdeunelementonoesnecesarialacomafinal
(1,2)
>>>(1,2,)#Aunqueagregarlanomodificaelresultado
(1,2)

Diccionarios
Paradeclararundiccionarioseusanlasllaves {}.Contienenelementosseparadosporcomas,donde
cada elemento est formado por un par clave:valor (el smbolo : separa la clave de su valor
correspondiente).
Los diccionarios son mutables, es decir, se puede cambiar el contenido de un valor en tiempo de
ejecucin.
Encambio,lasclavesdeundiccionariodebenserinmutables.Estoquieredecir,porejemplo,queno
podremosusarnilistasnidiccionarioscomoclaves.
Elvalorasociadoaunaclavepuedeserdecualquiertipodedato,inclusoundiccionario.

>>>diccionario={"cadena":"abc","numero":42,"lista":[True,42L]}#Diccionarioquetienediferentesvaloresporcada
>>>diccionario["cadena"]#Usandounaclave,seaccedeasuvalor
'abc'
http://es.wikipedia.org/wiki/Python

8/15

20/2/2015

PythonWikipedia,laenciclopedialibre

>>>diccionario["lista"][0]#Accederaunelementodeunalistadentrodeunvalor(delvalordelaclave"lista",mostrar
True
>>>diccionario["cadena"]="xyz"#Reasignarelvalordeunaclave
>>>diccionario["cadena"]
'xyz'
>>>diccionario["decimal"]=3.1415927#Insertarunnuevoelementoclave:valor
>>>diccionario["decimal"]
3.1415927
>>>diccionario_mixto={"tupla":(True,3.1415),"diccionario":diccionario}#Tambinesposiblequeunvalorseaundicc
>>>diccionario_mixto["diccionario"]["lista"][1]#Accederaunelementodentrodeunalista,queseencuentradentrodeun
42L
>>>diccionario={("abc",):42}#Sesposiblequeunaclaveseaunatupla,puesesinmutable
>>>diccionario={["abc"]:42}#Noesposiblequeunaclaveseaunalista,puesesmutable,loqueprovocarunaexcepci
(Excepcin)

Conjuntos
Los conjuntos se construyen mediante set(items) donde items es cualquier objeto iterable, como
listasotuplas.Losconjuntosnomantienenelordennicontienenelementosduplicados.
Sesuelenutilizarparaeliminarduplicadosdeunasecuencia,oparaoperacionesmatemticascomo
interseccin,unin,diferenciaydiferenciasimtrica.

>>>conjunto_inmutable=frozenset(["a","b","a"])#Seutilizaunalistacomoobjetoiterable
>>>conjunto_inmutable
frozenset(['a','b'])
>>>conjunto1=set(["a","b","a"])#Primerconjuntomutable
>>>conjunto1
set(['a','b'])
>>>conjunto2=set(["a","b","c","d"])#Segundoconjuntomutable
>>>conjunto2
set(['a','c','b','d'])#Recuerda,nomantienenelorden,comolosdiccionarios
>>>conjunto1&conjunto2#Interseccin
set(['a','b'])
>>>conjunto1|conjunto2#Unin
set(['a','c','b','d'])
>>>conjunto1conjunto2#Diferencia(1)
set([])
>>>conjunto2conjunto1#Diferencia(2)
set(['c','d'])
>>>conjunto1^conjunto2#Diferenciasimtrica
set(['c','d'])

Listasporcomprensin
Unalistaporcomprensin(eningls:listcomprehension)esunaexpresincompactaparadefinirlistas.Al
igualquelambda,apareceenlenguajesfuncionales.Ejemplos:

>>>range(5)#Lafuncin"range"devuelveunalista,empezandoen0yterminandoconelnmeroindicadomenosuno
[0,1,2,3,4]
>>>[i*iforiinrange(5)]#Porcadaelementodelrango,lomultiplicaporsmismoyloagregaalresultado
[0,1,4,9,16]
>>>lista=[(i,i+2)foriinrange(5)]
>>>lista
[(0,2),(1,3),(2,4),(3,5),(4,6)]

http://es.wikipedia.org/wiki/Python

9/15

20/2/2015

PythonWikipedia,laenciclopedialibre

Funciones
Lasfuncionessedefinenconlapalabraclavedef,seguidadelnombredelafuncinysusparmetros.
Otraformadeescribirfunciones,aunquemenosutilizada,esconlapalabraclavelambda(queaparece
enlenguajesfuncionalescomoLisp).
Elvalordevueltoenlasfuncionescondefsereldadoconlainstruccinreturn.
def:

>>>defsuma(x,y=2):
...returnx+y#Retornarlasumadelvalordelavariable"x"yelvalorde"y"
...
>>>suma(4)#Lavariable"y"nosemodifica,siendosuvalor:2
6
>>>suma(4,10)#Lavariable"y"ssemodifica,siendosunuevovalor:10
14

lambda:

>>>suma=lambdax,y=2:x+y
>>>suma(4)#Lavariable"y"nosemodifica,siendosuvalor:2
6
>>>suma(4,10)#Lavariable"y"ssemodifica,siendosunuevovalor:10
14

Clases
Lasclasessedefinenconlapalabraclave class,seguidadelnombredelaclasey,siheredadeotra
clase,elnombredeesta.
EnPython2.xesrecomendablequeunaclaseheredede"object",enPython3.xestoyanoharfalta.
Enunaclaseun"mtodo"equivaleauna"funcin",yuna"propiedad"equivaleauna"variable".
"__init__" es un mtodo especial que se ejecuta al instanciar la clase, se usa generalmente para
inicializar propiedades y ejecutar mtodos necesarios. Al igual que todos los mtodos en Python,
debeteneralmenosunparmetro,generalmenteseutiliza self.Elrestodeparmetrossernlosque
seindiquenalinstanciarlaclase.
Laspropiedadesquesedeseequeseanaccesiblesdesdefueradelaclasesedebendeclararusando
self.delantedelnombre.
Enpythonnoexisteelconceptodeencapsulacin,22porloqueelprogramadordebeserresponsable
deasignarlosvaloresalaspropiedades

>>>classPersona(object):
...def__init__(self,nombre,edad):
...self.nombre=nombre#UnaPropiedadcualquiera
...self.edad=edad#Otrapropiedadcualquiera
...defmostrar_edad(self):#Esnecesarioque,almenos,tengaunparmetro,generalmente:"self"
...printself.edad#mostrandounapropiedad
...defmodificar_edad(self,edad):#ModificandoEdad
...ifedad<0oredad>150:#Secompruebaquelaedadnoseamenorde0(algoimposible),nimayorde150(algo
...returnFalse
http://es.wikipedia.org/wiki/Python

10/15

20/2/2015

PythonWikipedia,laenciclopedialibre

...else:#Siestenelrango0150,entoncessemodificalavariable
...self.edad=edad#Semodificalaedad
...
>>>p=Persona("Alicia",20)#Instanciamoslaclase,comosepuedever,noseespecificaelvalorde"self"
>>>p.nombre#Lavariable"nombre"delobjetosesaccesibledesdefuera
'Alicia'
>>>p.nombre="Andrea"#Yportanto,sepuedecambiarsucontenido
>>>p.nombre
'Andrea'
>>>p.mostrar_edad()#Podemosllamaraunmtododelaclase
20
>>>p.modificar_edad(21)#Ypodemoscambiarlaedadusandoelmtodoespecficoquehemoshechoparahacerlodeformacont
>>>p.mostrar_edad()
21

Condicionales
Unasentenciacondicional(if) ejecuta su bloquedecdigo interno slo si se cumple cierta condicin. Se
defineusandolapalabraclave ifseguidadelacondicin,yelbloquedecdigo.Condicionesadicionales,
silashay,seintroducenusando elifseguidadelacondicinysubloquedecdigo.Todaslascondiciones
seevalansecuencialmentehastaencontrarlaprimeraqueseaverdadera,ysubloquedecdigoasociadoes
elnicoqueseejecuta.Opcionalmente,puedehaberunbloquefinal(lapalabraclave elseseguidadeun
bloquedecdigo)queseejecutaslocuandotodaslascondicionesfueronfalsas.

>>>verdadero=True
>>>ifverdadero:#Noesnecesarioponer"verdadero==True"
...print"Verdadero"
...else:
...print"Falso"
...
Verdadero
>>>lenguaje="Python"
>>>iflenguaje=="C":#lenguajenoes"C",porloqueestebloqueseobviaryevaluarlasiguientecondicin
...print"Lenguajedeprogramacin:C"
...eliflenguaje=="Python":#Sepuedenaadirtantosbloques"elif"comosequiera
...print"Lenguajedeprogramacin:Python"
...else:#Encasodequeningunadelasanteriorescondicionesfueracierta,seejecutaraestebloque
...print"Lenguajedeprogramacin:indefinido"
...
Lenguajedeprogramacin:Python
>>>ifverdaderoandlenguaje=="Python":#Usode"and"paracomprobarqueambascondicionessonverdaderas
...print"VerdaderoyLenguajedeprogramacin:Python"
...
VerdaderoyLenguajedeprogramacin:Python

Buclefor
Elbucleforessimilaraforeachenotroslenguajes.Recorreunobjetoiterable,comounalista,unatuplao
ungenerador,yporcadaelementodeliterableejecutaelbloquedecdigointerno.Sedefineconlapalabra
claveforseguidadeunnombredevariable,seguidode in,seguidodeliterable,yfinalmenteelbloquede
cdigo interno. En cada iteracin, el elemento siguiente del iterable se asigna al nombre de variable
especificado:

http://es.wikipedia.org/wiki/Python

11/15

20/2/2015

PythonWikipedia,laenciclopedialibre

>>>lista=["a","b","c"]
>>>foriinlista:#Iteramossobreunalista,queesiterable
...printi
...
a
b
c
>>>cadena="abcdef"
>>>foriincadena:#Iteramossobreunacadena,quetambinesiterable
...printi,#Aadiendounacomaalfinalhacemosquenointroduzcaunsaltodelnea,sinounespacio
...
abcdef

Buclewhile
El bucle while evala una condicin y, si es verdadera, ejecuta el bloque de cdigo interno. Contina
evaluandoyejecutandomientraslacondicinseaverdadera.Sedefineconlapalabraclave whileseguida
delacondicin,yacontinuacinelbloquedecdigointerno:

>>>numero=0
>>>whilenumero<10:
...numero+=1
...printnumero,
...
123456789

Mdulos
Existenmuchaspropiedadesquesepuedenagregarallenguajeimportandomdulos,queson"minicdigos"
(la mayora escritos tambin en Python) que proveen de ciertas funciones y clases para realizar
determinadastareas.UnejemploeselmduloTkinter,quepermitecrearinterfacesgrficasbasadasenla
bibliotecaTk.Otroejemploeselmduloos,queproveeaccesoamuchasfuncionesdelsistemaoperativo.
Los mdulos se agregan a los cdigos escribiendo import seguida del nombre del mdulo que queramos
usar.

>>>importos#Mduloqueproveefuncionesdelsistemaoperativo
>>>os.name#Devuelveelnombredelsistemaoperativo
'posix'
>>>os.mkdir("/tmp/ejemplo")#Creaundirectorioenlarutaespecificada
>>>importtime#Mduloparatrabajarconfechasyhoras
>>>time.strftime("%Y%m%d%H:%M:%S")#Dndoleunciertoformato,devuelvelafechay/ohoraactual
'2010081018:01:17'

Sistemadeobjetos
EnPythontodoesunobjeto(inclusolasclases).Lasclases,alserobjetos,soninstanciasdeunametaclase.
Pythonademssoportaherenciamltipleypolimorfismo.

http://es.wikipedia.org/wiki/Python

12/15

20/2/2015

PythonWikipedia,laenciclopedialibre

>>>cadena="abc"#Unacadenaesunobjetode"str"
>>>cadena.upper()#Alserunobjeto,poseesuspropiosmtodos
'ABC'
>>>lista=[True,3.1415]#Unalistaesunobjetode"list"
>>>lista.append(42L)#Unalistatambin(aligualquetodo)esunobjeto,ytambinposeesuspropiosmtodos
>>>lista
[True,3.1415,42L]

Bibliotecaestndar
Python tiene una gran biblioteca estndar, usada para una
diversidaddetareas.Estovienedelafilosofa"pilasincluidas"
("batteries included") en referencia a los mdulos de Python.
Los mdulos de la biblioteca estndar pueden mejorarse por
mdulos personalizados escritos tanto en C como en Python.
Debido a la gran variedad de herramientas incluidas en la
biblioteca estndar, combinada con la habilidad de usar
Pythonvienecon"pilasincluidas"
lenguajesdebajonivelcomoCyC++,loscualessoncapaces
deinteractuarconotrasbibliotecas,Pythonesunlenguajeque
combinasuclarasintaxisconelinmensopoderdelenguajesmenoselegantes.

Implementaciones
Existendiversasimplementacionesdellenguaje:
CPython es la implementacin original, disponible para varias plataformas en el sitio oficial de
Python.
IronPythoneslaimplementacinpara.NET
StacklessPythoneslavariantedeCPythonquetratadenousarelstackdeC (www.stackless.com
(http://www.stackless.com/))
JythoneslaimplementacinhechaenJava
Pippy
es
la
implementacin
realizada
para
Palm
(pippy.sourceforge.net
(http://pippy.sourceforge.net/))
PyPy es una implementacin de Python escrita en Python y optimizada mediante JIT (pypy.org
(http://pypy.org/))
ActivePython es una implementacin privativa de Python con extensiones, para servidores en
produccinyaplicacionesdemisincrticadesarrolladoporActiveStateSoftware.

DiferenciasentrePython2.xyPython3.x
El13defebrerode200923selanzunanuevaversindePythonbajoelnombreclave"Python3000" o,
abreviado, "Py3K".24 Esta nueva versin incluye toda una serie de cambios que requieren reescribir el
cdigo de versiones anteriores. Para facilitar este proceso junto con Python 3 se ha publicado una
herramienta automtica llamada 2to3.25 Una lista completa de los cambios puede encontrarse en
NovedadesdePython3.0(http://docs.python.org/3.1/whatsnew/3.0.html).

Vasetambin
http://es.wikipedia.org/wiki/Python

13/15

20/2/2015

PythonWikipedia,laenciclopedialibre

PyPI.RepositoriodepaquetesdesoftwaredetercerosparaPython.
Django.Frameworkdedesarrolloweb.
CubicWeb.FrameworkdedesarrollowebenplataformaSemntica.
Pygame.Conjuntodemdulosparalacreacindevideojuegosendosdimensiones.
Tkinter.BindingdelabibliotecagrficaTcl/TkparaPython.
PyGTK.BindingdelabibliotecagrficaGTKparaPython.
wxPython.BindingdelabibliotecagrficawxWidgetsparaPython.
PyQt.BindingdelabibliotecagrficaQtparaPython.
PySide.BindingdelabibliotecagrficaQtparaPythonporNokia.
Plone.Sistemadegestindecontenidos.
Biopython,ColeccindebibliotecasorientadasalabioinformticaparaPython.

Referencias
1. abcHistoryandLicense(http://docs.python.org/license.html)
2. abTheMakingofPython(http://www.artima.com/intv/pythonP.html)
3. abWhywasPythoncreatedinthefirstplace?(http://docs.python.org/faq/general#whywaspythoncreated
inthefirstplace).GeneralPythonFAQ.
4. 1.WhettingYourAppetite(http://docs.python.org/tutorial/appetite.html)
5. http://svn.python.org/view/python/trunk/Misc/HISTORY?view=markup&pathrev=51814 Aviso: archivo
grande.Verelfinaldelarchivo.
6. Thefateofreduce()inPython3000(http://www.artima.com/weblogs/viewpost.jsp?thread=98196)
7. ComputerProgrammingforEverybody(http://www.python.org/doc/essays/cp4e.html)
8. Indexof/cp4e(http://www.python.org/cp4e/)
9. abWhat'sNewinPython2.0(http://www.amk.ca/python/2.0/)
10. PEP227StaticallyNestedScopes(http://www.python.org/dev/peps/pep0227/)
11. PEPs 252 and 253: Type and Class Changes (http://docs.python.org/whatsnew/2.2.html#peps252and253
typeandclasschanges)
12. PEP255:SimpleGenerators(http://docs.python.org/whatsnew/2.2.html#pep255simplegenerators)
13. PEP282ALoggingSystem(http://www.python.org/dev/peps/pep0282/)
14. threadingHigherlevelthreadinginterface(http://docs.python.org/library/threading.html)
15. "Holands" hace referencia a Guido van Rossum, el autor del lenguaje de programacin Python, que es
holands.Tambinhacereferenciaalagranconcentracindedesarrolladoresholandesesconocidosenrelacina
otrasnacionalidades.
16. PEP20TheZenofPython(http://www.python.org/dev/peps/pep0020/)
17. http://ipython.scipy.org/
18.
Python
Software
Foundation.
More
control
flow
options
(https://docs.python.org/2/tutorial/controlflow.html#definingfunctions). Python v2.7.8 Documentation (en
ingls).Consultadoel20dejuliode2014.
19. Eric Huss. Function Definition (http://www.acm.uiuc.edu/webmonkeys/book/c_guide/index.html). The C
LibraryReferenceGuide(eningls).Consultadoel20dejuliode2014.
20. lvarez, Miguel ngel (2 de noviembre de 2001). Funciones en Javascript
(http://www.desarrolloweb.com/articulos/583.php).desarrolloweb.com(eningls). Consultado el 20 de julio de
2014.
21.
David
Goodger.
Code
Like
a
Pythonista:
Idiomatic
Python
(http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html#whitespace1). Python.net (en ingls).
Consultadoel20dejuliode2014.
22. EncapsulacionenPython(http://www.genbetadev.com/python/cazadoresdemitoslaspropiedadesprivadasen
python)
23. http://www.python.org/download/releases/
24. PEP3000Python3000(http://www.python.org/dev/peps/pep3000/)
http://es.wikipedia.org/wiki/Python

14/15

20/2/2015

PythonWikipedia,laenciclopedialibre

25. 2to3AutomatedPython2to3codetranslation(http://docs.python.org/3.1/library/2to3.html)

Bibliografa
Knowlton, Jim (2009). Python. tr: Fernndez Vlez, Mara Jess (1 edicin). Anaya Multimedia
AnayaInteractiva.ISBN9788441525139.
Martelli, Alex (2007). Python. Gua de referencia. tr: Gorjn Salvador, Bruno (1 edicin). Anaya
MultimediaAnayaInteractiva.ISBN9788441523173.

Enlacesexternos
WikimediaCommonsalbergacontenidomultimediasobrePython.
Portal:SoftwareLibre.ContenidorelacionadoconSoftwareLibre.
WikilibrosalbergaunlibroomanualsobreInmersinenPython.
TraduccinalespaoldeltutorialoficialdePython(http://python.org.ar/pyar/Tutorial)
Python para principiantes (Video tutorial) (http://codigoweb.in/manual/videotutorialpython
introduccioninstalacion2)
Libro para aprender a programar en Python (http://cic.puj.edu.co/wiki/lib/exe/fetch.php?
media=webpages:abecerra:introprogpy.pdf)
Introduccin
a
Python
para
cientficos
e
ingenieros
(Formato
vdeo)
(https://www.youtube.com/playlist?list=PLGBbVX_WvN7bMwYe7wWV5TZt1a58jTggB)
Python3paraimpacientes(http://pythonparaimpacientes.blogspot.com.es)
Obtenidodehttp://es.wikipedia.org/w/index.php?title=Python&oldid=79573760
Categoras:
Python Lenguajesdeprogramacinorientadaaobjetos Lenguajesdeprogramacin
Lenguajesdeprogramacindealtonivel Lenguajesdeprogramacindinmicamentetipados
Estapginafuemodificadaporltimavezel23ene2015alas23:05.
EltextoestdisponiblebajolaLicenciaCreativeCommonsAtribucinCompartirIgual3.0podran
seraplicablesclusulasadicionales.Lanselostrminosdeusoparamsinformacin.
WikipediaesunamarcaregistradadelaFundacinWikimedia,Inc.,unaorganizacinsinnimode
lucro.

http://es.wikipedia.org/wiki/Python

15/15

Вам также может понравиться