EJERCICIOS SELECCIONADOS
The Python Wookbook
Ben Stephenson
The Python Wookbook
Ben Stephenson
EJERCICIO 1 - Calcular la hipotenusa
Escribe una función que tome las longitudes de los dos lados más cortos de un triángulo rectángulo como sus parámetros. Devuelve la hipotenusa del triángulo, calculada mediante el teorema de Pitágoras, como resultado de la función. Incluya un programa principal que lea las longitudes de los lados más cortos de un triángulo rectángulo del usuario, use su función para calcular la longitud de la hipotenusa y muestre el resultado.
EJERCICIO 2 -
Escriba una función que tome tres números como parámetros y devuelva el valor de la mediana de esos parámetros como su resultado. Incluya un programa principal que lea tres valores del usuario y muestre su mediana.
Sugerencia: el valor de la mediana es el medio de los tres valores cuando se clasifican en orden ascendente. Se puede encontrar usando sentencias if, o con un poco de creatividad matemática.
EJERCICIO 3 - Centrar una cadena en la ventana de terminal
Escriba una función que tome una cadena, s, como primer parámetro, y el ancho de la ventana en caracteres, w, como segundo parámetro. Su función devolverá un nuevo cadena que incluye los espacios iniciales necesarios para que s quede centrado en la ventana cuando se imprime la nueva cadena. La nueva cuerda debe construirse en la siguiente manera:
Si la longitud de s es mayor o igual que el ancho de la ventana, entonces s debería ser devuelto.
Si la longitud de s es menor que el ancho de la ventana, entonces una cadena que contiene (len(s) - w) // Se deben devolver 2 espacios seguidos de s.
Escriba un programa principal que demuestre su función mostrando múltiples cuerdas centradas en la ventana.
EJERCICIO 4 - ¿Es un triángulo válido?
Si tiene 3 pajitas, posiblemente de diferentes longitudes, puede que sea posible o no colocarlos de manera que formen un triángulo cuando sus extremos se toquen. Por ejemplo, si todas las pajitas tienen una longitud de 6 centímetros, entonces se pueden construir fácilmente un triángulo equilátero usándolos. Sin embargo, si una pajita mide 6 centímetros de largo, mientras los otros dos miden cada uno sólo 2 centímetros de largo, entonces no se puede formar un triángulo. En general, si una longitud es mayor o igual a la suma de las otras dos, entonces las longitudes no se pueden usar para formar un triángulo. De lo contrario pueden formar un triángulo.
Escribe una función que determine si tres longitudes pueden formar un triángulo. La función tomará 3 parámetros y devolverá un resultado booleano. Si alguna de las longitudes son menores o iguales a 0, entonces su función debería devolver False. De lo contrario debe determinar si las longitudes se pueden usar o no para formar un triángulo usando el método descrito en el párrafo anterior y devolver el resultado apropiado.
Además, escriba un programa que lea 3 longitudes del usuario y demuestre la comportamiento de su función.
Solución
En este ejercicio escribirás una función llamada isInteger que determina si los caracteres de una cadena representan o no un número entero válido. Cuando se determina si una cadena representa un número entero, debe ignorar cualquier valor inicial o final espacio en blanco. Una vez que se ignora este espacio en blanco, una cadena representa un número entero si su longitud es al menos uno y solo contiene dígitos, o si su primer carácter es + o - y el primer carácter va seguido de uno o más caracteres, todos los cuales son dígitos. Escriba un programa principal que lea una cadena del usuario e informe si no, representa un número entero.
Sugerencia: puede encontrar los métodos lstrip, rstrip y/o strip para cadenas útil al completar este ejercicio. La documentación para estos métodos es disponible en linea.
Un número primo es un número entero mayor que uno que sólo es divisible por uno y por sí mismo. Escribe una función que determine si su parámetro es primo o no, devolviendo True si lo es y False en caso contrario. Escribe un programa principal que lea un número entero del usuario y muestra un mensaje indicando si es principal o no.
En este ejercicio creará una función llamada nextPrime (o siguiente_primo) que busca y devuelve el primer número primo mayor que algún número entero, n. El valor de n se pasará a la función como su único parámetro. Incluir un programa principal que lea un número entero de al usuario y muestra el primer número primo mayor que el valor ingresado. Importar y utilice su solución al Ejercicio 7 mientras completa este ejercicio.
EJERCICIO 9 - Contraseña aleatoria.
Escribe una función que genere una contraseña aleatoria. La contraseña debe tener una longitud aleatoria de entre 7 y 10 caracteres. Cada carácter debe seleccionarse aleatoriamente de las posiciones 33 a 126 en la tabla ASCII. Tu función no tomará cualquier parámetro. Devolverá la contraseña generada aleatoriamente como único resultado. Muestra la contraseña generada aleatoriamente en el programa principal de tu archivo.
Sugerencia: probablemente encontrará útil la función (chr) para realizar este ejercicio. La información detallada sobre esta función está disponible en línea.
EJERCICIO 11 - Verificar una contraseña.
En este ejercicio, escribirá una función que determine si una contraseña es buena o no. Definiremos una buena contraseña como aquella que tenga al menos 8 caracteres y contenga al menos una letra mayúscula, al menos una letra minúscula y al menos un número. Su función debería devolver True si la contraseña que se le pasó como único parámetro es buena. De lo contrario debería devolver False. Incluir un programa principal que lea una contraseña del usuario e informe si es buena o no.
EJERCICIO 12 - Buena contraseña aleatoria.
Utilizando sus soluciones a los ejercicios 9 y 11, escriba un programa que genere una buena contraseña aleatoria y la muestre. Cuente y muestre el número de intentos. que eran necesarios antes de generar una buena contraseña. Estructura tu solución para que importe las funciones que escribiste anteriormente y luego las llame desde una función llamada main en el archivo que creas para este ejercicio.
Solución
EJERCICIO 14 -
Solución
EJERCICIO 15 -
Solución
EJERCICIO 16 -
Solución
EJERCICIO 17 -
EJERCICIO 18 -
Solución
EJERCICIO 19 -
Solución
EJERCICIO 20 -
Solución
EJERCICIO 21 -
Solución
EJERCICIO 22 -
Solución
EJERCICIO 23 -
Solución