Sinopsis del producto
Título: Programación con Python
n
nSubtítulo: Curso para Ciencias e Ingeniería
n
nISBN: 9786075764801
n
nISBN ebook: 9786075764818
n
nAutor: Alberto Lira, Roberto Enrique
n
nEdición 1ra.
n
nAño: 2026
n
nEditorial: Alfaomega
n
nEncuadernación: Rústica
n
nMedida: 150 x 220 mm.
n
nPáginas: 342
n
nLomo:13,8 mm
n
nPeso: 690gr
n
nColores interior: Uno
n
nIdioma: español
n
nNivel: Intermedio
n
nÁrea: Tecnología
n
nSubárea: Programación
n
nEste libro de texto está diseñado para los cursos de programación que se imparten en las áreas de ciencias básicas e ingeniería, y se destaca por su detallada exposición de la teoría y por la sistemática presentación de ejemplos de aplicación de la misma. Además de presentar los fundamentos tanto de algoritmos como de Python, incluye la exposición de los siguientes temas: Estructuras de control. Cadenas de caracteres. Listas, tuplas, diccionarios y conjuntos. Funciones. Arreglos. Manejo de excepciones. Introducción a Tkinter. Graficación con Python. Finalmente en los apéndices se describe la instalación de Spyder, Python y Visual Studio Code así como del paquete Matplotlib.
n
nRoberto Enrique Alberto Lira
n
nEs licenciado en computación por la Universidad Juárez Autónoma de Tabasco y maestro en ciencias en computación por el Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional con la tesis “Mecanismo de remodelación semi-plástica adaptativa para interfaces colaborativas”. En sus más de 10 años de experiencia profesional ha impartido varios cursos relacionados con ciencias en computación en diversas carreras de instituciones públicas en el país. Por mencionar algunas instituciones: Escuela Superior de Cómputo del Instituto Politécnico Nacional (ESCOM I.P.N) y Universidad Juárez Autónoma de Tabasco. En esta última institución participó en la comisión académica de acreditación de la Licenciatura en Ciencias en Computación ante el Consejo Nacional de Acreditación en Informática y Computación, A. C.
n
nPrefacio XIII
n
nConvenciones XV
n
n
n
n - Fundamentos de Python 1
n
n1.1. Introducción . . . . . . . .. . . . . . . . . . . . . . . . 2
n
n1.2. Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . 2
n
n1.3. Identificadores . . . . . .. . . . . . . . . . . . . . . . 3
n
n1.3.1. Constante . . . . . . . . . . . . . . . . . . . . . . 3
n
n1.3.2. Variables . . . . . . . . . . . . . . . . . . . . . . 4
n
n1.4. Python . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
n
n1.4.1. El zen de Python . . . . . . . . . . . . . . . . . . 6
n
n1.4.2. Variables . . . . . . . . . . . . . . . . . . . . . . 7
n
n1.4.3. Operadores . . . . . . . . . . . . . . . . . . . . . 8
n
n1.4.4. Jerarquía de operadores . . . . . . . . . . 12
n
n1.4.5. Palabras reservadas . . . . . . . . . . . . . . 14
n
n1.4.6. Comentarios . . . . . . . . . . . . . . . . . . . . 14
n
n1.4.7. Breve introducción a las funciones en Python . . 15
n
n1.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . 17
n
n
n
n - Estructuras de control 21
n
n2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 22
n
n2.2. Estructuras secuenciales . . . . . . . . . . . . 22
n
n2.2.1. Ejemplo: Suma de dos números . . . . 23
n
n2.2.2. Ejemplo: Perímetro de un rectángulo .23
n
n2.2.3. Ejemplo: Cálculo del índice de masa corporal (IMC) . . . . . . . . . . . . . . 24
n
n2.2.4. Ejemplo: Convierte temperatura de Celsius a Fahrenheit . . . . . . . . . . . . . . . . . . . 25
n
n2.2.5. Ejemplo: Cálculo de oxígeno en una reacción química . . . . . . . . . . . . . . . . . . . . . . 26
n
n2.3. Estructuras selectivas . . . . . . . . . . . . . . 27
n
n2.3.1. Ejemplo: Mayor de edad . . . . . . . . . . 28
n
n2.3.2. Ejemplo: Simulando el operador and ..28
n
n2.3.3. Ejemplo: Mezcla de concreto . . . . . . . 30
n
n2.3.4. Ejemplo: Tienda de celulares . . . . . . . 31
n
n2.3.5. Ejemplo: Clasificación de pH . . . . . . . 33
n
n2.3.6. Ejemplo: Calculadora básica . . . . . . . . 34
n
n2.4. Estructuras repetitivas . . . . . . . . .. . . . . 35
n
n2.4.1. Ejemplo: Fibonacci . . . . . . . .. . . . . . . 37
n
n2.4.2. Ejemplo: Número primo . . . . . . . . . . 39
n
n2.4.3. Ejemplo: Máximo común divisor . . ... 41
n
n2.4.4. Ejemplo: Movimiento de un péndulo simple . . . 43
n
n2.4.5. Ejemplo: Dibujando triángulo numérico . 46
n
n2.4.6. Instrucciones: break y continue . . . . . .47
n
n2.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . 49
n
n
n
n - Cadenas 53
n
n3.1. Introducción . . . . . . . . . . . . . . .. . . . . . . . 54
n
n3.2. Índices y slices . . . . . . . . . . . . . . . . . . . . 54
n
n3.3. Longitud de una cadena . . . . . . . . . . . . . 57
n
n3.4. Métodos para cadenas . . . . . . . . . . . . . . 58
n
n3.4.1. Método upper . . . . . . . . . . . . . . . . . . . 58
n
n3.4.2. Método lower . . . . . . . . . . . . . . . . . . . . 58
n
n3.4.3. Método count . . . . . . . . . . . . . . . . . . . . 59
n
n3.4.4. Método find . . . . . . . . . . . . . . . . . . . . . 59
n
n3.4.5. Método islower . . . . . . . . . . . . . . . . . . . 60
n
n3.4.6. Método startswith . . . . . . . . . . . . . . . . 60
n
n3.4.7. Método endswith . . . . . . . . . . . . . . . . . 60
n
n3.4.8. Método split . . . . . . . . . . . . . . . . . . . . 61
n
n3.4.9. Método join . . . . . . . . . . . . . . . . . . . . . 61
n
n3.4.10. Método replace . . . .. . . . . . . . . . . . . . 62
n
n3.4.11. Método isdigit . . . . . . . . . . . . . . . . . . . 62
n
n3.5. Operador in en cadenas . . . . . . . .. . . . . . 62
n
n3.6. Recorrido de una cadena . . . . . . . . . .. . . 63
n
n3.7. Ejemplo: Caracteres duplicados . . . . . . . 64
n
n3.8. Ejemplo: Eliminando vocales . . . . . . . . . . 65
n
n3.9. Ejemplo: Palíndromos . . . . . . . . . . . . 66
n
n3.10. Ejemplo: Cuenta dígitos . . . . . . . . . . . . 67
n
n3.11. Ejemplo: Cálculo de longitud de una cadena cinemática 68
n
n3.12. Ejemplo: Clasificación de materiales por dureza . . . . . 70
n
n3.13. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . 72
n
n
n
n - Listas, tuplas, diccionarios y conjuntos 75
n
n4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 76
n
n4.2. Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
n
n4.2.1. Manejo de listas . . . . . . . . . . . . . . . . . . 77
n
n4.2.2. Ejemplo: Sumar elementos de una lista . . . 87
n
n4.2.3. Ejemplo: Ordenar palabras por tamaño . . . . . 88
n
n4.2.4. Ejemplo: Encontrar el k-ésimo elemento más grande de una lista . .89
n
n4.2.5. Ejemplo: Control de calidad en una línea de producción . . . . . . . . . . . . . . . . . . . . . . 90
n
n4.3. Tuplas . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
n
n4.3.1. Manejo de tuplas . . . . . . . . . . . . . . . . . 92
n
n4.3.2. Ejemplo: Acceso a elementos de una tupla . . . . 96
n
n4.3.3. Ejemplo: Encontrar el valor máximo y mínimo en una tupla . . . . . . . . . . . . . . . . . . . . 97
n
n4.3.4. Ejemplo: Desempaquetar tuplas . . . . . 98
n
n4.4. Diccionarios . . . . . . . . . . . . . . . . . . . . . . . 98
n
n4.4.1. Manejo de diccionarios . . . . . . . . . . . . 99
n
n4.4.2. Ejemplo: Contar frecuencia de palabras en texto 106
n
n4.4.3. Ejemplo: Libros más vendidos . . . . . . 108
n
n4.4.4. Ejemplo: Mapa curricular de una carrera . . . 108
n
n4.4.5. Ejemplo: Seguimiento de la calidad del aire . . . 110
n
n4.5. Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . 112
n
n4.5.1. Manejo de conjuntos . . . . . . . . . . . . . 112
n
n4.5.2. Ejemplo: Eliminar elementos duplicados . . . . . 118
n
n4.5.3. Ejemplo: Intereses comunes . . . . . . . 119
n
n4.5.4. Ejemplo: Asignaturas no comunes . . . 120
n
n4.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . 121
n
n
n
n - Funciones 125
n
n5.1. Introducción . . . . . . . . . . . . . . . . . .. . . . . 126
n
n5.2. Argumentos y parámetros . . . . . . . . . . . 126
n
n5.3. Tipos de argumentos . . . . . . . . . . . . . . . 127
n
n5.4. Funciones recursivas . . . .. . . . . . . . . . . . 129
n
n5.4.1. Función recursiva sin retorno . . . . . . . 130
n
n5.4.2. Función recursiva con retorno . . . . . 131
n
n5.4.3. Ejemplo: Números de Catalan . . . . . . 132
n
n5.5. Funciones lambda . . . . . . . . . . . . . . . . . . 133
n
n5.6. Funciones de orden superior . . . . . . . . . 134
n
n5.6.1. map . . . . . . . . . . . . . . . . . . . . . . . . 134
n
n5.6.2. filter . . . . . . . . . . . . . . . . . . . . . . . . . 135
n
n5.7. Ejemplo: Convierte cadenas a enteros . 136
n
n5.8. Ejemplo: Celsius a Fahrenheit . . . . . . . . 136
n
n5.9. Ejemplo: Filtrar palabras por tamaño ... 137
n
n5.10. Ejemplo: Filtrar palíndromos . . . . . . . . 138
n
n5.11. Ejemplo: Torres de Hanoi . . . . . . . . .. . 139
n
n5.12. Ejercicios . . . . .. . . . . . . . . . . . . . . . . . . 141
n
n
n
n - Arreglos 145
n
n6.1. Introducción . . . . . . . . . . . . . . . . . . . . . 146
n
n6.2. Arreglos de una dimensión . . . . . .. . . . . 146
n
n6.2.1. Ejemplo: Histograma . . . . . . . . . . . . . . 147
n
n6.2.2. Ejemplo: Cálculo de torque en un sistema de fuerzas . . . . . . . . . . . . . . . . . . . . . . . . 148
n
n6.3. Arreglos de dos dimensiones . . . . . . . . . 150
n
n6.3.1. Recorrido de arreglos de dos dimensiones . 150
n
n6.3.2. Ejemplo: Calculo de la moda de una matriz . . . 153
n
n6.3.3. Ejemplo: Triángulo de Pascal . . . . . . . 154
n
n6.3.4. Ejemplo: Simulando el juego de las torres de Hanoi 156
n
n6.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . 163
n
n
n
n - Algoritmos y técnicas de programación avanzada 167
n
n7.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 168
n
n7.2. Técnica voraz . . . . . . . . . . . . . .. . . . . . . 168
n
n7.2.1. Ejemplo: Cambio de monedas . . . . . . 169
n
n7.2.2. Ejemplo: Selección de actividades . . . 171
n
n7.3. Backtracking . . . . . . . . . .. . . . . . . . . . . . . 173
n
n7.3.1. Ejemplo: Sudoku . . . . .. . . . . . . . . . . . . 173
n
n7.3.2. Ejemplo: Resolviendo el juego de palabras cruzadas . . . . . . . . . . . . . . . . . . . . . 178
n
n7.3.3. Ejemplo: Permutaciones . . . . . . . . . . . 181
n
n7.4. Programación dinámica . . . . . . . . . . . . . 184
n
n7.4.1. Ejemplo: Cambio de monedas . . . . . . 185
n
n7.4.2. Ejemplo: Sucuencia Fibonacci . . . . . . 187
n
n7.5. Ejercicios . . . . . . . . . . . . . .. . . . . . . . . . . 189
n
n
n
n
n
n - Manejo de excepciones en Python 193
n
n8.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 194
n
n8.2. Bloque try y except . . . . . . . . . . . . . . . . . 195
n
n8.3. Excepciones más comunes en Python .. 196
n
n8.4. Múltiples excepciones . . . . . . . . . . . . . . 202
n
n8.5. Instrucción else en excepciones . . . . .. . 202
n
n8.6. Instrucción finally . . . . . . . . . . . . . . . . . 203
n
n8.7. Raising exceptions . . . . . . . . . . .. . . . . . . 204
n
n8.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . 205
n
n
n
n - Archivos en Python 209
n
n9.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 210
n
n9.2. Archivos de texto .. . . . . . . . . . . . . . . . . . 211
n
n9.2.1. Abrir y cerrar archivos . . . . . . . . . . . . . 211
n
n9.2.2. Lectura de archivos . . . . . . . . . . . . . . . 212
n
n9.2.3. Escritura en archivos . . . . . . . . . . . . . . 215
n
n9.3. Archivos binarios . . . . . . . . . . . . . . . . . . 216
n
n9.4. Moverse dentro de un archivo . . . . . . . 218
n
n9.4.1. Método tell . . . . . . . . . . . . . . . . . . . . . 221
n
n9.5. Lectura y Escritura en Archivos CSV . . 222
n
n9.6. Lectura y Escritura de Archivos JSON . . 225
n
n9.7. Manejo de excepciones en archivos . . 228
n
n9.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . .. . 229
n
n
n
n
10.Introducción a la librería Tkinter 233
n
n10.1. Introducción . . . . . . . . . . . . . . . . . . . . . 234
n
n10.2. Ventana principal . . . . . . . . . . . . . . . . . 235
n
n10.2.1. Personalización de la ventana . . . . . 236
n
n10.3. Widgets principales . . . . . . . . . . .. . . . . 238
n
n10.4. Introducción a los menús en Tkinter .. 243
n
n10.5. Organización de Widgets (Layout) . . . 246
n
n10.5.1. Método pack() . . . . . . . . . . . . . . . . . 246
n
n10.5.2. Método grid() . . . . . . . . . . . . . . . . . . 248
n
n10.5.3. Método place() . . . . . . . .. . . . . . . . . . 249
n
n10.5.4. Conclusión del uso de layouts . . . . . 251
n
n10.6. Ejemplo calculadora . . . . . . . . . . . . . . 251
n
n10.7. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . 255
n
n
n
n
11.Introducción a la graficación en Python 257
n
n11.1. Introducción . . . . . .. . . . . . . . . . . . . . . . 258
n
n11.2. Creación de gráficas sencillas . . . . . . . 258
n
n11.2.1. Gráfica de líneas . . . . . . . . . . . . . . . . 259
n
n11.2.2. Gráfica de barras . . . . . . . . . . . . . . . 260
n
n11.2.3. Gráfica de dispersión . . . . . .. . . . . . . 261
n
n11.2.4. Gráfica de pastel . . . . . . . . . . . . . . . . 262
n
n11.3. Subplots: múltiples gráficas en una
n
nfigura . 264
n
n11.4. Gráfica de superficie 3D . . . . . . . .. . . . 266
n
n11.5. Ejemplo: Gráfica de una ecuación . . .. 268
n
n11.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . 272
n
n
n
n
12.Dos ejemplos selectos aplicados a Ciencias en Computación 275
n
n12.1. Introducción . . . . . . . . . . . . . . . . . . . . . 276
n
n12.2. Movimientos mínimos de un caballo en el tablero de ajedrez . .. . . . . . . . . . . . . . . . . . . . 276
n
n12.2.1. Breve introducción a los grafos . . . . .278
n
n12.2.2. Breve introducción a las clases en Python . . . . 279
n
n12.2.3. Representación de un grafo con clases de Python 280
n
n12.2.4. Búsqueda en amplitud . . . . . . . . . . . 281
n
n12.2.5. Solución al ejemplo de esta sección. 283
n
n12.3. Reconocedor de palabras . . .. . . . . . . . 287
n
n12.3.1. Introducción . . . . . . . . . .. . . . . . . . . . 287
n
n12.3.2. Autómatas Finitos Deterministas . . 288
n
n12.3.3. Solución al reconocedor de palabras 290
n
n
n
n - Instalación de Spyder, Python y Visual Studio Code 295
n
nA.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 296
n
nA.2. IDE Spyder . . . . . .. . . . . . . . . . . . . . . . . . 296
n
nA.2.1. Instalación de Spyder . . . . . . . . . . . . 296
n
nA.2.2. Ejecución de programas . . . . . . . . . . . 299
n
nA.3. Instalación de Python . . . . . . . . . . . . . . 302
n
nA.4. Visual Studio Code . . . . . . . . . . . . . . . . . 304
n
nA.4.1. Instalación de VS Code . . . . . . . . . . . . 304
n
nA.4.2. Configuración básica para usar Python en Visual Studio Code . . . . . . . . . . . . . . . . . . . . . 307
n
nA.4.3. Ejecución de programas . . . . . . . . . . . 307
n
n
n
n - Instalación del paquete matplotlib 315
n
nB.1. Introducción . . . .. . . . . . . . . . . . . . . . . . . 316
n
nB.2. MSVC Runtime . .. . . . . . . . . . . . . . . . . . . 316
n
nB.3. Entornos virtuales . . . . . . . . . . . . . . . . . 316
n
nB.3.1. Creación de entornos virtuales . . . .. . 317
n
nB.4. Instalación de matplotlib . . . . . . . . . . . . 318
n
nB.5. Ejecución de un programa de ejemplo . 318
n
n
n
n
Bibliografía 321
n
n
n
n
Índice analítico 323
n
n
n
n
n
n
n
n
n
n
9786075764801
Sinopsis del producto
Título: Programación con Python
n
nSubtítulo: Curso para Ciencias e Ingeniería
n
nISBN: 9786075764801
n
nISBN ebook: 9786075764818
n
nAutor: Alberto Lira, Roberto Enrique
n
nEdición 1ra.
n
nAño: 2026
n
nEditorial: Alfaomega
n
nEncuadernación: Rústica
n
nMedida: 150 x 220 mm.
n
nPáginas: 342
n
nLomo:13,8 mm
n
nPeso: 690gr
n
nColores interior: Uno
n
nIdioma: español
n
nNivel: Intermedio
n
nÁrea: Tecnología
n
nSubárea: Programación
n
nEste libro de texto está diseñado para los cursos de programación que se imparten en las áreas de ciencias básicas e ingeniería, y se destaca por su detallada exposición de la teoría y por la sistemática presentación de ejemplos de aplicación de la misma. Además de presentar los fundamentos tanto de algoritmos como de Python, incluye la exposición de los siguientes temas: Estructuras de control. Cadenas de caracteres. Listas, tuplas, diccionarios y conjuntos. Funciones. Arreglos. Manejo de excepciones. Introducción a Tkinter. Graficación con Python. Finalmente en los apéndices se describe la instalación de Spyder, Python y Visual Studio Code así como del paquete Matplotlib.
n
nRoberto Enrique Alberto Lira
n
nEs licenciado en computación por la Universidad Juárez Autónoma de Tabasco y maestro en ciencias en computación por el Centro de Investigación y de Estudios Avanzados del Instituto Politécnico Nacional con la tesis “Mecanismo de remodelación semi-plástica adaptativa para interfaces colaborativas”. En sus más de 10 años de experiencia profesional ha impartido varios cursos relacionados con ciencias en computación en diversas carreras de instituciones públicas en el país. Por mencionar algunas instituciones: Escuela Superior de Cómputo del Instituto Politécnico Nacional (ESCOM I.P.N) y Universidad Juárez Autónoma de Tabasco. En esta última institución participó en la comisión académica de acreditación de la Licenciatura en Ciencias en Computación ante el Consejo Nacional de Acreditación en Informática y Computación, A. C.
n
nPrefacio XIII
n
nConvenciones XV
n
n
n
n - Fundamentos de Python 1
n
n1.1. Introducción . . . . . . . .. . . . . . . . . . . . . . . . 2
n
n1.2. Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . 2
n
n1.3. Identificadores . . . . . .. . . . . . . . . . . . . . . . 3
n
n1.3.1. Constante . . . . . . . . . . . . . . . . . . . . . . 3
n
n1.3.2. Variables . . . . . . . . . . . . . . . . . . . . . . 4
n
n1.4. Python . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
n
n1.4.1. El zen de Python . . . . . . . . . . . . . . . . . . 6
n
n1.4.2. Variables . . . . . . . . . . . . . . . . . . . . . . 7
n
n1.4.3. Operadores . . . . . . . . . . . . . . . . . . . . . 8
n
n1.4.4. Jerarquía de operadores . . . . . . . . . . 12
n
n1.4.5. Palabras reservadas . . . . . . . . . . . . . . 14
n
n1.4.6. Comentarios . . . . . . . . . . . . . . . . . . . . 14
n
n1.4.7. Breve introducción a las funciones en Python . . 15
n
n1.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . 17
n
n
n
n - Estructuras de control 21
n
n2.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 22
n
n2.2. Estructuras secuenciales . . . . . . . . . . . . 22
n
n2.2.1. Ejemplo: Suma de dos números . . . . 23
n
n2.2.2. Ejemplo: Perímetro de un rectángulo .23
n
n2.2.3. Ejemplo: Cálculo del índice de masa corporal (IMC) . . . . . . . . . . . . . . 24
n
n2.2.4. Ejemplo: Convierte temperatura de Celsius a Fahrenheit . . . . . . . . . . . . . . . . . . . 25
n
n2.2.5. Ejemplo: Cálculo de oxígeno en una reacción química . . . . . . . . . . . . . . . . . . . . . . 26
n
n2.3. Estructuras selectivas . . . . . . . . . . . . . . 27
n
n2.3.1. Ejemplo: Mayor de edad . . . . . . . . . . 28
n
n2.3.2. Ejemplo: Simulando el operador and ..28
n
n2.3.3. Ejemplo: Mezcla de concreto . . . . . . . 30
n
n2.3.4. Ejemplo: Tienda de celulares . . . . . . . 31
n
n2.3.5. Ejemplo: Clasificación de pH . . . . . . . 33
n
n2.3.6. Ejemplo: Calculadora básica . . . . . . . . 34
n
n2.4. Estructuras repetitivas . . . . . . . . .. . . . . 35
n
n2.4.1. Ejemplo: Fibonacci . . . . . . . .. . . . . . . 37
n
n2.4.2. Ejemplo: Número primo . . . . . . . . . . 39
n
n2.4.3. Ejemplo: Máximo común divisor . . ... 41
n
n2.4.4. Ejemplo: Movimiento de un péndulo simple . . . 43
n
n2.4.5. Ejemplo: Dibujando triángulo numérico . 46
n
n2.4.6. Instrucciones: break y continue . . . . . .47
n
n2.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . 49
n
n
n
n - Cadenas 53
n
n3.1. Introducción . . . . . . . . . . . . . . .. . . . . . . . 54
n
n3.2. Índices y slices . . . . . . . . . . . . . . . . . . . . 54
n
n3.3. Longitud de una cadena . . . . . . . . . . . . . 57
n
n3.4. Métodos para cadenas . . . . . . . . . . . . . . 58
n
n3.4.1. Método upper . . . . . . . . . . . . . . . . . . . 58
n
n3.4.2. Método lower . . . . . . . . . . . . . . . . . . . . 58
n
n3.4.3. Método count . . . . . . . . . . . . . . . . . . . . 59
n
n3.4.4. Método find . . . . . . . . . . . . . . . . . . . . . 59
n
n3.4.5. Método islower . . . . . . . . . . . . . . . . . . . 60
n
n3.4.6. Método startswith . . . . . . . . . . . . . . . . 60
n
n3.4.7. Método endswith . . . . . . . . . . . . . . . . . 60
n
n3.4.8. Método split . . . . . . . . . . . . . . . . . . . . 61
n
n3.4.9. Método join . . . . . . . . . . . . . . . . . . . . . 61
n
n3.4.10. Método replace . . . .. . . . . . . . . . . . . . 62
n
n3.4.11. Método isdigit . . . . . . . . . . . . . . . . . . . 62
n
n3.5. Operador in en cadenas . . . . . . . .. . . . . . 62
n
n3.6. Recorrido de una cadena . . . . . . . . . .. . . 63
n
n3.7. Ejemplo: Caracteres duplicados . . . . . . . 64
n
n3.8. Ejemplo: Eliminando vocales . . . . . . . . . . 65
n
n3.9. Ejemplo: Palíndromos . . . . . . . . . . . . 66
n
n3.10. Ejemplo: Cuenta dígitos . . . . . . . . . . . . 67
n
n3.11. Ejemplo: Cálculo de longitud de una cadena cinemática 68
n
n3.12. Ejemplo: Clasificación de materiales por dureza . . . . . 70
n
n3.13. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . 72
n
n
n
n - Listas, tuplas, diccionarios y conjuntos 75
n
n4.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 76
n
n4.2. Listas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
n
n4.2.1. Manejo de listas . . . . . . . . . . . . . . . . . . 77
n
n4.2.2. Ejemplo: Sumar elementos de una lista . . . 87
n
n4.2.3. Ejemplo: Ordenar palabras por tamaño . . . . . 88
n
n4.2.4. Ejemplo: Encontrar el k-ésimo elemento más grande de una lista . .89
n
n4.2.5. Ejemplo: Control de calidad en una línea de producción . . . . . . . . . . . . . . . . . . . . . . 90
n
n4.3. Tuplas . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
n
n4.3.1. Manejo de tuplas . . . . . . . . . . . . . . . . . 92
n
n4.3.2. Ejemplo: Acceso a elementos de una tupla . . . . 96
n
n4.3.3. Ejemplo: Encontrar el valor máximo y mínimo en una tupla . . . . . . . . . . . . . . . . . . . . 97
n
n4.3.4. Ejemplo: Desempaquetar tuplas . . . . . 98
n
n4.4. Diccionarios . . . . . . . . . . . . . . . . . . . . . . . 98
n
n4.4.1. Manejo de diccionarios . . . . . . . . . . . . 99
n
n4.4.2. Ejemplo: Contar frecuencia de palabras en texto 106
n
n4.4.3. Ejemplo: Libros más vendidos . . . . . . 108
n
n4.4.4. Ejemplo: Mapa curricular de una carrera . . . 108
n
n4.4.5. Ejemplo: Seguimiento de la calidad del aire . . . 110
n
n4.5. Conjuntos . . . . . . . . . . . . . . . . . . . . . . . . 112
n
n4.5.1. Manejo de conjuntos . . . . . . . . . . . . . 112
n
n4.5.2. Ejemplo: Eliminar elementos duplicados . . . . . 118
n
n4.5.3. Ejemplo: Intereses comunes . . . . . . . 119
n
n4.5.4. Ejemplo: Asignaturas no comunes . . . 120
n
n4.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . 121
n
n
n
n - Funciones 125
n
n5.1. Introducción . . . . . . . . . . . . . . . . . .. . . . . 126
n
n5.2. Argumentos y parámetros . . . . . . . . . . . 126
n
n5.3. Tipos de argumentos . . . . . . . . . . . . . . . 127
n
n5.4. Funciones recursivas . . . .. . . . . . . . . . . . 129
n
n5.4.1. Función recursiva sin retorno . . . . . . . 130
n
n5.4.2. Función recursiva con retorno . . . . . 131
n
n5.4.3. Ejemplo: Números de Catalan . . . . . . 132
n
n5.5. Funciones lambda . . . . . . . . . . . . . . . . . . 133
n
n5.6. Funciones de orden superior . . . . . . . . . 134
n
n5.6.1. map . . . . . . . . . . . . . . . . . . . . . . . . 134
n
n5.6.2. filter . . . . . . . . . . . . . . . . . . . . . . . . . 135
n
n5.7. Ejemplo: Convierte cadenas a enteros . 136
n
n5.8. Ejemplo: Celsius a Fahrenheit . . . . . . . . 136
n
n5.9. Ejemplo: Filtrar palabras por tamaño ... 137
n
n5.10. Ejemplo: Filtrar palíndromos . . . . . . . . 138
n
n5.11. Ejemplo: Torres de Hanoi . . . . . . . . .. . 139
n
n5.12. Ejercicios . . . . .. . . . . . . . . . . . . . . . . . . 141
n
n
n
n - Arreglos 145
n
n6.1. Introducción . . . . . . . . . . . . . . . . . . . . . 146
n
n6.2. Arreglos de una dimensión . . . . . .. . . . . 146
n
n6.2.1. Ejemplo: Histograma . . . . . . . . . . . . . . 147
n
n6.2.2. Ejemplo: Cálculo de torque en un sistema de fuerzas . . . . . . . . . . . . . . . . . . . . . . . . 148
n
n6.3. Arreglos de dos dimensiones . . . . . . . . . 150
n
n6.3.1. Recorrido de arreglos de dos dimensiones . 150
n
n6.3.2. Ejemplo: Calculo de la moda de una matriz . . . 153
n
n6.3.3. Ejemplo: Triángulo de Pascal . . . . . . . 154
n
n6.3.4. Ejemplo: Simulando el juego de las torres de Hanoi 156
n
n6.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . 163
n
n
n
n - Algoritmos y técnicas de programación avanzada 167
n
n7.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 168
n
n7.2. Técnica voraz . . . . . . . . . . . . . .. . . . . . . 168
n
n7.2.1. Ejemplo: Cambio de monedas . . . . . . 169
n
n7.2.2. Ejemplo: Selección de actividades . . . 171
n
n7.3. Backtracking . . . . . . . . . .. . . . . . . . . . . . . 173
n
n7.3.1. Ejemplo: Sudoku . . . . .. . . . . . . . . . . . . 173
n
n7.3.2. Ejemplo: Resolviendo el juego de palabras cruzadas . . . . . . . . . . . . . . . . . . . . . 178
n
n7.3.3. Ejemplo: Permutaciones . . . . . . . . . . . 181
n
n7.4. Programación dinámica . . . . . . . . . . . . . 184
n
n7.4.1. Ejemplo: Cambio de monedas . . . . . . 185
n
n7.4.2. Ejemplo: Sucuencia Fibonacci . . . . . . 187
n
n7.5. Ejercicios . . . . . . . . . . . . . .. . . . . . . . . . . 189
n
n
n
n
n
n - Manejo de excepciones en Python 193
n
n8.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 194
n
n8.2. Bloque try y except . . . . . . . . . . . . . . . . . 195
n
n8.3. Excepciones más comunes en Python .. 196
n
n8.4. Múltiples excepciones . . . . . . . . . . . . . . 202
n
n8.5. Instrucción else en excepciones . . . . .. . 202
n
n8.6. Instrucción finally . . . . . . . . . . . . . . . . . 203
n
n8.7. Raising exceptions . . . . . . . . . . .. . . . . . . 204
n
n8.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . 205
n
n
n
n - Archivos en Python 209
n
n9.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 210
n
n9.2. Archivos de texto .. . . . . . . . . . . . . . . . . . 211
n
n9.2.1. Abrir y cerrar archivos . . . . . . . . . . . . . 211
n
n9.2.2. Lectura de archivos . . . . . . . . . . . . . . . 212
n
n9.2.3. Escritura en archivos . . . . . . . . . . . . . . 215
n
n9.3. Archivos binarios . . . . . . . . . . . . . . . . . . 216
n
n9.4. Moverse dentro de un archivo . . . . . . . 218
n
n9.4.1. Método tell . . . . . . . . . . . . . . . . . . . . . 221
n
n9.5. Lectura y Escritura en Archivos CSV . . 222
n
n9.6. Lectura y Escritura de Archivos JSON . . 225
n
n9.7. Manejo de excepciones en archivos . . 228
n
n9.8. Ejercicios . . . . . . . . . . . . . . . . . . . . . . .. . 229
n
n
n
n
10.Introducción a la librería Tkinter 233
n
n10.1. Introducción . . . . . . . . . . . . . . . . . . . . . 234
n
n10.2. Ventana principal . . . . . . . . . . . . . . . . . 235
n
n10.2.1. Personalización de la ventana . . . . . 236
n
n10.3. Widgets principales . . . . . . . . . . .. . . . . 238
n
n10.4. Introducción a los menús en Tkinter .. 243
n
n10.5. Organización de Widgets (Layout) . . . 246
n
n10.5.1. Método pack() . . . . . . . . . . . . . . . . . 246
n
n10.5.2. Método grid() . . . . . . . . . . . . . . . . . . 248
n
n10.5.3. Método place() . . . . . . . .. . . . . . . . . . 249
n
n10.5.4. Conclusión del uso de layouts . . . . . 251
n
n10.6. Ejemplo calculadora . . . . . . . . . . . . . . 251
n
n10.7. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . 255
n
n
n
n
11.Introducción a la graficación en Python 257
n
n11.1. Introducción . . . . . .. . . . . . . . . . . . . . . . 258
n
n11.2. Creación de gráficas sencillas . . . . . . . 258
n
n11.2.1. Gráfica de líneas . . . . . . . . . . . . . . . . 259
n
n11.2.2. Gráfica de barras . . . . . . . . . . . . . . . 260
n
n11.2.3. Gráfica de dispersión . . . . . .. . . . . . . 261
n
n11.2.4. Gráfica de pastel . . . . . . . . . . . . . . . . 262
n
n11.3. Subplots: múltiples gráficas en una
n
nfigura . 264
n
n11.4. Gráfica de superficie 3D . . . . . . . .. . . . 266
n
n11.5. Ejemplo: Gráfica de una ecuación . . .. 268
n
n11.6. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . 272
n
n
n
n
12.Dos ejemplos selectos aplicados a Ciencias en Computación 275
n
n12.1. Introducción . . . . . . . . . . . . . . . . . . . . . 276
n
n12.2. Movimientos mínimos de un caballo en el tablero de ajedrez . .. . . . . . . . . . . . . . . . . . . . 276
n
n12.2.1. Breve introducción a los grafos . . . . .278
n
n12.2.2. Breve introducción a las clases en Python . . . . 279
n
n12.2.3. Representación de un grafo con clases de Python 280
n
n12.2.4. Búsqueda en amplitud . . . . . . . . . . . 281
n
n12.2.5. Solución al ejemplo de esta sección. 283
n
n12.3. Reconocedor de palabras . . .. . . . . . . . 287
n
n12.3.1. Introducción . . . . . . . . . .. . . . . . . . . . 287
n
n12.3.2. Autómatas Finitos Deterministas . . 288
n
n12.3.3. Solución al reconocedor de palabras 290
n
n
n
n - Instalación de Spyder, Python y Visual Studio Code 295
n
nA.1. Introducción . . . . . . . . . . . . . . . . . . . . . . 296
n
nA.2. IDE Spyder . . . . . .. . . . . . . . . . . . . . . . . . 296
n
nA.2.1. Instalación de Spyder . . . . . . . . . . . . 296
n
nA.2.2. Ejecución de programas . . . . . . . . . . . 299
n
nA.3. Instalación de Python . . . . . . . . . . . . . . 302
n
nA.4. Visual Studio Code . . . . . . . . . . . . . . . . . 304
n
nA.4.1. Instalación de VS Code . . . . . . . . . . . . 304
n
nA.4.2. Configuración básica para usar Python en Visual Studio Code . . . . . . . . . . . . . . . . . . . . . 307
n
nA.4.3. Ejecución de programas . . . . . . . . . . . 307
n
n
n
n - Instalación del paquete matplotlib 315
n
nB.1. Introducción . . . .. . . . . . . . . . . . . . . . . . . 316
n
nB.2. MSVC Runtime . .. . . . . . . . . . . . . . . . . . . 316
n
nB.3. Entornos virtuales . . . . . . . . . . . . . . . . . 316
n
nB.3.1. Creación de entornos virtuales . . . .. . 317
n
nB.4. Instalación de matplotlib . . . . . . . . . . . . 318
n
nB.5. Ejecución de un programa de ejemplo . 318
n
n
n
n
Bibliografía 321
n
n
n
n
Índice analítico 323
n
n
n
n
n
n
n
n
n
n
9786075764801
Valoraciones
No hay valoraciones aún.