Inicio Programación Como programar en Python | Lección 5 – Datos por teclado y ejercicio

Como programar en Python | Lección 5 – Datos por teclado y ejercicio

0
Como programar en Python | Lección 5 – Datos por teclado y ejercicio

Ya vamos por la lección 5, tenemos toda la base para hacer nuestro primer programa y ver que lo que hemos aprendido realmente sirve para algo. Si aún no te has leído la lección 4 sobre funciones no vas a enterarte de una así que vuela a leerla.

Para los que sí la hemos leído vamos a dar un punto más antes de hacer un ejercicio que sirva para algo. Ese punto es recoger datos por teclado (importante para hacer un menú o pasar datos por parte del cliente).

La función input() en Python 3

Si por algo es sencillo python es por simplificar el trabajo y hacerlo rápido. Dentro de python existe una función que se llama input a la que le pasas como parámetro un texto que será el que muestre al usuario. Guardamos lo que meta un usuario a una variable ¡y listo! Vamos con el ejemplo.

# Usamos input. El resultado se guarda como String. edadIntroducida = input("Inserta tu edad")
Lenguaje del código: PHP (php)

Ahora que ya tenemos la herramienta necesaria para pedir que introduzcan un dato por teclado podemos meternos con el ejercicio de la mano

Ejercicio de la mano

Este ejercicio lo vamos a hacer juntos, yo te propondré un ejercicio y cuando creas que lo tienes, miras la solución. Si la miras de primeras eso que vas a dejar de aprender y luego te mandaré al infierno por preguntar cosas que no quisiste hacer.

Requisitos del ejercicio

Haz una calculadora. Dicho así suena fácil, ¿verdad?, ahora vamos a descomponerlo en partes.

  • El programa debe mostrar por pantalla 5 opciones con las operaciones básicas de una calculadora (suma, resta, multiplicación, división y salir), enumeradas del 1 al 5 para facilitar las opciones al usuario.
  • Si un usuario coge una opción que no es, debe pedirla de nuevo hasta que sea una de las 5 opciones.
  • Una vez introducida una opción de la 1 a la 4 debe pedir que se meta el primer número ENTERO
  • Comprobar que es correcto y pedir el segundo número ENTERO.
  • Comprobar que es correcto e imprimir el resultado de la siguiente manera [n1 operador n2 = result] ej: 2*2=4
  • Guardar el resultado en una lista.
  • Al finalizar presionando el número 5 mostrar todos los resultados que se han guardado e imprimir un mensaje que ponga «Te veo en el infierno»

De primeras parece un programa fácil (creo yo). Arranco, meto opción, lo compruebo, pido un número, lo compruebo, pido segundo número, lo compruebo, imprimo resultado, lo guardo y volvemos a empezar.

Como nota, hemos usado la función isdigit() que te dice si una cadena de texto es todo números por lo que nos vale para comprobar números enteros positivos. Puedes obtener más información aqui

