Download - Python - Wikipedia, la enciclopedia libre.pdf

Transcript
  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://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

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://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

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://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

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://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.Loprcticoganaalopuro.Loserroresnuncadeberandejarsepasarsilenciosamente.Amenosquehayansidosilenciadosexplcitamente.Frentealaambigedad,rechazalatentacindeadivinar.Deberahaberunaypreferiblementeslounamaneraobviadehacerlo.Aunqueesamanerapuedenoserobviaalprincipioamenosqueustedseaholands.15Ahoraesmejorquenunca.Aunquenuncaesamenudomejorqueyamismo.Silaimplementacinesdifcildeexplicar,esunamalaidea.Silaimplementacinesfcildeexplicar,puedequeseaunabuenaidea.

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://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)

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://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

    Tiposdedatos

    Lostiposdedatossepuedenresumirenestatabla:

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://es.wikipedia.org/wiki/Python 7/15

    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

    >>>lista=["abc",42,3.1415]>>>lista[0]#Accederaunelementoporsundice'abc'>>>lista[1]#Accederaunelementousandounndicenegativo3.1415>>>lista.append(True)#Aadirunelementoalfinaldelalista>>>lista

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://es.wikipedia.org/wiki/Python 8/15

    ['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'>>>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,queseencuentradentrodeundiccionario

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://es.wikipedia.org/wiki/Python 9/15

    42L>>>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)]

    Funciones

    Lasfuncionessedefinenconlapalabraclavedef,seguidadelnombredelafuncinysusparmetros.Otraformadeescribirfunciones,aunquemenosutilizada,esconlapalabraclavelambda(queapareceenlenguajesfuncionalescomoLisp).Elvalordevueltoenlasfuncionescondefsereldadoconlainstruccinreturn.

    def:

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://es.wikipedia.org/wiki/Python 10/15

    >>>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...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

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://es.wikipedia.org/wiki/Python 11/15

    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:

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

    Buclewhile

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://es.wikipedia.org/wiki/Python 12/15

    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.

    >>>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 tieneunagranbibliotecaestndar,usadaparaunadiversidadde tareas.Estovienede la filosofa"pilasincluidas"("batteriesincluded")enreferenciaalosmdulosdePython.Losmdulosdelabibliotecaestndarpuedenmejorarsepormdulospersonalizadosescritos tantoenCcomoenPython.Debidoa lagran variedad de herramientas incluidas en la biblioteca estndar, combinada con la habilidad de usarlenguajesdebajonivelcomoCyC++,loscualessoncapacesdeinteractuarconotrasbibliotecas,Pythonesunlenguajequecombinasuclarasintaxisconelinmensopoderdelenguajesmenoselegantes.

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://es.wikipedia.org/wiki/Python 13/15

    Pythonvienecon"pilasincluidas"

    Implementaciones

    Existendiversasimplementacionesdellenguaje:

    CPython es la implementacin original, disponible paravariasplataformasenelsitiooficialdePython.IronPythoneslaimplementacinpara.NETStacklessPythones lavariantedeCPythonque tratadeno usar el stack de C (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

    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. HistoryandLicense(http://docs.python.org/license.html)2. TheMakingofPython(http://www.artima.com/intv/pythonP.html)3. WhywasPythoncreatedinthefirstplace?(http://docs.python.org/faq/general#whywaspythoncreatedinthe

    firstplace).GeneralPythonFAQ.4. 1.WhettingYourAppetite(http://docs.python.org/tutorial/appetite.html)

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://es.wikipedia.org/wiki/Python 14/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/videotutorialpython

    5. http://svn.python.org/view/python/trunk/Misc/HISTORY?view=markup&pathrev=51814 Aviso: archivogrande.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. What'sNewinPython2.0(http://www.amk.ca/python/2.0/)

    10. PEP227StaticallyNestedScopes(http://www.python.org/dev/peps/pep0227/)11. PEPs252and253:TypeandClassChanges(http://docs.python.org/whatsnew/2.2.html#peps252and253type

    andclasschanges)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"hacereferenciaaGuidovanRossum,elautordellenguajedeprogramacinPython,queesholands.

    Tambin hace referencia a la gran concentracin de desarrolladores holandeses conocidos en relacin a 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 (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. Encapsulacin en Python (http://www.genbetadev.com/python/cazadoresdemitoslaspropiedadesprivadasenpython)

    23. http://www.python.org/download/releases/24. PEP3000Python3000(http://www.python.org/dev/peps/pep3000/)25. 2to3AutomatedPython2to3codetranslation(http://docs.python.org/3.1/library/2to3.html)

  • 18/7/2015 PythonWikipedia,laenciclopedialibre

    https://es.wikipedia.org/wiki/Python 15/15

    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)

    Obtenidodehttps://es.wikipedia.org/w/index.php?title=Python&oldid=83628365

    Categoras: Python Lenguajesdeprogramacinorientadaaobjetos LenguajesdeprogramacinLenguajesdeprogramacindealtonivel Lenguajesdeprogramacindinmicamentetipados

    Estapginafuemodificadaporltimavezel6jul2015alas22:01.EltextoestdisponiblebajolaLicenciaCreativeCommonsAtribucinCompartirIgual3.0podranseraplicablesclusulasadicionales.Lanselostrminosdeusoparamsinformacin.WikipediaesunamarcaregistradadelaFundacinWikimedia,Inc.,unaorganizacinsinnimodelucro.