Soluciones de ejercicios – 100 días de Python #3

Soluciones de ejercicios – 100 días de Python #3

Esta página contiene las soluciones para los ejercicios y el proyecto del tercer día del curso.

  1. Puesto que el valor que hay en la variable "numero" es mayor que el de la expresión del if, podemos utilizar el operador ">" o ">=" o "!=". Cualquiera de las tres opciones es válida. Lo que se pide en este y en los siguientes 4 ejercicios es que la expresión del if sea "True".
numero = 10

if numero > 7:
    print("Verdadero.")
  1. Aquí todo lo contrario, el valor de "numero" es menor que el de la expresión del if, por lo que se debe poner un "<" o "<=" o "!=".
numero = 5

if numero < 7:
    print("Verdadero.")
  1. Aquí, es igual por lo tanto, podemos colocar un operador "==".
numero = 7

if numero == 7:
    print("Verdadero.")
  1. Aquí colocamos un "and", puesto que color es igual a verde y forma igual a triangular.
color = "verde"
forma = "triangular"

if color == "verde" and forma == "triangular":
    print("Verdadero.")
else:
    print("Falso.")
  1. En este quinto ejercicio, puedes colocar un "or".
color = "rojo"
forma = "círculo"
tamano = "pequeño"

if color == "rojo" and forma == "círculo" or tamano == "grande":
    print("Verdadero.")
else:
    print("Falso.")

Si has sacado la solución correcta de alguna otra forma, déjamela en los comentarios (si quieres, claro 🙂 ) y así la compartimos para todo el mundo.

  1. La afirmación es verdadera. El bloque else, no lleva expresión. Depende de las expresiones del if y los elif.
  2. La condición se cumple. Se ejecuta el if.
  3. Aquí el error era el else if. En otros lenguajes de programación se escribe así, pero en Python es elif.
  4. En este noveno ejercicio, el error era un poco más difícil de ver. Solo faltan los dos puntos de la expresión del if.
  5. En este último ejercicio, lo que está mal, es la expresión del if. Está puesto un operador de asignación en lugar del de igualdad.
  6. Aquí tienes una posible solución a la calculadora del proyecto número 3 del curso.

¡MUY IMPORTANTE! Este proyecto, se puede hacer mucho mejor con el uso de funciones, tema que todavía no se ha dado en este tercer día. De modo, que esto te servirá para practicar con los condicionales. Una vez lleguemos a las funciones, lo mejoraremos partiendo de esta base.

Primero especificamos un título con un print(). Primer requisito cumplido.

El segundo requisito, es que el usuario pueda elegir una opción antes de pasarle los números. De modo, que he creado un pequeño menú a base de print(). La opción del menú, queda recogida como int() en la variable "eleccion".

Según el valor que haya en la variable, se evalúa con este match. Si no hay conversión de string a int en el input de "eleccion", tendrás que poner los case del match como strings (case "1", case "2"...).

Según la opción, se le dice al usuario lo que ha elegido. Con esto se cumple el tercer requisito.

El cuarto requisito se cumple con la variable "error". Esta está es un valor True por defecto. Si el usuario pone un número de opción no válido, esta variable cambia de valor a False en el case _. De esta forma, ya no le pide seguir con el programa al usuario.

Se solicitan los dos números float (quinto requisito).

En el último match, se realiza la operación con los operandos según lo que hay elegido el usuario. Esto cumple con el sexto requisito.

Como séptimo requisito, tenemos la presentación al usuario. Esto se consigue en este código con el mismo match que realiza las operaciones.

El segundo requisito opcional, era el de redondear los decimales de los resultados a dos dígitos. Esto se hace aplicando round() a las operaciones.

# Se da un título a la calculadora.
print("--- CALCULADORA MEJORADA ---")

# Se le pide al usuario que elija una opción y se evalúa
print("Hola, elija una opción:")
print("1- Suma.")
print("2- Resta.")
print("3- Multiplicación.")
print("4- División.")
print("5- Módulo.")
print("6- Exponente.")

# Se le pide al usuario
eleccion = int(input("Teclee un número y pulse ENTER:\n"))

# Una variable para el control de errores
error = True

# Un match para que el usuario decida la opción
match eleccion:
    case 1:
        print('Ha elegido la opción "suma".')
    case 2:
        print('Ha elegido la opción "resta".')
    case 3:
        print('Ha elegido la opción "multiplicación".')
    case 4:
        print('Ha elegido la opción "división".')
    case 5:
        print('Ha elegido la opción "módulo".')
    case 6:
        print('Ha elegido la opción "exponente".')
    case _:
        print('Error, opción inválida.')
        error = False