################################ # Copyright www.acadehack.com # # Autor: Informatico Malvado # # Quejas: No gracias. # ################################ # Creo una función que recoge dos números # y además verifica que son enteros positivos. def recogeNumero(posicion): # antes de entrar a un while creo una variable # que albergará el número insertado numero = "" # mientras no sea un número, entra dentro while not numero.isdigit(): # pido meter el número numero = input("Introduce el " + posicion + " número: ") # si el número no es un dígito, golpe de remo if not numero.isdigit(): print("Seguro que has introducido algo mal. ¡¡¡¡Un número positivo!!!!") else: # Si es correcto informo a la persona print("Bien, número registrado") # Devuelvo el número transformándolo de paso a entero con el cast int return int(numero) # Creo una función suma def suma(): # Pido que se metan 2 números numero1 = recogeNumero("primer") numero2 = recogeNumero("segundo") # Los sumo resultado = numero1+numero2 # Imprimo con el formato requerido # Usamos el cast str() para convertir los números en string print(str(numero1)+"+"+str(numero2)+"="+str(resultado)) # Devuelvo el resultado para guardarlo en la lista. return resultado def resta(): # Lo mismo que explico arriba pero con resta numero1 = recogeNumero("primer") numero2 = recogeNumero("segundo") resultado = numero1-numero2 print (str(numero1)+"-"+str(numero2)+"="+str(resultado)) return resultado def multiplica(): # Lo mismo que explico arriba pero con multiplicacion numero1 = recogeNumero("primer") numero2 = recogeNumero("segundo") resultado = numero1*numero2 print (str(numero1)+"*"+str(numero2)+"="+str(resultado)) return resultado def divide(): # Lo mismo que explico arriba pero con division numero1 = recogeNumero("primer") numero2 = recogeNumero("segundo") resultado = numero1/numero2 print (str(numero1)+"/"+str(numero2)+"="+str(resultado)) return resultado # Inicio del programa Calculadora # Creo una variable que guardará la opcion elegida y un valor no válido opcionElegida = 0 # Creo una variable resultados que guardará los resultados resultados = [] # Mientras que no se meta el número 5, que siga preguntandpo while opcionElegida != "5": # Hola, que ase, me enseñas el menú. print("[email protected] a la calculadora malvada") print("-----------------------------------") print("Selecciona una opción de las siguientes:") print("1 - SUMA") print("2 - RESTA") print("3 - MULTIPLICA") print("4 - DIVIDE") print("5 - VETE PARA TU CASA") # Recogemos elección opcionElegida = input("Inserta una opción del menú: ") # Ponemos entre comillas el número porque input lo convierte a string. # Si no es una opción válida salta el último caso if opcionElegida == "1": resultados.append(suma()) elif opcionElegida == "2": resultados.append(resta()) elif opcionElegida == "3": resultados.append(multiplica()) elif opcionElegida == "4": resultados.append(divide()) elif opcionElegida !="5": print("Te has liado, que lo se yo. Vuelve a intentarlo") # Adios, te esperamos pronto print("Aquí tiene el recibo de sus respuestas") print(resultados) print("Gracias por usar la calculadora del infierno, le esperamos pronto") # Por el infierno, claro.
Lenguaje del código: PHP (php)

Puedes verlo funcionando en repl.it aquí

¿A que parecía más sencillo?, si os habéis atascado en algún punto o no entendéis algo, tenéis los comentarios o las redes sociales. No seáis [email protected], ¿qué es lo peor que os puede pasar?, que os mande al infierno.

Ejercicios

  • Si has hecho la calculadora te puedes coger el día libre.
    Si no la has hecho o quieres esforzarte, haz una detector que diga si has metido un entero, un float o una string. (No te voy a dar pistas pero te responderé preguntas en las redes sociales o en comentarios)

Conclusiones:

En este ejercicio hemos hecho uso de todo lo que hemos dado anteriormente: bucles (while), condicionales (if, elif), variables, funciones, castings…etc. Es NORMAL que tengas dudas o te sientas al principio un poco [email protected] así que no te angusties. En la próxima lección daremos un paso más allá y daremos operadores lógicos (and, or y nor)

Mejoras

Si crees que se puede mejorar este tutorial puedes dejarme en comentarios tus consejos, trabajo activamente para que los manuales resulten lo más sencillo posible pero también os escucho para mejorarlos.

¿Tienes dudas?
Da igual que seas perro, gato, erizo, [email protected] o gremlin, estaré encantado de escucharte en las redes sociales o en los comentarios.

Si te ha gustado este tutorial un comentario con un gracias ayuda a seguir adelante con estos manuales; dan ánimo y no sientes que estás perdiendo el tiempo escribiendo y dedicando esfuerzos en hacer estas cosas. No te voy a pedir que te suscribas a Youtube ni que me sigas en Facebook o Instagram, un gracias es suficiente.

¿Te sientes MUY [email protected]?

Puedes usar el enlace de Amazon antes de terminar una compra o invitarme a un café en ko-fi, este dinero se usa para mantener el servidor encendido a través del siguiente enlace:

KO-FI Banner