-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 1/15
Python
Desarrollador(es)
PythonSoftwareFoundationhttp://www.python.org/
Informacingeneral
Extensionescomunes
.py,.pyc,.pyd,.pyo,.pyw
Paradigma multiparadigma:orientadoaobjetos,imperativo,funcional,reflexivo
Aparecien 1991
Diseadopor GuidovanRossum
ltimaversinestable
3.4.2/2.7.8(10deagostode2014/1dejuliode2014)
ltimaversinenpruebas
3.5.0alpha0(3dejuliode2014)
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
PythonDeWikipedia,laenciclopedialibre
Python es un lenguaje deprogramacin interpretadocuya filosofa hace hincapi en una sintaxis quefavorezcauncdigolegible.
Se trata de un lenguaje de programacinmultiparadigma,yaquesoportaorientacinaobjetos,programacin imperativa y, en menor medida,programacinfuncional.Esun lenguaje interpretado,usatipadodinmicoyesmultiplataforma.
Es administradopor laPython Software Foundation.Posee una licencia de cdigo abierto, denominadaPython Software Foundation License,1 que escompatibleconlaLicenciapblicageneraldeGNUapartir de la versin 2.1.1, e incompatible en ciertasversionesanteriores.
ndice
1Historia2Caractersticasyparadigmas3Filosofa4Modointeractivo5Elementosdellenguaje
5.1Comentarios5.2Variables5.3Tiposdedatos5.4ListasyTuplas5.5Diccionarios5.6Conjuntos5.7Listasporcomprensin5.8Funciones5.9Clases5.10Condicionales5.11Buclefor5.12Buclewhile5.13Mdulos
6Sistemadeobjetos7Bibliotecaestndar8Implementaciones9DiferenciasentrePython2.xyPython3.x10Vasetambin11Referencias12Bibliografa13Enlacesexternos
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 2/15
Sistemaoperativo Multiplataforma
Licencia PythonSoftwareFoundationLicense
[editardatosenWikidata]
GuidovanRossum,creadordePython,enlaconvencinOSCON2006
13Enlacesexternos
Historia
Pythonfuecreadoafinalesdelosochenta2porGuidovanRossumenelCentropara lasMatemticasy la Informtica (CWI,CentrumWiskunde&Informatica),enlosPasesBajos,comounsucesordel lenguaje deprogramacinABC, capaz demanejar excepciones e interactuar con el sistemaoperativoAmoeba.3
El nombre del lenguaje proviene de la aficin de su creador por los humoristasbritnicosMontyPython.4
VanRossumeselprincipalautordePython,ysucontinuorolcentralendecidirladireccindePythonesreconocido, refirindosealcomoBenevolenteDictadorVitalicio(eningls:BenevolentDictatorforLife,BDFL).
En 1991, van Rossum public el cdigo de la versin 0.9.0 en alt.sources(news:alt.sources).5Enesta etapadeldesarrolloya estabanpresentes clases conherencia, manejo de excepciones, funciones y los tipos modulares, como: str,list,dict,entreotros.AdemsenestelanzamientoinicialaparecaunsistemademdulosadoptadodeModula3vanRossumdescribeelmdulocomounade lasmayoresunidadesdeprogramacindePython.2ElmodelodeexcepcionesenPythonesparecidoaldeModula3,conlaadicinde una clusula else.3 En el ao 1994 se form comp.lang.python (news:comp.lang.python), el foro dediscusinprincipaldePython,marcandounhitoenelcrecimientodelgrupodeusuariosdeestelenguaje.
Python alcanz la versin 1.0 en enero de 1994. Una caracterstica de este lanzamiento fueron lasherramientasdelaprogramacinfuncional:lambda,reduce,filterymap.VanRossumexplicquehace12aos,Pythonadquirilambda,reduce(),filter()ymap(),cortesadeunpiratainformticodeLispquelasextraabayqueenviparches.6Eldonante fueAmritPremnosehaceningunamencinespecficadecualquierherenciadeLispenlasnotasdelanzamiento.
LaltimaversinliberadaprovenientedeCWIfuePython1.2.En1995,vanRossumcontinusutrabajoen Python en laCorporation forNationalResearch Initiatives (CNRI) enReston,Virginia, donde lanzvariasversionesdelsoftware.
Durante su estancia en CNRI, van Rossum lanz la iniciativa Computer Programming for Everybody(CP4E), conel findehacer laprogramacinmsaccesible amsgente, conunnivelde 'alfabetizacin'bsicoenlenguajesdeprogramacin,similaralaalfabetizacinbsicaeninglsyhabilidadesmatemticasnecesariaspormuchostrabajadores.Pythontuvounpapelcrucialenesteproceso:debidoasuorientacinhaciaunasintaxis limpia,yaeraidneo,ylasmetasdeCP4Epresentabansimilitudesconsupredecesor,ABC. El proyecto fue patrocinado por DARPA.7 En el ao 2007, el proyecto CP4E est inactivo, ymientrasPythonintentaserfcildeaprenderynomuyarcanoensusintaxisysemntica,alcanzandoalosnoprogramadores,noesunapreocupacinactiva.8
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 3/15
CdigoPythonconcoloreadodesintaxis.
Enelao2000,elequipoprincipaldedesarrolladoresdePythonsecambiaBeOpen.comparaformarelequipoBeOpenPythonLabs.CNRIpidiquelaversin1.6fuerapblica,continuandosudesarrollohastaqueelequipodedesarrolloabandonCNRIsuprogramadelanzamientoyeldelaversin2.0tenanunasignificativacantidaddetraslapo.9Python2.0fueelprimerynicolanzamientodeBeOpen.com.Despusque Python 2.0 fuera publicado por BeOpen.com, Guido van Rossum y los otros desarrolladores dePythonLabsseunieronenDigitalCreations.
Python 2.0 tom una caracterstica mayor del lenguaje de programacin funcional Haskell: listas porcomprensin. La sintaxis de Python para esta construccin esmuy similar a la deHaskell, salvo por lapreferencia de los caracteres de puntuacin en Haskell, y la preferencia de Python por palabras clavesalfabticas. Python 2.0 introdujo adems un sistema de recoleccin de basura capaz de recolectarreferenciascclicas.9
Posterioraestedoblelanzamiento,ydespusquevanRossumdejCNRIparatrabajarcondesarrolladoresdesoftwarecomercial,quedclaroquelaopcindeusarPythonconsoftwaredisponiblebajoGNUGPLeramuydeseable.La licenciausadaentonces, laPythonLicense, incluaunaclusulaestipulandoque lalicencia estaba gobernada por el estado deVirginia, por lo que, bajo la ptica de los abogados de FreeSoftwareFoundation(FSF),sehacaincompatibleconGPL.CNRIyFSFserelacionaronparacambiarlalicenciadesoftware libredePythonparahacerlacompatibleconGPL.Enelao2001,vanRossumfuepremiadoconFSFAwardfortheAdvancementofFreeSoftware.
Python1.6.1esesencialmenteelmismoquePython1.6,conunospocosarreglosdebugs,yconunanuevalicenciacompatibleconGPL.1
Python2.1fueuntrabajoderivadodePython1.6.1, as como tambin de Python 2.0. Sulicencia fue renombrada a: Python SoftwareFoundation License. Todo el cdigo,documentacin y especificaciones aadidas,desde la fecha del lanzamiento de la versinalfadePython2.1,tienecomodueoaPythonSoftwareFoundation (PSF),unaorganizacinsin nimo de lucro fundada en el ao 2001,tomando como modelo la Apache SoftwareFoundation.1Incluidoenestelanzamientofueunaimplementacindelscopingmsparecidaalasreglasdestaticscoping(delcualSchemeeseloriginador).10
Una innovacin mayor en Python 2.2 fue launificacin de los tipos en Python (tiposescritos en C), y clases (tipos escritos enPython) dentro de una jerarqua. Esa unificacin logr un modelo de objetos de Python puro yconsistente.11TambinfueronagregadoslosgeneradoresquefueroninspiradosporellenguajeIcon.12
Las adiciones a la biblioteca estndar de Python y las decisiones sintcticas fueron influenciadasfuertementeporJavaenalgunoscasos:elpackagelogging,13introducidoenlaversin2.3,estbasadoenlog4jelparserSAX,introducidoen2.0elpackagethreading,14cuyaclaseThreadexponeunsubconjunto
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 4/15
delainterfazdelaclasehomnimaenJava.
Caractersticasyparadigmas
Python es un lenguaje de programacin multiparadigma. Esto significa que ms que forzar a losprogramadores a adoptar un estilo particular de programacin, permite varios estilos: programacinorientadaaobjetos,programacinimperativayprogramacinfuncional.Otrosparadigmasestnsoportadosmedianteelusodeextensiones.
Pythonusatipadodinmicoyconteodereferenciasparalaadministracindememoria.
UnacaractersticaimportantedePythoneslaresolucindinmicadenombresesdecir,loqueenlazaunmtodoyunnombredevariabledurantelaejecucindelprograma(tambinllamadoenlacedinmicodemtodos).
Otro objetivo del diseo del lenguaje es la facilidad de extensin. Se pueden escribir nuevos mdulosfcilmenteenCoC++.Pythonpuedeincluirseenaplicacionesquenecesitanunainterfazprogramable.
Aunque la programacin en Python podra considerarse en algunas situaciones hostil a la programacinfuncionaltradicionaldelLisp,existenbastantesanalogasentrePythonyloslenguajesminimalistasdelafamiliaLispcomopuedeserScheme.
Filosofa
LosusuariosdePythonserefierenamenudoalaFilosofaPythonqueesbastanteanlogaalafilosofadeUnix. El cdigo que sigue los principios de Python de legibilidad y transparencia se dice que es"pythonico".Contrariamente,elcdigoopacouofuscadoesbautizadocomo"nopythonico"("unpythonic"eningls).EstosprincipiosfueronfamosamentedescritosporeldesarrolladordePythonTimPetersenElZendePython
Belloesmejorquefeo.Explcitoesmejorqueimplcito.Simpleesmejorquecomplejo.Complejoesmejorquecomplicado.Planoesmejorqueanidado.Dispersoesmejorquedenso.Lalegibilidadcuenta.Loscasosespecialesnosontanespecialescomoparaquebrantarlasreglas.Aunqueloprcticoganaalapureza.Loserroresnuncadeberandejarsepasarsilenciosamente.Amenosquehayansidosilenciadosexplcitamente.Frentealaambigedad,rechazalatentacindeadivinar.Deberahaberunaypreferiblementeslounamaneraobviadehacerlo.Aunqueesamanerapuedenoserobviaalprincipioamenosqueustedseaholands.15Ahoraesmejorquenunca.Aunquenuncaesamenudomejorqueyamismo.Silaimplementacinesdifcildeexplicar,esunamalaidea.Silaimplementacinesfcildeexplicar,puedequeseaunabuenaidea.
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 5/15
LaLAMPcomprendePython(aquconSquid)
Losespaciosdenombres(namespaces)sonunagranideaHagamosmsdeesascosas!TimPeters,ElZendePython
Desde laversin2.1.2,Python incluyeestospuntos(ensuversinoriginalen ingls)comounhuevodepascuaquesemuestraalejecutarimportthis.16
Modointeractivo
El intrprete de Python estndar incluye un modointeractivo en el cual se escriben las instrucciones enunaespeciedeintrpretedecomandos: lasexpresionespueden ser introducidas una a una, pudiendo verse elresultadodesuevaluacininmediatamente,loquedalaposibilidaddeprobar porcionesde cdigo en elmodointeractivo antes de integrarlo como parte de unprograma.Esto resultatil tantopara laspersonasquese estn familiarizando con el lenguaje como para losprogramadoresmsavanzados.
Existen otros programas, tales como IDLE (http://docs.python.org/library/idle.html), bpython(http://bpythoninterpreter.org/)oIPython,17queaadenfuncionalidadesextraalmodointeractivo,comoelautocompletadodecdigoyelcoloreadodelasintaxisdellenguaje.
Ejemplodelmodointeractivo:
>>>1+12>>>a=range(10)>>>printa[0,1,2,3,4,5,6,7,8,9]
Elementosdellenguaje
Python fuediseadopara ser ledo con facilidad.Unade sus caractersticas es el usodepalabrasdondeotroslenguajesutilizaransmbolos.Porejemplo,losoperadoreslgicos!,||y&&enPythonseescribennot,oryand,respectivamente.
Elcontenidode losbloquesdecdigo(bucles, funciones,clases,etc.)esdelimitadomedianteespaciosotabuladores,conocidoscomoindentacin,antesdecadalneaderdenespertenecientesalbloque.18Pythonsediferenciaasdeotroslenguajesdeprogramacinquemantienencomocostumbredeclararlosbloquesmediante un conjuntode caracteres, normalmente entre llaves{}.19 20 Se pueden utilizar tanto espacioscomotabuladoresparaindentarelcdigo,peroserecomiendanomezclarlos.21
FuncinfactorialenC(indentacinopcional) Funcin factorial en Python (indentacinobligatoria)
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 6/15
intfactorial(intx){if(x==0)return1;elsereturnx*factorial(x1);}
deffactorial(x):ifx==0:return1else:returnx*factorial(x1)
Debidoalsignificadosintcticodelaindentacin,cadainstruccindebeestarcontenidaenunasolalnea.No obstante, si por legibilidad se quiere dividir la instruccin en varias lneas, aadiendo una barrainvertida\alfinaldeunalnea,seindicaquelainstruccincontinaenlasiguiente.
Estasinstruccionessonequivalentes:
lista=['valor1','valor2','valor3']cadena='Estoesunacadenabastantelarga'
lista=['valor1','valor2'\,'valor3']cadena='Estoesunacadena'\'bastantelarga'
Comentarios
Loscomentariossepuedenponerdedosformas.Laprimeraymsapropiadaparacomentarioslargosesutilizando la notacin ''' comentario ''', tres apstrofos de apertura y tres de cierre. La segunda notacinutilizaelsmbolo#,yseextiendenhastaelfinaldelalnea.
Elintrpretenotieneencuentaloscomentarios,locualestilsideseamosponerinformacinadicionalennuestrocdigocomo,porejemplo,unaexplicacinsobreelcomportamientodeunaseccindelprograma.
'''ComentariomslargoenunalneaenPython'''print"Holamundo"#Tambinesposibleaadiruncomentarioalfinaldeunalneadecdigo
Variables
Lasvariablessedefinendeformadinmica,loquesignificaquenosetienequeespecificarculessutipode antemanoypuede tomardistintosvalores enotromomento, inclusodeun tipodiferente al que tenapreviamente.Seusaelsmbolo=paraasignarvalores.
x=1x="texto"#Estoesposibleporquelostipossonasignadosdinmicamente
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 7/15
Tiposdedatos
Lostiposdedatossepuedenresumirenestatabla:
Tipo Clase Notas Ejemplostr Cadena Inmutable 'Cadena'unicode Cadena VersinUnicodedestr u'Cadena'
list Secuencia Mutable, puede contener objetos de diversostipos [4.0,'Cadena',True]
tuple Secuencia Inmutable,puedecontenerobjetosdediversostipos (4.0,'Cadena',True)
set Conjunto Mutable,sinorden,nocontieneduplicados set([4.0,'Cadena',True])
frozenset Conjunto Inmutable,sinorden,nocontieneduplicados frozenset([4.0, 'Cadena',True])
dict Mapping Grupodeparesclave:valor {'key1': 1.0, 'key2':False}
int Nmeroentero Precisin fija, convertido en long en caso deoverflow. 42
long Nmeroentero Precisinarbitraria 42L456966786151987643L
floatNmerodecimal Comaflotantededobleprecisin 3.1415927
complexNmerocomplejo Parterealyparteimaginariaj. (4.5+3j)
bool Booleano Valorbooleanoverdaderoofalso TrueoFalse
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 losparntesis().Enambasloselementosseseparanporcomas,yenelcasodelastuplasesnecesarioquetengancomomnimounacoma.Tantolaslistascomolastuplaspuedencontenerelementosdediferentestipos.Noobstantelaslistassuelenusarseparaelementosdelmismotipoencantidadvariablemientrasquelastuplassereservanparaelementosdistintosencantidadfija.Paraaccederaloselementosdeunalistaotuplaseutilizaunndiceentero(empezandopor"0",nopor"1").Sepuedenutilizarndicesnegativosparaaccederelementosapartirdelfinal.Las listas se caracterizan por sermutables, es decir, se puede cambiar su contenido en tiempo deejecucin,mientrasquelastuplassoninmutablesyaquenoesposiblemodificarelcontenidounavezcreada.
Listas
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 8/15
>>>lista=["abc",42,3.1415]>>>lista[0]#Accederaunelementoporsundice'abc'>>>lista[1]#Accederaunelementousandounndicenegativo3.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,mostrarelprimerelemento)True
Tuplas
>>>tupla=("abc",42,3.1415)>>>tupla[0]#Accederaunelementoporsundice'abc'>>>deltupla[0]#Noesposibleborrar(niaadir)unelementoenunatupla,loqueprovocarunaexcepcin(Excepcin)>>>tupla[0]="xyz"#Tampocoesposiblereasignarelvalordeunelementoenunatupla,loquetambinprovocarunaexcepcin(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,almenos,unacoma)(1,2,3,'abc')>>>(1)#Aunqueentreparntesis,estonoesunatupla,yaquenoposeealmenosunacoma,porloquenicamenteaparecerelvalor1>>>(1,)#Encambio,enesteotrocaso,sesunatupla(1,)>>>(1,2)#Conmsdeunelementonoesnecesarialacomafinal(1,2)>>>(1,2,)#Aunqueagregarlanomodificaelresultado(1,2)
Diccionarios
Paradeclararundiccionarioseusanlasllaves{}.Contienenelementosseparadosporcomas,dondecada elemento est formado por un par clave:valor (el smbolo : separa la clave de su valorcorrespondiente).Losdiccionarios sonmutables, es decir, se puede cambiar el contenidodeunvalor en tiempodeejecucin.Encambio,lasclavesdeundiccionariodebenserinmutables.Estoquieredecir,porejemplo,quenopodremosusarnilistasnidiccionarioscomoclaves.Elvalorasociadoaunaclavepuedeserdecualquiertipodedato,inclusoundiccionario.
>>>diccionario={"cadena":"abc","numero":42,"lista":[True,42L]}#Diccionarioquetienediferentesvaloresporcadaclave,inclusounalista>>>diccionario["cadena"]#Usandounaclave,seaccedeasuvalor'abc'
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 9/15
>>>diccionario["lista"][0]#Accederaunelementodeunalistadentrodeunvalor(delvalordelaclave"lista",mostrarelprimerelemento)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}#Tambinesposiblequeunvalorseaundiccionario>>>diccionario_mixto["diccionario"]["lista"][1]#Accederaunelementodentrodeunalista,queseencuentradentrodeundiccionario42L>>>diccionario={("abc",):42}#Sesposiblequeunaclaveseaunatupla,puesesinmutable>>>diccionario={["abc"]:42}#Noesposiblequeunaclaveseaunalista,puesesmutable,loqueprovocarunaexcepcin(Excepcin)
Conjuntos
Losconjuntos se construyenmediante set(items) donde items es cualquier objeto iterable, comolistasotuplas.Losconjuntosnomantienenelordennicontienenelementosduplicados.Sesuelenutilizarparaeliminarduplicadosdeunasecuencia,oparaoperacionesmatemticascomointerseccin,unin,diferenciaydiferenciasimtrica.
>>>conjunto_inmutable=frozenset(["a","b","a"])#Seutilizaunalistacomoobjetoiterable>>>conjunto_inmutablefrozenset(['a','b'])>>>conjunto1=set(["a","b","a"])#Primerconjuntomutable>>>conjunto1set(['a','b'])>>>conjunto2=set(["a","b","c","d"])#Segundoconjuntomutable>>>conjunto2set(['a','c','b','d'])#Recuerda,nomantienenelorden,comolosdiccionarios>>>conjunto1&conjunto2#Interseccinset(['a','b'])>>>conjunto1|conjunto2#Uninset(['a','c','b','d'])>>>conjunto1conjunto2#Diferencia(1)set([])>>>conjunto2conjunto1#Diferencia(2)set(['c','d'])>>>conjunto1^conjunto2#Diferenciasimtricaset(['c','d'])
Listasporcomprensin
Unalistaporcomprensin(eningls:listcomprehension)esunaexpresincompactaparadefinirlistas.Aligualquelambda,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)]
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 10/15
Funciones
Lasfuncionessedefinenconlapalabraclavedef,seguidadelnombredelafuncinysusparmetros.Otraformadeescribirfunciones,aunquemenosutilizada,esconlapalabraclavelambda(queapareceenlenguajesfuncionalescomoLisp).Elvalordevueltoenlasfuncionescondefsereldadoconlainstruccinreturn.
def:
>>>defsuma(x,y=2):...returnx+y#Retornarlasumadelvalordelavariable"x"yelvalorde"y"...>>>suma(4)#Lavariable"y"nosemodifica,siendosuvalor:26>>>suma(4,10)#Lavariable"y"ssemodifica,siendosunuevovalor:1014
lambda:
>>>suma=lambdax,y=2:x+y>>>suma(4)#Lavariable"y"nosemodifica,siendosuvalor:26>>>suma(4,10)#Lavariable"y"ssemodifica,siendosunuevovalor:1014
Clases
Lasclasessedefinenconlapalabraclaveclass,seguidadelnombredelaclasey,siheredadeotraclase,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 parainicializar propiedades y ejecutarmtodos necesarios. Al igual que todos losmtodos en Python,debeteneralmenosunparmetro,generalmenteseutilizaself.Elrestodeparmetrossernlosqueseindiquenalinstanciarlaclase.Laspropiedadesquesedeseequeseanaccesiblesdesdefueradelaclasesedebendeclararusandoself.delantedelnombre.Enpythonnoexisteelconceptodeencapsulacin,22porloqueelprogramadordebeserresponsabledeasignarlosvaloresalaspropiedades
>>>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...ifedad150:#Secompruebaquelaedadnoseamenorde0(algoimposible),nimayorde150(algorealmentedifcil)...returnFalse
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 11/15
...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()#Podemosllamaraunmtododelaclase20>>>p.modificar_edad(21)#Ypodemoscambiarlaedadusandoelmtodoespecficoquehemoshechoparahacerlodeformacontrolada>>>p.mostrar_edad()21
Condicionales
Unasentenciacondicional(if)ejecutasubloquedecdigo internoslo si secumpleciertacondicin.Sedefineusandolapalabraclaveifseguidadelacondicin,yelbloquedecdigo.Condicionesadicionales,silashay,seintroducenusandoelifseguidadelacondicinysubloquedecdigo.Todaslascondicionesseevalansecuencialmentehastaencontrarlaprimeraqueseaverdadera,ysubloquedecdigoasociadoeselnicoqueseejecuta.Opcionalmente,puedehaberunbloquefinal(lapalabraclaveelseseguidadeunbloquedecdigo)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,unatuplaoungenerador,yporcadaelementodeliterableejecutaelbloquedecdigointerno.Sedefineconlapalabraclaveforseguidadeunnombredevariable,seguidodein,seguidodeliterable,yfinalmenteelbloquedecdigo interno. En cada iteracin, el elemento siguiente del iterable se asigna al nombre de variableespecificado:
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 12/15
>>>lista=["a","b","c"]>>>foriinlista:#Iteramossobreunalista,queesiterable...printi...abc>>>cadena="abcdef">>>foriincadena:#Iteramossobreunacadena,quetambinesiterable...printi,#Aadiendounacomaalfinalhacemosquenointroduzcaunsaltodelnea,sinounespacio...abcdef
Buclewhile
El buclewhile evala una condicin y, si es verdadera, ejecuta el bloque de cdigo interno. Continaevaluandoyejecutandomientraslacondicinseaverdadera.Sedefineconlapalabraclavewhileseguidadelacondicin,yacontinuacinelbloquedecdigointerno:
>>>numero=0>>>whilenumero>>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.
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 13/15
Pythonvienecon"pilasincluidas"
>>>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 unadiversidaddetareas.Estovienedelafilosofa"pilasincluidas"("batteries included") en referencia a losmdulos de Python.Los mdulos de la biblioteca estndar pueden mejorarse pormdulos personalizados escritos tanto en C como en Python.Debido a la gran variedad de herramientas incluidas en labiblioteca estndar, combinada con la habilidad de usarlenguajesdebajonivelcomoCyC++,loscualessoncapacesdeinteractuarconotrasbibliotecas,Pythonesunlenguajequecombinasuclarasintaxisconelinmensopoderdelenguajesmenoselegantes.
Implementaciones
Existendiversasimplementacionesdellenguaje:
CPython es la implementacin original, disponible para varias plataformas en el sitio oficial dePython.IronPythoneslaimplementacinpara.NETStacklessPythones lavariantedeCPythonquetratadenousarelstackdeC (www.stackless.com(http://www.stackless.com/))JythoneslaimplementacinhechaenJavaPippy 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 enproduccinyaplicacionesdemisincrticadesarrolladoporActiveStateSoftware.
DiferenciasentrePython2.xyPython3.x
El13defebrerode200923selanzunanuevaversindePythonbajoelnombreclave"Python3000" o,abreviado,"Py3K".24 Esta nueva versin incluye toda una serie de cambios que requieren reescribir elcdigo de versiones anteriores. Para facilitar este proceso junto con Python 3 se ha publicado unaherramienta automtica llamada 2to3.25 Una lista completa de los cambios puede encontrarse enNovedadesdePython3.0(http://docs.python.org/3.1/whatsnew/3.0.html).
Vasetambin
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 14/15
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. abWhywasPythoncreated in thefirstplace?(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.Tambinhacereferenciaalagranconcentracindedesarrolladoresholandesesconocidosenrelacinaotrasnacionalidades.
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 (eningls).Consultadoel20dejuliode2014.
19. Eric Huss. Function Definition (http://www.acm.uiuc.edu/webmonkeys/book/c_guide/index.html). The CLibraryReferenceGuide(eningls).Consultadoel20dejuliode2014.
20. lvarez, Miguel ngel (2 de noviembre de 2001). Funciones en Javascript(http://www.desarrolloweb.com/articulos/583.php).desarrolloweb.com (en ingls).Consultado el 20 de julio de2014.
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/cazadoresdemitoslaspropiedadesprivadasenpython)
23. http://www.python.org/download/releases/24. PEP3000Python3000(http://www.python.org/dev/peps/pep3000/)
-
20/2/2015 PythonWikipedia,laenciclopedialibre
http://es.wikipedia.org/wiki/Python 15/15
Bibliografa
Knowlton, Jim (2009).Python. tr: Fernndez Vlez,Mara Jess (1 edicin). AnayaMultimediaAnayaInteractiva.ISBN9788441525139.Martelli,Alex (2007).Python.Gua de referencia. tr:Gorjn Salvador,Bruno (1 edicin).AnayaMultimediaAnayaInteractiva.ISBN9788441523173.
Enlacesexternos
WikimediaCommonsalbergacontenidomultimediasobrePython.Portal:SoftwareLibre.ContenidorelacionadoconSoftwareLibre.
WikilibrosalbergaunlibroomanualsobreInmersinenPython.
TraduccinalespaoldeltutorialoficialdePython(http://python.org.ar/pyar/Tutorial)Python para principiantes (Video tutorial) (http://codigoweb.in/manual/videotutorialpythonintroduccioninstalacion2)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 LenguajesdeprogramacinLenguajesdeprogramacindealtonivel Lenguajesdeprogramacindinmicamentetipados
Estapginafuemodificadaporltimavezel23ene2015alas23:05.EltextoestdisponiblebajolaLicenciaCreativeCommonsAtribucinCompartirIgual3.0podranseraplicablesclusulasadicionales.Lanselostrminosdeusoparamsinformacin.WikipediaesunamarcaregistradadelaFundacinWikimedia,Inc.,unaorganizacinsinnimodelucro.
25. 2to3AutomatedPython2to3codetranslation(http://docs.python.org/3.1/library/2to3.html)