# Si el usuario elige un valor del menú, se ejecuta el if, si no, el else
if error:
    # Se solicitan los dos números
    numero_1 = float(input("Especifique el primer operando:\n"))
    numero_2 = float(input("Especifique el segundo operando:\n"))
    
	# Un match indentado que ejecuta solo la operación solicitada
    match eleccion:
        case 1:
            resultado = round(numero_1 + numero_2, 2)
            print(f"El resultado de sumar {numero_1} + {numero_2} es: {resultado}.")
        case 2:
            resultado = round(numero_1 - numero_2, 2)
            print(f"El resultado de restar {numero_1} - {numero_2} es: {resultado}.")
        case 3:
            resultado = round(numero_1 * numero_2, 2)
            print(f"El resultado de multiplicar {numero_1} por {numero_2} es: {resultado}.")
        case 4:
            resultado = round(numero_1 / numero_2, 2)
            print(f"El resultado de dividir {numero_1} entre {numero_2} es: {resultado}.")
        case 5:
            resultado = round(numero_1 % numero_2, 2)
            print(f"El resto de la división de {numero_1} entre {numero_2} es: {resultado}.")
        case 6:
            resultado = round(numero_1 ** numero_2, 2)
            print(f"{numero_1} elevado a {numero_2} es: {resultado}.")
else:
    print("Por favor, vuelva a ejecutar la calculadora.")

4 comentarios en «0»

  1. Esta es mi solución:

    # Se le indica al usuario de que va la calculadora, que seleccione la operación.
    respuesta = input(«—Calculadora para dos números—\n¿Qué operación desea hacer? Introduzca un número de opción:\n1- Suma.\n2- Resta.\n3- Multiplicación.\n4- RestoDeDivisión.\n5- Exponenciación»)
    # Se solicitan los números para realizar el cálculo y se transforman a float
    numero_1=float(input(«introduzca el primer número:\n»))
    numero_2=float(input(«introduzca el segundo número:\n»))

    if respuesta == «1»:
    suma=round(numero_1+numero_2,2)
    print(f»Usted seleccionó 1- Suma y su resultado es: {suma}»)
    elif respuesta == «2»:
    resta=round(numero_1+numero_2,2)
    print(f»Usted seleccionó 2- Resta y su resultado es: {resta}»)
    elif respuesta == «3»:
    multiplicacion=round(numero_1*numero_2,2)
    print(f»Usted seleccionó 3- Multiplicación y su resultado es: {multiplicacion}»)
    elif respuesta == «4»:
    RestoDivision=round(numero_1%numero_2,2)
    print(f»Usted seleccionó 4- RestoDeDivisión y su resultado es: {RestoDivision}»)
    elif respuesta == «5»:
    exponenciacion=round(numero_1**numero_2,2)
    print(f»Usted seleccionó 5- Exponenciación y su resultado es: {exponenciacion}»)
    else:
    print(«Opción no válida (Usted no seleccionó una opción del menú).»)

  2. esta es mi versión, lo unico que no me sale y no se porque es que entre en el segundo bucle el error y vaya al else, despues anda bien

    print(«Calculadora Basica»)

    dato = int(input(«Selecione una opcion de calculo: \n1-Suma \n2-Resta \n3-Multiplicacion \n4-Division\n»))
    error = True
    match dato:
    case 1:
    print(«La opcion selecionada es suma»)
    case 2:
    print(«La opcion selecionada es resta»)
    case 3:
    print(«La opcion selecionada es multiplicación»)
    case 4:
    print(«La opcion selecionada es divivion»)
    case _:
    print(«Opcion invalida»)
    error = False

    if error:

    if dato == 1:
    numero_1 = float(input(«ingrese el primer valor, pero que no sea sea 0:\n»))
    numero_2= float(input(«ingrese el segundo valor:\n»))
    resultado = numero_1 + numero_2
    print(f»El resultado de la suma es {round(resultado,2)}»)
    elif dato == 2:
    numero_1 = float(input(«ingrese el primer valor, pero que no sea sea 0:\n»))
    numero_2= float(input(«ingrese el segundo valor:\n»))
    resultado = numero_1 – numero_2
    print(f»El resultado de la resta es {round(resultado,2)}»)
    elif dato == 3:
    numero_1 = float(input(«ingrese el primer valor, pero que no sea sea 0:\n»))
    numero_2= float(input(«ingrese el segundo valor:\n»))
    resultado = numero_1 * numero_2
    print(f»El resultado de la multiplicacion es {round(resultado,2)}»)
    elif dato == 4:
    numero_1 = float(input(«ingrese el primer valor, pero que no sea sea 0:\n»))
    numero_2= float(input(«ingrese el segundo valor:\n»))
    resultado = numero_1 / numero_2
    print(f»El resultado de la division es {round(resultado,2)}»)
    else:
    print(«Opcion invalida–«)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

curso de Python Entrada anterior Estructuras de control de flujo (if, elif, else) y match (switch) – 100 días de Python #3
curso de Python Entrada siguiente Las listas y tuplas – 100 días de Python #4