Aprender A Programar en Python
Aprender A Programar en Python
Aprender A Programar en Python
mi_valor = 5
Un identificador o variable debe estar formado por letras minúsculas, mayúsculas, dígitos y/o el
carácter de subrayado (_), con una restricción: que el primer carácter no sea un dígito; y además
no puede coincidir con una palabra reservada o palabra clave.
El tipo de datos es lo que define lo que se va a almacenar en dicha variable. Los tipos de datos
pueden ser:
Numéricos, y dentro de este están los enteros y en coma flotante, es decir real con
decimales.
Cadenas de caracteres.
Lógicos o también llamados booleanos.
mi_entero = 5
mi_cadena = “En un lugar de la Mancha de cuyo nombre no quiero acordarme” #observar que
la cadena debe estar encerrada entre comillas dobles o simples
mi_booleano = True
Como indica su nombre, a una variable se le puede volver a asignar un nuevo valor el número
de veces que se considere necesario.
mi_entero = 3
Hay que tener claro el sistema de tipo de cada lenguaje. El chequeo de la tipificación de los datos
puede ocurrir tanto en la compilación como en la ejecución. Los tipados existentes son:
Si un lenguaje impone fuertemente las reglas de tipificación (es decir que sólo permite las
conversiones de tipo de dato automáticas que no hagan perder información), se le denomina
como fuertemente tipado; si no, débilmente tipado.
El tipado estático busca errores en los tipos de datos durante la compilación y esto debería
incrementar la fiabilidad de los programas procesados.
1
Otro apartado a tener claro es el concepto de lenguaje compilado versus lenguaje interpretado.
Lenguaje compilado es aquel que una vez escrito el programa, éste debe ser traducido
a partir de su código fuente por medio de un compilador a un archivo ejecutable para
una determinada plataforma. Los programas compilados tienden a ser más rápidos que
los traducidos en tiempo de ejecución, aunque cada vez el proceso de traducción en los
interpretados están empezando a reducir esta brecha.
Lenguaje interpretado es aquel en el que las instrucciones se traducen o interpretan una
a una en tiempo de ejecución a un lenguaje intermedio o lenguaje máquina o a través
de una máquina virtual, y solía ser más lentos que los lenguajes compilados.
Existen 2 tipos de comentarios, los que ocupan una sola línea y los que pueden ocupar varias
líneas
Los operadores aritméticos toman valores numéricos (literales o variables) como operandos y
devuelve un solo valor numérico. Los operadores aritméticos normales son:
1. Suma (+)
2. Resta (-)
3. Multiplicación (*)
4. División (/)
5. Exponenciación (**)
6. Módulo (%)
7. División baja - Devuelve el entero de la división (//)
8. Operadores unarios (+ y -)
variable = 9
resultado = variable / 3
print(resultado)
Recordar la precedencia que va de izquierda a derecha dentro de los operadores aritméticos es:
exponenciación, operadores unarios, multiplicación/división/módulo y suma/resta; y que la
misma puede ser alterada por medio de paréntesis y corchetes.
2
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
I. ¿Qué resultados se obtendrán al evaluar las siguientes expresiones Python? Dibuja el árbol
sintáctico de cada una de ellas, calcula a mano el valor resultante de cada expresión y
comprueba, con la ayuda del ordenador, si tu resultado es correcto.
a) 2 + 3 + 1 + 2 b) 2 + 3 * 1 + 2 c) (2 + 3) * 1 + 2
d) (2 + 3) * (1 + 2) e) +---6 f) -+-+6
II. Traduce las siguientes expresiones matemáticas a Python y evalúalas. Trata de utilizar el
menor número de paréntesis posible.
4+6
a) 2 + (3 · (6/2)) b) c) (4/2)5
2+3
d) (4/2)5+1 e) (−3)2 f) −(32)
(Nota: El resultado de evaluar cada expresión es: a) 11; b) 2; c) 32; d) 64; e) 9; f) −9.)
Árbol sintáctico
..............................................
3
Los operadores de asignación son utilizados para asignar un valor a una variable. Estos
operadores son:
4
Los operadores de comparación se utilizan para comparar dos variables o expresiones y obtener
un resultado Verdadero o Falso (True o False). Estos operadores son:
2 == 2 # el resultado es True
5
Los operadores lógicos u operadores booleanos combinan dos o más condiciones simples y
devuelven un valor Verdadero o Falso (True o False). Existen en Python tres operadores lógicos:
I. “and” (y). Da como resultado el valor True si y sólo si son ciertos sus dos operandos.
II. “or”(o). Proporciona True si cualquiera de sus operandos es True, y False sólo cuando
ambos operandos son False.
III. “not” (no). Es unario, y proporciona el valor True si su operando es False y viceversa.
3 < 4 and 2 + 1 != 5 # el resultado es True ya que ambas condiciones simples son Verdaderas
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
6
7
El tipo de datos cadena pueden usarse para representar información textual: nombres de
personas, nombres de colores, matrículas de coche... Las cadenas también pueden almacenarse
en variables.
nombre = ‘Pablo’
Hay un operador de repetición de cadenas. El símbolo que lo denota es *, el mismo que es usado
para multiplicar enteros y/o flotantes. El operador de repetición necesita dos datos: uno de tipo
cadena y otro de tipo entero. El resultado es la concatenación de la cadena consigo misma tantas
veces como indique el número entero.
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
II. ¿Qué resultados se obtendrán al evaluar las siguientes expresiones y asignaciones Python?
Calcula primero a mano el valor resultante de cada expresión y comprueba, con la ayuda del
ordenador, si tu resultado es correcto.
a) ’a’ * 3 + ’/*’ * 5 + 2 * ’abc’ + ’+’
b) palindromo = ’abcba’
(4 * ’<’ + palindromo + ’>’ * 4) * 2
c) subcadena = ’=’ + ’-’ * 3 + ’=’
’10’ * 5 + 4 * subcadena
d) 2 * ’12’ + ’.’ + ’3’ * 3 + ’e-’ + 4 * ’76’
III. Identifica regularidades en las siguientes cadenas, y escribe expresiones que, partiendo de
subcadenas más cortas y utilizando los operadores de concatenación y repetición,
produzcan las cadenas que se muestran. Introduce variables para formar las expresiones
cuando lo consideres oportuno.
a) ’%%%%%./././<-><->’
b) ’(@)(@)(@)======(@)(@)(@)======’
c) ’asdfasdfasdf=-=-=-=-=-=-=-??????asdfasdf’
d) ’........*****---*****---........*****---*****---’
..............................................
8
El concepto de comparación entre números es algo que resulta familiar porque se ha estudiado
antes en matemáticas. En el caso de las cadenas los operadores == y != el significado está claro:
dos cadenas son iguales si son iguales carácter a carácter, y distintas en caso contrario. Pero en
el caso del resto de comparaciones (mayor, menor,…) se utiliza un criterio de comparación de
cadenas muy natural: el orden alfabético; y cuando contienen caracteres no alfabéticos se utiliza
los códigos ASCII de los caracteres para decidir su orden alfabético.
Para conocer el valor numérico que corresponde a un carácter, se utiliza la función predefinida
ord, a la que se le ha de pasar el carácter en cuestión como argumento.
9
Existen una serie de funciones predefinidas que podemos utilizar en las expresiones. El
argumento o argumentos de una función debe(n) ir encerrado(s) entre paréntesis:
La función float: conversión a flotante. Cuando se le pasa una cadena, float la convierte en el
número flotante que ésta representa.
La función int: conversión a entero. Si recibe un número flotante como argumento, devuelve el
entero que se obtiene eliminando la parte fraccionaria. También acepta como argumento una
cadena.
La función str: conversión a cadena. Recibe un número y devuelve una representación de éste
como cadena. Puede recibir como argumento una cadena, pero en ese caso devuelve como
resultado la misma cadena.
La función round: redondeo. Puede usarse con uno o dos argumentos. Si se usa con un solo
argumento, redondea el número al flotante más próximo cuya parte decimal sea nula. Si recibe
dos argumentos, el segundo indica el número de decimales que deseamos conservar tras el
redondeo.
10
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
I. Calcula con una única expresión el valor absoluto del redondeo de −32. (El resultado es 3.0.)
II. Convierte (en una única expresión) a una cadena el resultado de la división
..............................................
11
Funciones definidas en módulos, Python también proporciona funciones trigonométricas,
logaritmos, etc., pero no están directamente disponibles cuando iniciamos una sesión.
Antes de utilizarlas hemos de indicar a Python que vamos a hacerlo. Para ello, importamos cada
función de un módulo.
Por ejemplo se puede empezar por importar la función seno (sin, del inglés ˂˂sinus˃˃) del
módulo matemático (math), para después poder utilizar la función.
Inicialmente Python no ˂˂sabe˃˃ calcular la función seno. Cuando importamos una función,
Python ˂˂aprende˃˃ su definición y nos permite utilizarla.
12
Los datos de ciertos tipos permiten invocar unas funciones especiales: los denominados
˂˂métodos˃˃.
Un método es una función de un objeto específico. Una función es un fragmento de código que
resuelve un problema particular o que desempeña una tarea específica.
Un método permite, por ejemplo, obtener una versión en minúsculas de la cadena sobre la que
se invoca.
El nombre del método se separa del objeto con un punto. Los paréntesis de apertura y cierre al
final son obligatorios.
Existe otro método, upper (˂˂uppercase˃˃, en inglés, significa ˂˂mayúsculas˃˃), que pasa todos
los caracteres a mayúsculas.
Algunos métodos aceptan parámetros. El método replace, por ejemplo, recibe como argumento
dos cadenas: un patrón y un reemplazo.
El método busca el patrón en la cadena sobre la que se invoca el método y sustituye todas sus
apariciones por la cadena de reemplazo.
13
Un programa de computadora es un conjunto de instrucciones o sentencias que producirán la
ejecución de una determinada tarea. En esencia, un programa es un medio para conseguir un
fin. El fin será probablemente definido como la información necesaria para solucionar un
problema.
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
II. Diseña un programa que, a partir del valor de los dos lados de un rectángulo (4 y 6 metros,
respectivamente), muestre el valor de su perímetro (en metros) y el de su área (en metros
cuadrados).
(El perímetro debe darte 20 metros y el área 24 metros cuadrados.)
..............................................
14
Un programa puede ser considerado como una caja negra. La caja negra o el algoritmo de
resolución, en realidad, es el conjunto de códigos que transforman las entradas del programa
(datos) en salidas (resultados).
Para hacer el cálculo del perímetro y del área de un radio distinto, tal y como se ha realizado el
ejercicio anterior debemos editar el programa y poner el valor deseado al mismo.
Podemos evitar esto y dinamizar el programa mediante la entrada de datos a través del teclado.
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
I. Diseña un programa que pida el valor del lado de un cuadrado y muestre el valor de su
perímetro y el de su área.
(Prueba que tu programa funciona correctamente con este ejemplo: si el lado vale 1.1, el
perímetro será 4.4, y el área 1.21.)
II. Diseña un programa que pida el valor de los dos lados de un rectángulo y muestre el valor
de su perímetro y el de su área.
(Prueba que tu programa funciona correctamente con este ejemplo: si un lado mide 1 y el
otro 5, el perímetro será 12.0, y el área 5.0.)
III. Diseña un programa que pida el valor de la base y la altura de un triángulo y muestre el valor
de su área.
(Prueba que tu programa funciona correctamente con este ejemplo: si la base es 10 y la
altura 100, el área será 500.0.)
IV. Diseña un programa que pida el valor de los tres lados de un triángulo y calcule el valor de
su área y perímetro. Recuerda que el área A de un triángulo puede calcularse a partir de sus
tres lados, a, b y c así: A = √𝑠 (𝑠 − 𝑎)(𝑠 − 𝑏)(𝑠 − 𝑐), donde s = (a + b + c)/2.
(Prueba que tu programa funciona correctamente con este ejemplo: si los lados miden 3, 5
y 7, el perímetro será 15.0 y el área 6.49519052838.)
V. El área A de un triángulo se puede calcular a partir del valor de dos de sus lados, a y b, y del
ángulo θ que éstos forman entre sí con la fórmula A = ½ ab sin(θ). Diseña un programa que
pida al usuario el valor de los dos lados (en metros), el ángulo que estos forman (en grados),
y muestre el valor del área.
(Ten en cuenta que la función sin de Python trabaja en radianes, así que el ángulo que leas
en grados deberás pasarlo a radianes sabiendo que radianes son 180 grados. Prueba que
15
has hecho bien el programa introduciendo los siguientes datos: a = 1, b = 2, θ = 30; el
resultado es 0.5.)
VI. Haz un programa que pida al usuario una cantidad de euros, una tasa de interés y un número
de años. Muestra por pantalla en cuánto se habrá convertido el capital inicial transcurridos
esos años si cada año se aplica la tasa de interés introducida. Recuerda que un capital de C
euros a un interés del x por cien durante n años se convierten en C · (1 + x/100)n euros.
(Prueba tu programa sabiendo que una cantidad de 10 000 € al 4.5% de interés anual se
convierte en 24 117.14 € al cabo de 20 años.)
VII. Haz un programa que pida el nombre de una persona y lo muestre en pantalla repetido 1000
veces, pero dejando un espacio de separación entre aparición y aparición del nombre.
(Utiliza los operadores de concatenación y repetición.)
..............................................
La legibilidad de los programas es clave para hacerlos prácticos por varias razones:
Puede que hayas de seguir trabajando en un proyecto que abandonaste hace tiempo.
Eso supone que tengas que volver a leer lo que escribiste para continuar.
O puede que un programa que ya habías dado por bueno se revele defectuoso unos días
o meses después de ser utilizado a diario, con lo que deberás releer tu programa y
buscar los errores cometidos para corregirlos.
O también es posible que un programa ya escrito y sin defectos deba extenderse para
que se le añada nueva funcionalidad o se adapte a nuevos estándares. Nuevamente
tendrás que volver a leer buena parte del código para introducir los cambios necesarios.
O podría ser el caso de que estuvieses escribiendo programas para demostrar al
profesorado que has alcanzado los objetivos de una asignatura de aprendizaje de la
programación. Seguro que te gustará ver al evaluador contento cuando lea tus
programas y sea capaz de entenderlos.
16
Python trae de serie una librería para la implementación de interfaces gráficas de usuario, esto
es, ofrece a través de una librería la capacidad de crear ventanas, poblarlas con menús, botones,
cajas de texto, etcétera, y definir el comportamiento de estos elementos al interactuar con el
usuario. La librería se llama Tkinter.
Imaginemos una tortuga que lleva un lápiz en la boca (¿?) y está esperando nuestras órdenes
para dibujar sobre un gran papel extendido en el suelo. Le podemos dar órdenes sencillas, del
tipo «apoya el lápiz en el papel», «avanza 100 pasos», «gira 10 grados a la derecha», «levanta el
lápiz».
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
..............................................
17
18
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
I. Modifica el programa para que sea el usuario quien proporcione, mediante el teclado,
el valor del porcentaje de suspensos, aprobados, notables y sobresalientes.
II. Modifica el programa para que sea el usuario quien proporcione, mediante el teclado,
el número de suspensos, aprobados, notables y sobresalientes. (Antes de dibujar el
gráfico de pastel debes convertir esas cantidades en porcentajes).
..............................................
19
La programación estructurada es aquella en la que la estructura de un programa se compone de
3 posibles estructuras lógicas de control:
Las estructuras condicionales son aquellas en las que se toman decisiones a partir de los datos
y/o resultados intermedios y, en función de estos, se ejecuten ciertas sentencias y otras no.
Las estructuras iterativas son aquellas en las que se toman decisiones a partir de los datos y/o
resultados intermedios y, en función de estos, se ejecuten ciertas sentencias más de una vez.
La sentencia condicional “if” es una sentencia especial cuyo significado es: “Al llegar a este
punto, ejecuta esta(s) acción(es) solo si esta condición es cierta”.
En Python las acciones se escriben con un sangrado mayor que el de la línea que contiene la
condición. Estas acciones solo se ejecutan si la condición proporciona como resultado el valor
booleano True.
Las sentencias condicionales pueden anidarse, es decir, aparecer unas dentro de otras.
20
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
I. Indica qué líneas del último programa (y en qué orden) se ejecutarán para cada uno de
los siguientes casos:
1) = 2 y - = 6.
2) = 0 y - = 3.
3) = 0 y - = −3.
4) = 0 y - = 0.
II. Diseña un programa que lea un número flotante por teclado y muestre por pantalla el
mensaje « » solo si el número es menor que cero.
III. Diseña un programa que lea un número flotante por teclado y muestre por pantalla el
mensaje « » solo si el número es mayor o igual que cero.
IV. Diseña un programa que lea la edad de dos personas y diga quién es más joven, la
primera o la segunda. Ten en cuenta que ambas pueden tener la misma edad. En tal
caso, hazlo saber con un mensaje adecuado.
V. Diseña un programa que lea un carácter de teclado y muestre por pantalla el mensaje
«Es paréntesis» solo si el carácter leído es un paréntesis abierto o cerrado.
VI. Diseña un programa que, dado un número entero, muestre por pantalla el mensaje «El
número es par» cuando el número sea par y el mensaje «El número es impar» cuando
sea impar.
(Una pista: un número es par si el resto de dividirlo por 2 es 0, e impar en caso contrario).
VII. Diseña un programa que, dado un número entero, determine si este es el doble de un
número impar. (Ejemplo: 14 es el doble de 7, que es impar). Diseña un programa que,
dados dos números enteros, muestre por pantalla uno
VIII. de estos mensajes: «El segundo es el cuadrado del primero», «El segundo es menor que
el cuadrado del primero» o bien «El segundo es mayor que el cuadrado del primero»,
dependiendo de la verificación de la condición correspondiente al significado de cada
mensaje.
IX. Realiza un programa que calcule el desglose mínimo en billetes y monedas de una
cantidad exacta de euros. Hay billetes de 500, 200, 100, 50, 20, 10 y 5 € y monedas de 2
y 1 €.
Por ejemplo, si deseamos conocer el desglose de 434 €, el programa mostrará por
pantalla el siguiente resultado:
2 billetes de 200 euros.
1 billete de 20 euros.
1 billete de 10 euros.
2 monedas de 2 euros.
(¿Que cómo se efectúa el desglose mínimo? Muy fácil. Empieza por calcular la división
entera entre la cantidad y 500 (el valor de la mayor moneda): 434 entre 500 da 0, así
que no hay billetes de 500 € en el desglose; divide a continuación la cantidad 434 entre
200, cabe a 2 y sobran 34, así que en el desglose hay 2 billetes de 200 €; dividimos a
continuación 34 entre 100 y vemos que no hay ningún billete de 100 € en el desglose
(cabe a 0); como el resto de la última división es 34, pasamos a dividir 34 entre 20 y
vemos que el desglose incluye un billete de 20 € y aún nos faltan 14 € por desglosar. . .).
..............................................
21
Puede ocurrir que se recurra a sentencias condicionales que conducen a ejecutar una acción si
se cumple una condición y a ejecutar otra si esa misma condición no se cumple:
Para este tipo de combinación que es muy frecuente, se ha incorporado a los lenguajes de
programación una forma abreviada que significa lo mismo:
22
Puede que la solución propuesta te parezca extraña y que tú hayas diseñado un programa muy
diferente. Es normal. No existe un único programa para solucionar un problema determinado y
cada persona desarrolla un estilo propio en el diseño de los programas. Si el que se propone
como solución no es igual al tuyo, el tuyo no tiene por qué ser erróneo; quizá solo sea distinto.
Por ejemplo, este otro programa también calcula el máximo de tres números, y es muy diferente
del que se ha propuesto antes:
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
23
IV. Diseña un programa que, dados cinco números enteros, determine cuál de los cuatro
últimos números es más cercano al primero. (Por ejemplo, si el usuario introduce los
números 2, 6, 4, 1 y 10, el programa responderá que el número más cercano al 2 es el
1).
V. Diseña un programa que, dado un número real que debe representar la calificación
numérica de un examen, proporcione la calificación cualitativa correspondiente al
número dado. La calificación cualitativa será una de las siguientes: «Suspenso» (nota
menor que 5), «Aprobado» (nota mayor o igual que 5, pero menor que 7), «Notable»
(nota mayor o igual que 7, pero menor que 9), «Sobresaliente» (nota mayor o igual que
9, pero menor que 10), «Matrícula de Honor» (nota 10).
VI. Diseña un programa que, dado un carácter cualquiera, lo identifique como vocal
minúscula, vocal mayúscula, consonante minúscula, consonante mayúscula u otro tipo
de carácter. (Considera únicamente letras del alfabeto inglés).
..............................................
Cuando estas aprendiendo a programar es lógico que te cueste un gran esfuerzo construir
mentalmente un programa tan complicado, pero posiblemente sea porque sigues una
aproximación equivocada: no debes intentar construir mentalmente todo el programa de una
vez.
Una buena estrategia es plantearse uno mismo el problema con unos datos concretos, resolverlo
a mano con lápiz y papel y hacer un esquema con el orden de las operaciones realizadas y las
decisiones tomadas. Tu primer programa puede pedir los datos de entrada (con input), hacer
los cálculos del mismo modo que tú los hiciste sobre el papel (utilizando variables para los
resultados intermedios, si fuera menester) y mostrar finalmente el resultado del cálculo (con
print).
Una buena práctica es solucionar manualmente unos pocos ejemplos concretos para estar
seguros de que conocemos bien lo que se nos pide y cómo calcularlo. Una vez superada esta
fase, estaremos en condiciones de elaborar un borrador con los pasos que se han de seguir. Es
mejor pensar un rato y diseñar un borrador del algoritmo sobre papel. Cuando se esté muy
seguro de la validez del algoritmo, se podrá implementar en Python y probarlo sobre el
ordenador. Las pruebas con el ordenador siempre ayudarán a encontrar errores.
24
En Python la evaluación de expresiones lógicas tiene algo especial. Observa la condición de este
if:
¿Puede provocar una división por cero? No, nunca. Observa que si a vale cero, el primer término
del or es True. Como la evaluación de una o lógica de True con cualquier otro valor, True o False,
es necesariamente True, Python no evalúa el segundo término y se ahorra así un esfuerzo
innecesario.
Al calcular el resultado de una expresión lógica, Python evalúa (siguiendo las reglas de
asociatividad y precedencia oportunas) lo justo hasta conocer el resultado: cuando el primer
término de un or es cierto, Python acaba y devuelve directamente cierto y cuando el primer
término de un and es falso, Python acaba y devuelve directamente falso. Este modo de
evaluación se conoce como evaluación con cortocircuitos.
25
Python permite una forma compacta de expresar fragmentos de código de la siguiente forma:
26
Python permite indicar que deseamos que se repita un trozo de programa de dos formas
distintas: mediante la sentencia while y mediante la sentencia for. La primera de ellas es más
general, por lo que la estudiaremos en primer lugar.
Que se interpreta como: “Mientras se cumpla esta condición, repite estas acciones”.
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
I. Implementa un programa que muestre todos los múltiplos de 6 entre 6 y 150, ambos
inclusive.
II. Implementa un programa que muestre todos los múltiplos de n entre n y m · n, ambos
inclusive, donde n y m son números introducidos por el usuario.
III. Implementa un programa que muestre todos los números potencia de 2 entre 20 y 230,
ambos inclusive.
..............................................
27
Hay otro tipo de bucle en Python: el bucle for in, que se puede leer como «para todo elemento
de una serie, hacer. . . ». Un bucle for in presenta el siguiente aspecto:
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
..............................................
28
Ciertos bucles se ejecutan un número de veces fijo y conocido a priori. Por ejemplo, al desarrollar
el programa que calcula el sumatorio de los 1000 primeros números utilizamos un bucle que
iteraba exactamente 1000 veces:
Pues bien, podemos expresar de forma compacta este tipo de bucles con un for in siguiendo
este otro patrón:
29
. . . . . . . . . . . . . . . . . . . .E J E R C I C I O S. . . . . . . . . . . . . . . .
I. Haz un programa que calcule el máximo común divisor (mcd) de dos enteros positivos.
El mcd es el número más grande que divide exactamente a ambos números.
II. Haz un programa que calcule el máximo común divisor (mcd) de tres enteros positivos.
El mcd de tres números es el número más grande que divide exactamente a los tres.
..............................................
30
En la mayoría de los lenguajes existen sentencias que permiten romper la ejecución de un bucle
desde cualquier punto del mismo.
La sentencia continue hace que no se continúe con el resto de sentencias del bucle que lo
contiene y que se vuelva a iterar el bucle.
La sentencia break hace que no se continúe con el resto de sentencias del bucle que lo contiene
y que se finalice el mismo.
31