Actualizado el 18 de Junio del 2019 (Publicado el 14 de Febrero del 2018)
8.823 visualizaciones desde el 14 de Febrero del 2018
9,0 MB
408 paginas
Creado hace 10a (15/09/2014)
Introducción
a la programación
con Python 3
Andrés Marzal Varó
Isabel Gracia Luengo
Pedro García Sevilla
Departament De LLenguatges i sistemes
informàtics
Codis d’assignatures EI1003 i mt1003
Andrés Marzal / Isabel Gracia / Pedro García - ISBN: 978-84-697-1178-1
Introducción a la programación con Python 3 - UJI - DOI: http://dx.doi.org/10.6035/Sapientia93
Edita: Publicacions de la Universitat Jaume I. Servei de Comunicació i Publicacions
Campus del Riu Sec. Edifici Rectorat i Serveis Centrals. 12071 Castelló de la Plana
http://www.tenda.uji.es
e-mail: publicacions@uji.es
Col·lecció Sapientia 93
www.sapientia.uji.es
Primera edició, 2014
ISBN: 978-84-697-1178-1
Publicacions de la Universitat Jaume I és una editorial membre de l’une,
cosa que en garanteix la difusió de les obres en els àmbits nacional i inter-
nacional. www.une.es
Reconeixement-CompartirIgual
CC BY-SA
Aquest text està subjecte a una llicència Reconeixement-CompartirIgual de Creative Com-
mons, que permet copiar, distribuir i comunicar públicament l’obra sempre que s’especifique
l’autor i el nom de la publicació fins i tot amb objectius comercials i també permet crear obres
derivades, sempre que siguen distribuïdes amb aquesta mateixa llicència.
http://creativecommons.org/licenses/by-sa/3.0/legalcode
Andrés Marzal / Isabel Gracia / Pedro García - ISBN: 978-84-697-1178-1
Introducción a la programación con Python 3 - UJI - DOI: http://dx.doi.org/10.6035/Sapientia93
Índicegeneral
.
.
.
.
.
Prefacio
Introducción
1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.1. Computadores
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.2. Codificacióndelainformación.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.3. Programasylenguajesdeprogramación.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.3.1. Códigodemáquina.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Lenguajeensamblador .
.
.
.
1.3.2.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.3.3.
¿Unprogramadiferenteparacadaordenador?.
.
.
.
.
.
1.3.4.
.
.
.
Lenguajesdeprogramacióndealtonivel .
.
.
.
.
.
.
.
1.3.5. Compiladoreseintérpretes .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.3.6. Python .
.
.
.
.
.
.
.
.
.
.
.
Java .
1.3.7.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1.4. Másalládelosprogramas:algoritmos.
.
2. Unacalculadoraavanzada
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.1. Sesionesinteractivas .
.
.
.
.
.
.
.
Losoperadoresaritméticos .
2.1.1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.1.2. Erroresdetecleoyexcepciones .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.2. Tiposdedatos .
.
.
.
.
.
.
.
2.2.1.
Tiposenteroyflotante.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.2.2. Eltipodedatosbooleano(ysusoperadores)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.3. Literalesdeentero.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.4. Variablesyasignaciones
.
.
.
.
.
.
Asignacionesconoperador .
2.4.1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.4.2.
Variablesnoinicializadas.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.5. Eltipodedatoscadena .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.6. Funcionespredefinidas .
.
.
.
.
2.6.1.
Algunasfuncionessobrevaloresnuméricos
.
.
.
.
.
.
.
2.6.2. Dosfuncionesbásicasparacadenas:ord ychr .
.
.
.
.
2.7. Móduloseimportacióndefuncionesyvariables .
.
.
.
.
.
.
.
.
.
.
2.7.1. Elmódulomath.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.7.2. Otrosmódulosdeinterés .
.
.
.
.
.
.
.
.
.
.
.
.
2.8. Métodos .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2.8.1. Unosmétodossencillosparamanipularcadenas...
.
.
.
... yunomuchomáscomplejo:format
.
.
.
.
.
.
.
2.8.2.
3. Programas
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.1. Tuprimerprograma .
.
.
.
.
.
.
.
InstalaryprepararEclipseparaeltrabajoconlaextensiónPydev .
3.1.1.
3.1.2. Nuestroprimerprograma .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.2. Ejecucióndeprogramasdesdelalíneadeórdenes
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.3. Entrada/salida .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Lecturadedatosdeteclado.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.3.1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.3.2. Mássobrelafunciónprint
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
11
11
12
16
17
20
20
21
22
23
26
26
31
31
32
39
40
41
42
46
47
51
51
52
54
54
57
58
58
61
61
61
62
67
67
67
75
77
77
78
80
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Andrés Marzal / Isabel Gracia / Pedro García - ISBN: 978-84-697-1178-1
Introducción a la programación con Python 3 - UJI - DOI: http://dx.doi.org/10.6035/Sapientia93
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.4. Sobrelalegibilidaddelosprogramas .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.4.1.
Algunosconvenios .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.4.2. Comentarios .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3.5. Gráficosdetortuga
.
.
.
.
.
.
.
.
.
4. Estructurasdecontrol
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.1. Sentenciascondicionales .
.
.
.
.
4.1.1. Unprogramailustrativo:resolucióndeecuacionesdeprimergrado .
.
.
.
.
.
.
.
.
.
.
.
.
.
4.1.2.
.
.
.
.
.
.
.
.
.
.
.
Lasentenciacondicionalif
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.1.3. Sentenciascondicionalesanidadas .
.
.
.
.
.
.
.
.
.
.
.
.
4.1.4. Otroejemplo:resolucióndeecuacionesdesegundogrado .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.1.5. Encasocontrario(else) .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.1.6. Unaestrategiadediseño:refinamientossucesivos .
.
.
.
.
.
4.1.7. Unnuevorefinamientodelprogramadeejemplo .
.
.
.
.
.
.
.
.
.
.
.
.
4.1.8. Otroejemplo:máximodeunaseriedenúmeros .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.1.9. Evaluaciónconcortocircuitos .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.1.10. Unúltimoproblema:menúsdeusuario .
.
.
4.1.11. Unaformacompactaparaestructurascondicionalesmúltiples(elif) .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.2. Sentenciasiterativas
.
.
.
.
.
.
.
.
.
.
.
.
.
4.2.1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Lasentenciawhile .
.
.
.
.
.
.
.
.
4.2.2. Unproblemadeejemplo:cálculodesumatorios.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.2.3. Otroprogramadeejemplo:requisitosenlaentrada .
.
.
.
.
.
.
.
.
.
.
4.2.4. Mejorandoelprogramadelosmenús .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.2.5. Elbuclefor in .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
for incomoformacompactadeciertoswhile .
4.2.6.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.2.7. Númerosprimos
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.2.8. Roturadebucles:break.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Anidamientodeestructuras .
.
.
.
4.2.9.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.3. Capturaytratamientodeexcepciones .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.4. Algunosejemplosgráficos .
.
.
.
.
4.4.1. Ungraficadordefunciones.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.4.2. Unaanimación:simulacióngravitacional .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4.5. Unareflexiónfinal .
.
.
.
.
.
.
5. Tiposestructurados:secuencias
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1. Cadenas .
.
.
.
.
.
.
.
Loqueyasabemos.
.
5.1.1.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1.2. Escapes .
.
.
.
Longituddeunacadena.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1.3.
.
.
.
.
.
.
.
Indexación .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1.4.
.
.
.
.
5.1.5. Recorridodecadenas .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1.6. Unejemplo:uncontadordepalabras .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1.7. Otroejemplo:unprogramadeconversióndebinarioadecimal.
.
.
.
.
Avueltasconlascadenas:inversióndeunacadena .
5.1.8.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1.9. Subcadenas:eloperadordecorte .
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1.10. Unaaplicación:correoelectrónicopersonalizado
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.1.11. Referenciasacadenas .
.
.
.
.
.
.
.
.
.
.
.
.
.
5.2. Listas
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.2.1. Cosasque,sindarnoscuenta,yasabemossobrelaslistas .
.
.
.
.
.
.
.
5.2.2. Comparacióndelistas .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.2.3. Eloperadoris.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.2.4. Modificacióndeelementosdelistas.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
inmutabilidad y representación de la informaciónen
5.2.5. Mutabilidad,
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
memoria .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.2.6.
.
Adicióndeelementosaunalista .
Lecturadelistasporteclado .
5.2.7.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5.2.8. Borradodeelementosdeunalista .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
81
.
82
.
83
.
84
95
.
95
.
95
.
97
. 100
. 103
. 104
. 106
. 108
. 110
. 115
. 116
. 118
. 119
. 120
. 125
. 127
. 129
. 132
. 135
. 136
. 142
. 144
. 146
. 148
. 148
. 152
. 159
161
. 161
. 161
. 162
. 165
. 166
. 167
. 169
. 173
. 175
. 176
. 178
+
Comentarios de: Introducción a la programación con Python 3 (1)