Actualizado el 27 de Septiembre del 2018 (Publicado el 31 de Agosto del 2018)
4.174 visualizaciones desde el 31 de Agosto del 2018
2,4 MB
371 paginas
Creado hace 22a (22/10/2002)
Introducción a la programación
con Python y C
Volumen I: Python
Andrés Marzal
Isabel Gracia
Departamento de Lenguajes y Sistemas Informáticos
Metodología y tecnología de la programación
Ingeniería Técnica en Informática de Gestión (IG04)
Ingeniería Informática (II04)
Universitat Jaume I
c 2002 de Andrés Marzal Varó e Isabel Gracia Luengo. Reservados todos los derechos. Esta ((Edición
Internet)) se puede reproducir con fines autodidactas o para su uso en centros públicos de enseñanza,
exclusivamente. En el segundo caso, únicamente se cargarán al estudiante los costes de reproducción.
La reproducción total o parcial con ánimo de lucro o con cualquier finalidad comercial está estricta-
mente prohibida sin el permiso escrito de los autores.
Índice general
1. Introducción
1.1. Computadores
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Programas y lenguajes de programación . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1. Código de máquina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2. Lenguaje ensamblador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3. ¿Un programa diferente para cada ordenador? . . . . . . . . . . . . . . . . . .
1.2.4. Lenguajes de programación de alto nivel . . . . . . . . . . . . . . . . . . . . .
1.2.5. Compiladores e intérpretes
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.6. Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.7. C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Más allá de los programas: algoritmos
I El lenguaje de programación Python
2. Una calculadora avanzada
2.3. Tipos de datos
2.1. Sesiones interactivas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Expresiones aritméticas
2.2.1. Los operadores aritméticos
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2.2. Errores de tecleo y excepciones . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.1. Enteros y flotantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Variables y asignaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1. Asignaciones con operador . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.2. Variables no inicializadas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5. El tipo de datos cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6. Funciones predefinidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7. Funciones definidas en módulos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.1. El módulo math . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.7.2. Otros módulos de interés
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3. Programas
3.1. El entorno PythonG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Ejecución de programas desde la línea de órdenes Unix . . . . . . . . . . . . . . . . .
3.3. Entrada/salida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.1. Lectura de datos de teclado . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.2. Más sobre la sentencia print . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3.3. Salida con formato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4.1. Algunas claves para aumentar la legibilidad . . . . . . . . . . . . . . . . . . .
3.4.2. Comentarios
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4. Legibilidad de los programas
Volumen I: Python
1
1
2
2
5
5
7
7
8
9
11
17
19
19
20
21
27
28
28
31
34
35
35
37
40
40
41
43
43
46
47
48
49
51
54
55
55
i
ÍNDICE GENERAL
4. Estructuras de control
4.1. Sentencias condicionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1. Un programa de ejemplo: resolución de ecuaciones de primer grado . . . . . .
4.1.2. La sentencia condicional if . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.3. Sentencias condicionales anidadas . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.4. Operadores de comparación . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.5. Otro programa de ejemplo: resolución de ecuaciones de segundo grado . . . .
4.1.6. En caso contrario (else) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.7. Una estrategia para diseñar programas: refinamientos sucesivos . . . . . . . .
4.1.8. Un nuevo refinamiento del programa de ejemplo . . . . . . . . . . . . . . . .
4.1.9. Otro programa de ejemplo: cálculo del máximo de una serie de números . . .
4.1.10. Condiciones compuestas: expresiones lógicas . . . . . . . . . . . . . . . . . . .
4.1.11. Evaluación con cortocircuitos . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.12. Un último problema: cómo implementar menús de usuario . . . . . . . . . . .
4.1.13. Una forma compacta de expresar estructuras condicionales múltiples (elif) .
4.2. Sentencias iterativas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1. La sentencia while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2. Un primer problema de ejemplo: cálculo de sumatorios . . . . . . . . . . . . .
4.2.3. Otro programa de ejemplo: control de requisitos en la entrada . . . . . . . . .
4.2.4. Mejorando el programa de los menús . . . . . . . . . . . . . . . . . . . . . . .
4.2.5. El bucle for-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.6. for-in como forma compacta de ciertos while . . . . . . . . . . . . . . . . .
4.2.7. A vueltas con los bucles: números primos
. . . . . . . . . . . . . . . . . . . .
4.2.8. Rotura de bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.9. Anidamiento de estructuras . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3. Algunos ejemplos gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1. Un graficador de funciones
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.2. Una animación: simulación gravitacional . . . . . . . . . . . . . . . . . . . . .
4.3.3. Un programa interactivo: un videojuego . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4. Una reflexión final
5. Tipos estructurados: secuencias
5.1. Cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.1. Lo que ya sabemos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.2. Escapes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.3. Longitud de una cadena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.4.
Indexación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.5. Recorrido de cadenas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.6. Un ejemplo: un contador de palabras . . . . . . . . . . . . . . . . . . . . . . .
5.1.7. Otro ejemplo: un programa de conversión de binario a decimal
. . . . . . . .
5.1.8. A vueltas con las cadenas: inversión de una cadena . . . . . . . . . . . . . . .
5.1.9. Subcadenas: el operador de corte . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.10. Una aplicación: correo electrónico personalizado
. . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1.11. Referencias a cadenas
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1. El operador is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2. Cosas que, sin darnos cuenta, ya sabemos sobre las listas
. . . . . . . . . . .
5.2.3. Modificación de elementos de listas . . . . . . . . . . . . . . . . . . . . . . . .
5.2.4. Adición de elementos a una lista . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.5. Lectura de listas por teclado . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.6. Borrado de elementos de una lista . . . . . . . . . . . . . . . . . . . . . . . .
5.2.7. Pertenencia de un elemento a una lista . . . . . . . . . . . . . . . . . . . . . .
5.2. Listas
versión 1.02
57
57
57
59
61
62
65
66
69
70
72
75
80
80
82
83
84
87
89
91
94
97
98
101
102
103
104
109
115
125
127
127
127
128
130
131
132
134
139
140
141
144
146
150
151
154
158
159
161
164
166
ii
Introducción a la programación con Python y C
c 2002 de Andrés Marzal e Isabel Gracia
0 ÍNDICE GENERAL
5.2.8. Ordenación de una lista . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3. De cadenas a listas y viceversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4. Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1. Sobre la creación de matrices . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.2. Lectura de matrices
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.3. ¿Qué dimensión tiene una matriz? . . . . . . . . . . . . . . . . . . . . . . . .
5.4.4. Operaciones con matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.5. El juego de la vida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5. Una reflexión final
6. Funciones
6.5. Ejemplos
6.1. Un recordatorio de lo visto hasta el momento y algunas definiciones
6.2. Definición e invocación de funciones
. . . . . . . . .
. . . . . . . . . . . . .
Comentarios de: Introducción a la programación con Python y C (0)
No hay comentarios