python - wikipedia, la enciclopedia libre.pdf

15
Python Desarrollador(es) Python Software Foundation http://www.python.org/ Información general Extensiones comunes .py, .pyc, .pyd, .pyo, .pyw Paradigma multiparadigma: orientado a objetos, imperativo, funcional, reflexivo Apareció en 1991 Diseñado por Guido van Rossum Última versión estable 3.4.2 / 2.7.8 (10 de agosto de 2014 / 1 de julio de 2014) Última versión en pruebas 3.5.0 alpha0 (3 de julio de 2014) Tipo de dato débilmente tipado, dinámico Implementaciones CPython, IronPython, Jython, Python for S60, PyPy, PyGame, ActivePython, Unladen Swallow Dialectos Stackless Python, RPython Influido por ABC, ALGOL 68, C, Haskell, Icon, Lisp, Modula3, Perl, Smalltalk, Java Ha influido a Boo, Cobra, D, Falcon, Genie, Groovy, Ruby, JavaScript, Cython, Go Python De Wikipedia, la enciclopedia libre Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma. Es administrado por la Python Software Foundation. Posee una licencia de código abierto, denominada Python Software Foundation License, 1 que es compatible con la Licencia pública general de GNU a partir de la versión 2.1.1, e incompatible en ciertas versiones anteriores. Índice 1 Historia 2 Características y paradigmas 3 Filosofía 4 Modo interactivo 5 Elementos del lenguaje 5.1 Comentarios 5.2 Variables 5.3 Tipos de datos 5.4 Listas y Tuplas 5.5 Diccionarios 5.6 Conjuntos 5.7 Listas por comprensión 5.8 Funciones 5.9 Clases 5.10 Condicionales 5.11 Bucle for 5.12 Bucle while 5.13 Módulos 6 Sistema de objetos 7 Biblioteca estándar 8 Implementaciones 9 Diferencias entre Python 2.x y Python 3.x 10 Véase también 11 Referencias 12 Bibliografía 13 Enlaces externos

Upload: jhony-ccente-ruiz

Post on 08-Sep-2015

74 views

Category:

Documents


0 download

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.