Fundamentos de Programación y Python

1

¿Por qué aprender Python?

2

Introducción a Python

3

Conceptos Básicos de Programación

4

Práctica: Te doy la bienvenida a los ejercicios interactivos

5

Manipulación de Cadenas de Texto en Python

6

Enteros, Flotantes y Booleanos

7

Todo lo que Debes Saber sobre print en Python

8

Operaciones Matemáticas en Python

9

Operaciones de Entrada/Salida en Consola

Colección y Procesamiento de Datos en Python

10

Listas

11

Método slice

12

Listas de más dimensiones y Tuplas

13

Aplicación de Matrices

14

Diccionarios

15

Comprehension Lists en Python (CLASE NUEVA)

Control de Flujo en Python

16

Estructuras condicionales

17

Bucles y Control de Iteraciones

18

Generadores e Iteradores

Funciones y Manejo de Excepciones en Python

19

Uso de Funciones en Python

20

Funciones Lambda y Programación Funcional en Python

21

¿Cómo realizar una función recursiva en Python?

22

Manejo de Excepciones y Uso de Pass (CLASE NUEVA)

Programación Orientada a Objetos en Python

23

Fundamentos de Programación Orientada a Objetos en Python

24

Ejercicio Biblioteca con POO

25

Herencia en POO con Python

26

Objetos heredados

27

Los 4 pilares de la programacion orientada a objetos

28

Uso de super() en Python (CLASE NUEVA)

29

Superando los Fundamentos de Programación Orientada a Objetos en Python

Lectura y escritura de archivos

30

Manejo de Archivos .TXT (CLASE NUEVA)

31

Manejo de Archivos CSV (CLASE NUEVA)

32

Manejo de Archivos JSON (CLASE NUEVA)

Biblioteca estándar de Python

33

Biblioteca estándar en Python (CLASE NUEVA)

34

Librería Os, Math y Random (CLASE NUEVA)

35

Librería Statistics y Análisis Estadístico (CLASE NUEVA)

36

Proyecto final: Guerra naval

Conceptos avanzados de Python

37

Recapitulación de lo aprendido hasta ahora

38

Escribir código Pythonico y profesional

39

Comentarios y Docstrings en Python

40

Scope y closures: variables locales y globales

41

Anotaciones de tipo

42

Validación de tipos en métodos

43

Librería Collections y Enumeraciones

Decoradores

44

Decoradores en Python

45

Decoradores anidados y con parámetros

46

Uso de Decoradores en clases y métodos

Métodos y estructura de clases en Python

47

Métodos mágicos

48

Sobrecarga de operadores

49

Implementación de `if __name__ == "__main__":`

50

Metaprogramación en Python

51

Uso de *args y **kwargs

52

Métodos privados y protegidos

53

Gestión avanzada de propiedades

54

Métodos estáticos y de clase avanzados

Programación concurrente y asíncrona

55

Introducción a la concurrencia y paralelismo

56

Threading y multiprocessing en Python

57

Asincronismo con asyncio

58

Asincronismo y concurrencia

Creación de módulos y paquetes

59

Creación de módulos en Python

60

Gestión de paquetes

61

Publicación de paquetes en PyPI

Proyecto final

62

Implementación de un sistema completo

63

Implementación de un Sistema Completo

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Python

Curso de Python

Carli Code

Carli Code

Uso de Funciones en Python

19/63
Recursos

En Python, uno de los principios fundamentales es el de divide y vencerás. Esto se refiere a dividir el código en porciones más pequeñas para facilitar su legibilidad, mantenimiento y reutilización. Las funciones nos permiten encapsular lógica específica, evitando la duplicación de código.

¿Cómo se definen las funciones en Python?

Las funciones en Python se definen utilizando la palabra reservada def, seguida del nombre de la función y los parámetros que representan la información necesaria para su ejecución.

def saludar():
    print("Hola, mundo")

saludar()

¿Cómo se utilizan los parámetros en una función?

Podemos agregar parámetros a una función para que reciba información dinámica. Por ejemplo, para saludar a una persona específica:

def saludar(name):
    print(f"Hola, {name}")

saludar("Carla")

¿Cómo manejar múltiples parámetros en una función?

Las funciones pueden tener múltiples parámetros. Por ejemplo, para saludar con nombre y apellido:

def saludar(name, last_name):
    print(f"Hola, {name} {last_name}")

saludar("Diego", "Antezano")

¿Qué ocurre si falta un argumento?

Si no se pasan todos los argumentos, Python generará un error indicando que falta un argumento posicional:

saludar("Diego")

¿Cómo definir valores predeterminados para parámetros?

Podemos asignar valores predeterminados a los parámetros, que se utilizarán si no se proporciona uno específico:

def saludar(name, last_name="No tiene apellido"):
    print(f"Hola, {name} {last_name}")

saludar("Diego")

¿Cómo pasar parámetros por nombre?

Podemos pasar parámetros por nombre, lo que permite cambiar el orden de los argumentos:

saludar(last_name="Florida", name="Carla")

¿Cómo crear una calculadora con funciones en Python?

Podemos definir funciones para operaciones básicas y una función principal para manejarlas:

def suma(a, b):
    return a + b

def resta(a, b):
    return a - b

def multiplicar(a, b):
    return a * b

def dividir(a, b):
    return a / b

def calculadora():
    while True:
        print("Seleccione una operación:")
        print("1. Suma")
        print("2. Resta")
        print("3. Multiplicación")
        print("4. División")
        print("5. Salir")
        
        opcion = int(input("Ingrese su opción: "))
        
        if opcion == 5:
            print("Saliendo de la calculadora.")
            break
        
        if opcion in [1, 2, 3, 4]:
            num1 = float(input("Ingrese el primer número: "))
            num2 = float(input("Ingrese el segundo número: "))
            
            if opcion == 1:
                print("La suma es:", suma(num1, num2))
            elif opcion == 2:
                print("La resta es:", resta(num1, num2))
            elif opcion == 3:
                print("La multiplicación es:", multiplicar(num1, num2))
            elif opcion == 4:
                print("La división es:", dividir(num1, num2))
        else:
            print("Opción no válida, por favor intente de nuevo.")

calculadora()

¿Qué se debe considerar al crear funciones en Python?

Es crucial tener en cuenta el tipo de datos que se manejan, validar entradas del usuario y asegurarse de que las funciones se llamen correctamente para evitar errores en la ejecución.

Aportes 92

Preguntas 7

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Aprendí más de las correcciones al código que si hubiera salido bien a la primera.
![]()![](https://static.platzi.com/media/user_upload/class%2018%20Python-ef4b409a-8b02-4cf5-8385-e4bbd84ba96d.jpg) Recientemente, mientras exploraba y experimentaba en el campus, encontré una excelente ruta de aprendizaje de Python en Platzi.🦉
Un dato piola, por ahí de la versión de *Python* 3.10. añadieron los statements de match case, simplificando un tanto las cosas. ![](https://static.platzi.com/media/user_upload/image-1a43128e-81ed-4d29-9d42-a5397a689909.jpg)
Cuando defino las operaciones agregué el caso de que se ingrese el divisor 0. Y al definir la función calculadora agregué el manejo de excepciones para contemplar los casos en los que se ingrese valores inválidos. ```js def suma(a,b): return a + b def resta(a,b): return a - b def producto(a,b): return a * b def division(a,b): if b == 0: print('Error: No se puede dividir por 0') else: return a / b ``````python def calculadora(): while True: print('Seleccione una opción del 1 al 5:') print('1. Suma') print('2. Resta') print('3. Producto') print('4. Division') print('5. Salir') try: opcion = int(input('Ingrese la opción elegida: ')) except: print('Entrada no válida, por favor ingrese un valor entre 1 y 5') continue if opcion == 5: print('Saliendo de la calculadora') break if opcion in [1,2,3,4]: try: num1 = float(input('Ingrese el primer número: ')) num2 = float(input('Ingrese el segundo número: ')) except: print('Entrada no válida. Por favor ingrese números válidos.') continue if opcion == 1: print(f'{num1} + {num2} = ', suma(num1,num2)) elif opcion ==2: print(f'{num1} - {num2} = ', resta(num1,num2)) elif opcion == 3: print(f'{num1} * {num2} = ', producto(num1,num2)) elif opcion == 4: print(f'{num1} / {num2} = ', division(num1,num2)) else: print('No es una opción valida. Intente nuevamente por favor') calculadora() ```
no se si les pasa a todos o solo a mi pero siento que los videos estan medio mezclados... el video pasado uso una funcion para explicar generadores... y en este explica que es una funcion... ya me paso con otros videos.
```js def calcular_area_rectangulo(base, altura): """Calcula el área de un rectángulo.""" return base * altura def calcular_area_circulo(radio, pi=3.14159): """Calcula el área de un círculo.""" return pi * radio ** 2 # Llamadas a las funciones area_rectangulo = calcular_area_rectangulo(5, 3) area_circulo = calcular_area_circulo(2) print(f"Área del rectángulo: {area_rectangulo}") # Salida: Área del rectángulo: 15 print(f"Área del círculo: {area_circulo}") # Salida: Área del círculo: 12.56636 ``` Las funciones son una herramienta esencial en la programación, ya que permiten modularizar el código y hacerlo más legible y mantenible. Las funciones en Python pueden ser simples o complejas y pueden aceptar parámetros, devolver valores y manejar cantidades variables de argumentos.
solo tengo una sugerencia, a mi en lo personal me confundía que en clase se utilizaran términos que aun se habían explicado en el curso, como el caso de 'def', ya que estoy empezando a aprender desde cero, sería genial que avanzaran con un poco mas de orden. gracias
![](https://static.platzi.com/media/user_upload/image-e2eef964-99a6-4a1a-994a-9256520ef01b.jpg) Me gustó mucho el curso . Pero esta clase la encontré de las peores . Les comparto mi código de como elaborar el ejercicio con buenas prácticas
![](https://static.platzi.com/media/user_upload/Funciones%20en%20Python-280fc2e8-2672-4efc-a454-c949c53d4c48.jpg)
Esta clase es muy valiosa porque si bien lo que buscamos al aprender cualquier habilidad es obtener un resultado correcto, muestra el escenario de la realidad que se vive al momento de aplicar el aprendizaje. La frustración, la desesperación, el nerviosismo generado por que las cosas no salgan a la primera, que más allá del conocimiento mismo es lo que muchas veces más cuesta afrontar al aprender cualquier habilidad. Superar la adversidad conforme aplicamos lo que aprendemos para seguir adelante y al final, alcanzar el resultado deseado. Sin la falla no habría resultado, por lo que fallar no es algo malo, es parte del proceso.
Mi version de la calculator: ```js def calculator(): while True: print('Bienvenido a la calculadora Bobadillistica, elige una opción:') print("1. Suma") print("2. Resta") print("3. Multiplicación") print("4. División") print("5. Salir") option = int(input('Elige: ')) if option == 1: num1 = int(input('Elegiste suma, que sumaras? ')) num2 = int(input('Con cuanto?: ')) print('El resultado es: ', num1 + num2) elif option == 2: num1 = int(input('Elegiste resta, que restaras? ')) num2 = int(input('Con cuanto?: ')) print('El resultado es: ', num1 - num2) elif option == 3: num1 = int(input('Elegiste multiplicar, que multiplicaras? ')) num2 = int(input('Con cuanto?: ')) print('El resultado es: ', num1 * num2) elif option == 4: num1 = int(input('Elegiste dividir, que dividiras? ')) num2 = int(input('Entre cuanto?: ')) if num2 != 0: print('El resultado es: ', num1 / num2) else: print('Error: no se puede dividir entre cero') elif option == 5: print('Hasta luego Bobadillista') break else: print('Elige una opción válida') cont = input('¿Quieres continuar? (s/n): ') if cont.lower() == 's': continue else: print('Hasta luego Bobadillista') break calculator() ```
Es interesante el metodo de enseñansa de Cali, porque en otros cursos primero te enseñan el concepto. En su caso he visto que en algunos momentos te muestra un codigo con un tema que aún no ha explicado, por ejemplo; este tema, el "def", lo aplicamos en la clase pasada y recién vamos a verlo. Pero no me quejo, he aprendido mejor asi.
```python # CALCULADOR BÁSICO def add(a,b): return a+b def subtraction(a,b): return a-b def multiplications(a,b): return a*b def division(a,b): return a/b def calculating (): while True: option_sign = ['+','-','*','/'] num1 = int(input('Ingresa el primer número: ')) sign = input('Ingresa el signo del operación: ') num2 = int(input('Ingresa el segundo número: ')) if sign in option_sign: if sign == '+': print(num1,sign,num2,'=',add(num1,num2)) elif sign == '-': print(num1,sign,num2,'=',subtraction(num1,num2)) elif sign == '*': print(num1,sign,num2,'=',multiplications(num1,num2)) elif sign == '/': print(num1,sign,num2,'=',division(num1,num2)) else: print('eliges un signo') print(''' 🧮🧮🧮🧮🧮🧮🧮 ''') while True: opcion = input("Para salir presiona '<' + ENTER \nPara seguir presiona '>' + ENTER \n") if opcion in ['<', '>']: break else: print("Por favor, ingresa un signo válido ('<' o '>')") if opcion == '>': print('🚀' * 10) continue elif opcion == '<': print('👋🏻' * 10) break print('CALCULADOR BÁSICO') calculating() ```Hola compañeros y profesores, hice un calculador básico como práctica. ¡Espero sus comentarios por favor!
No se si los errores fueron planeados pero es mejor asi, porque vemos casos reales que pueden suceder en lugar de que el codigo funcine a la primera.
Hi, estoy retomando Python 🐍 y este curso esta 👍, hice una calculadora en su momento. ```python """menu_calculadora.py""" import os # import sys def menu(): """Funcion Menu""" op = True while op: os.system('cls') print('💰 Calculadora 💰'.center(30, '*')) print('1.- Suma') print('2.- Resta') print('3.- Multiplicacion') print('4.- Division') print('5.- Salir') # opcion = int(input('Ingrese una opcion: ')) opcion = pedir_numero_entero() if opcion == 1: suma() elif opcion == 2: resta() elif opcion == 3: multiplicacion() elif opcion == 4: division() elif opcion == 5: salir() op = False else: print('Please, enter a valid menu opcion') input() def suma(): """Funcion +""" print('\nFunction Addition') n1, n2 = ingre_dosnumeros() print('Resultado: ', n1 + n2) def resta(): """Funcion -""" print('\nFunction Subtraction') n1, n2 = ingre_dosnumeros() print('Resultado: ', n1 - n2) def multiplicacion(): """Funcion *""" print('\nFunction Multiplication') n1, n2 = ingre_dosnumeros() print('Resultado: ', n1 * n2) def division(): """Funcion /""" print('\nFunction Division') n1, n2 = ingre_dosnumeros() print('Resultado: ', n1 / n2) def salir(): """Funcion Salir""" print('\n*** Bye ***') input() os.system('cls') def ingre_dosnumeros(): """Funcion ingresa 2 numeros""" n1 = pedir_numero_entero() n2 = pedir_numero_entero() return (n1, n2) def pedir_numero_entero(): """Funcion ingresa numero entero""" while True: try: num = int(input("Introduce un numero entero: ")) break except ValueError: print('Error, introduce un numero entero') return num menu() ```"""menu\_calculadora.py""" import os# import sys def menu():    """Funcion Menu"""    op = True    while op:        os.system('cls')        print('💰 Calculadora 💰'.center(30, '\*'))        print('1.- Suma')        print('2.- Resta')        print('3.- Multiplicacion')        print('4.- Division')        print('5.- Salir')        # opcion = int(input('Ingrese una opcion: '))        opcion = pedir\_numero\_entero()        if opcion == 1:            suma()        elif opcion == 2:            resta()        elif opcion == 3:            multiplicacion()        elif opcion == 4:            division()        elif opcion == 5:            salir()            op = False        else:            print('Please, enter a valid menu opcion')        input() def suma():    """Funcion +"""    print('\nFunction Addition')    n1, n2 = ingre\_dosnumeros()    print('Resultado: ', n1 + n2) def resta():    """Funcion -"""    print('\nFunction Subtraction')    n1, n2 = ingre\_dosnumeros()    print('Resultado: ', n1 - n2) def multiplicacion():    """Funcion \*"""    print('\nFunction Multiplication')    n1, n2 = ingre\_dosnumeros()    print('Resultado: ', n1 \* n2) def division():    """Funcion /"""    print('\nFunction Division')    n1, n2 = ingre\_dosnumeros()    print('Resultado: ', n1 / n2) def salir():    """Funcion Salir"""    print('\n\*\*\* Bye \*\*\*')    input()    os.system('cls') def ingre\_dosnumeros():    """Funcion ingresa 2 numeros"""    n1 = pedir\_numero\_entero()    n2 = pedir\_numero\_entero()    return (n1, n2) def pedir\_numero\_entero():    """Funcion ingresa numero entero"""    while True:        try:            num = int(input("Introduce un numero entero: "))            break        except ValueError:            print('Error, introduce un numero entero')    return num menu()
Muy bueno el curso pero en el video 19, quedo oscura la pantalla
Me encanta la metodología. Yo aprendí Python con un muy buen libro, pero efectivamente de los errores es de donde más se aprende
No sé porqué pero no me dejaba borrar el historial para probar las modificaciones que le iba haciendo, se resolvió reiniciando el programa 😅, interesante clase para seguir explorando las posibilidades. 🙌
Este curso es excelente y lo explican muy bien, pero es necesario verificar lo que se va a codificar, ya que en el orden de los prints el numero 3 es de multiplicacion pero en el condicional if, esa opcion es de division, logicamente nos estarian dando un error en el resultado en cuanto a los calculos.
```js """Module Calculator function.""" def add(a, b): """Function sumar""" return a + b def substract(a, b): """Function substract""" return a - b def multiply(a, b): """Function multiply""" return a * b def divide(a, b): """Function divide""" return a / b def calculator(): """Function calculator""" while True: print("Seleccione una operación") print("1. Suma") print("2. Resta") print("3. Multiplicación") print("4. División") print("5. Salir") option = input("Ingrese su opción (1,2,3,4,5): ") if option == "5": print("Saliendo de la calculadora") break if option in ["1", "2", "3", "4"]: num1 = float(input("Ingrese el primer numero: ")) num2 = float(input("Ingrese el segundo numero: ")) if option == "1": print("La suma es:", add(num1, num2)) elif option == "2": print("La resta es:", substract(num1, num2)) elif option == "3": print("La multiplicación es:", multiply(num1, num2)) elif option == "4": print("La división es:", divide(num1, num2)) else: print("Opción no válida, por intenta de nuevo") calculator() ```
Yo agregué una validación en la división para evitar un error en caso de intentar hacer una división entre `0`: ```js def add(a,b): return a+b def substract(a,b): return a-b def multiply(a,b): return a*b def divide(a,b): if b == 0: print('No se puede realizar una división por 0') return 'No definido' return a/b def calculator(): while True: print('Seleccione una operación:') print('1. Suma') print('2. Resta') print('3. Multiplicación') print('4. División') print('5. Salir') option = input('Ingrese una opción: ') if option == '5': print('Saliendo de la calculadora...') break if option in ['1', '2', '3', '4']: num1 = float(input('Ingresa el primer número: ')) num2 = float(input('Ingresa el segundo número: ')) if option == '1': print(f'El resultado de la suma es: {add(num1, num2)}') if option == '2': print(f'El resultado de la resta es: {substract(num1, num2)}') if option == '3': print(f'El resultado de la multiplicación es: {multiply(num1, num2)}') if option == '4': print(f'El resultado de la división es: {divide(num1, num2)}') else: print('Opción no valida, intenta de nuevo') calculator() ```
"Se aprende haciendo, no viendo" DCSM
```js #Clase 19 - Funciones #Ejercicio 1 #Crear una función que reciba un nombre y un apellido y los imprima print("Ejercicio 1"); def saludar(nombre="Mundo", apellido=""): print("Hola", nombre, apellido); saludar(); saludar("Alexis", "Dorado"); saludar(apellido= "Dorado", nombre="Alexis"); #Ejercicio 2 #Crear una calculadora con funciones print("") print("Ejercicio 2"); def add (a, b): return a + b; def substract (a, b): return a - b; def multiply (a, b): return a * b; def divide (a, b): return a / b; print(add(5, 3)); print(substract(5, 3)); print(multiply(5, 3)); print(divide(5, 3)); def calculator(): print("Seleccione una opción"); print("1 - Sumar"); print("2 - Restar"); print("3 - Multiplicar"); print("4 - Dividir"); print("5 - Salir"); option = int(input("Opción: 1, 2, 3, 4, 5: ")); if option == 5: print("Adiós"); return; a = float(input("Ingrese el primer número: ")); b = float(input("Ingrese el segundo número: ")); if option == 1: print("El resultado es:",add(a, b)); elif option == 2: print("El resultado es:",substract(a, b)); elif option == 3: print("El resultado es:",multiply(a, b)); elif option == 4: print("El resultado es:",divide(a, b)); else: print("Opción no válida"); print(""); print(""); calculator(); calculator() ```#Clase 19 - Funciones \#Ejercicio 1#Crear una función que reciba un nombre y un apellido y los imprima print("Ejercicio 1"); def saludar(nombre="Mundo", apellido=""):    print("Hola", nombre, apellido); saludar();saludar("Alexis", "Dorado");saludar(apellido= "Dorado", nombre="Alexis"); \#Ejercicio 2#Crear una calculadora con funcionesprint("")print("Ejercicio 2"); def add (a, b):    return a + b; def substract (a, b):    return a - b; def multiply (a, b):    return a \* b; def divide (a, b):    return a / b; print(add(5, 3));print(substract(5, 3));print(multiply(5, 3));print(divide(5, 3)); def calculator():    print("Seleccione una opción");    print("1 - Sumar");    print("2 - Restar");    print("3 - Multiplicar");    print("4 - Dividir");    print("5 - Salir");        option = int(input("Opción: 1, 2, 3, 4, 5: "));        if option == 5:        print("Adiós");        return;        a = float(input("Ingrese el primer número: "));    b = float(input("Ingrese el segundo número: "));        if option == 1:        print("El resultado es:",add(a, b));    elif option == 2:        print("El resultado es:",substract(a, b));    elif option == 3:        print("El resultado es:",multiply(a, b));    elif option == 4:        print("El resultado es:",divide(a, b));    else:        print("Opción no válida");        print("");    print("");    calculator();    calculator()
def suma(primer\_numero, segundo\_numero): return primer\_numero + segundo\_numero def resta(primer\_numero, segundo\_numero): return primer\_numero - segundo\_numero def multiplicacion(primer\_numero, segundo\_numero): return primer\_numero \* segundo\_numero def division(primer\_numero, segundo\_numero): if segundo\_numero == 0: print("NO SE PUEDE DIVIDIR.") else: return primer\_numero / segundo\_numero opcion = """QUE VAS ELEGIR: ---------------1. SUMA2. RESTA3. MULTIPLICACIÓN4. DIVISIÓN"""print(opcion)elegir = int(input("Elige entre 1 - 4: ")) numero\_uno = float(input("Ingresa el primer número: "))numero\_dos = float(input("Ingresa el segundo número: ")) match elegir: case 1: resultado = suma(numero\_uno, numero\_dos) case 2: resultado = resta(numero\_uno, numero\_dos) case 3: resultado = multiplicacion(numero\_uno, numero\_dos) case 4: resultado = division(numero\_uno, numero\_dos) print(f"El resulta es {resultado}")```python ```
Algo que podríamos añadir al código es: elif option == 4:          if num2 == 0:                    print("Error: No se puede dividir entre cero.")              else:   print("La división es:", divide(num1, num2))
Sería bueno que en los códigos, se explicara un poco el por qué se usa alguna función o condicional. Es que parece que se estuviera transcribiendo un código y ya, pero la idea es que todos los que iniciamos de cero entendamos porque se usó el return, el while....
Siento que la profe explica bien, pero el curso está desordenado y habla de temas que todavía no se han explicado, es confuso muchas veces.
```python # declaración de una función def greeting(): return "Hello, World!" # invocación de una función hello = greeting() print(hello) # declaración de una función con parámetros def greeting(name, lastname, profession): name.lower() lastname.lower() profession.lower() return f"Hello, {name.capitalize()} {lastname.capitalize()}, I'm a {profession.capitalize()}" # invocación de una función con parámetros juan = greeting("Juan", "Pérez", "developer") print(juan) ana = greeting("Ana", "Gómez", "designer") print(ana) pedro = greeting("Pedro", "Sánchez", "engineer") print(pedro) ```
Un código sencillo: ```js # declaración de una función def greeting(): return "Hello, World!" # invocación de una función hello = greeting() print(hello) # declaración de una función con parámetros def greeting(name, lastname, profession): name.lower() lastname.lower() profession.lower() return f"Hello, {name.capitalize()} {lastname.capitalize()}, I'm a {profession.capitalize()}" # invocación de una función con parámetros juan = greeting("Juan", "Pérez", "developer") print(juan) ana = greeting("Ana", "Gómez", "designer") print(ana) pedro = greeting("Pedro", "Sánchez", "engineer") print(pedro) ```
Por otro lado pueden poner funciones en variables
Algo que quiero resaltar son el poderoso uso de las funciones. Las funciones son como un bloque de código que se pueden invocar de manera infinita en el código. Piensalo de esta manera, si a cada rato tienes que copiar varias en diferentes partes del código un bloque de código especifico, eso merece ser una función, para que la invoques de manera simple con el nombre. Por otro lado, las funciones sirven mucho para estructurar el código, mantener lo y mejorar con el paso del tiempo. Uno a las funciones le puede pasar datos, pasar incluso otras funciones y retornar otras funciones. Uno simplemente programa todo en funciones y luego las ejecuta en el orden que uno lo necesita y queda un código muy bonito, estructurado y fácil de entender. Lo último, es que yo me he acostumbrado a solo programar con funciones xd
wow, fue tan potente la opcion 5 salir de la funcion calculadora, que hasta puso el video en negro por unos segundos, increible python. jaja
Dejo mi aporte para su retroalimentación. Gracias ![](https://static.platzi.com/media/user_upload/image-1b12b7c0-a542-49f6-a496-1d30332d65c8.jpg)
```python def suma(a,b): return a+b def resta(a,b): return a-b def producto(a,b): return a*b def división(a,b): return a/b def calculadora(): while True: print("Seleccione una operación: ") print("1. Suma") print("2. Resta") print("3. Multiplicación") print("4. División") print("5. Salie de la calculadora") opcion = int(input("Ingrese la opción (1, 2, 3, 4, 5): ")) if opcion == 5: print("Saliendo de la calculadora") break if opcion in [1,2,3,4]: num1 = float(input("Ingrese el primer número: ")) num2 = float(input("Ingrese el segundo número: ")) if opcion == 1: print("El resultado de la suma es:", suma(num1,num2)) elif opcion == 2: print("El resultado de la resta es: ", resta(num1,num2)) elif opcion == 3: print("El resultado de la multiplicación es: ", producto(num1,num2)) elif opcion == 4: print("El resultado de la división es: ", división(num1,num2)) else: print("La opción es incorrecta.") ```
Demasiado interesante.
```python #las funsiones en python def greet(name, last_name='No tiene apellido'): print('Hola',name, last_name) greet(last_name= 'martes',name= 'Alexis') greet('Dahianna', 'peguero') greet('Diego') ```#las funsiones en pythondef greet(name, last\_name='No tiene apellido'):    print('Hola',name, last\_name)    greet(last\_name= 'martes',name= 'Alexis')greet('Dahianna', 'peguero')greet('Diego')   
Uso de funciones en Python: LLAMAR A LA FUNCIÓN, POR FIN def greet(): print("Hola mundo") greet() #LLAMAR A LA FUNCIÓN Se pueden usar varior elif para opciones multiples
yo hice el código de la calculadora así ![]()![]()![](https://static.platzi.com/media/user_upload/calculadora-fe3e3576-9259-4a2c-8ff7-b99ca034f612.jpg)
Hola carli, por que en el 14:52 quitamos el parseo del input a int? Por que no lo dejamos? se puede dejar? Lo hice con el parseo y me funcionó. Gracias!
usar el statement match case ( o switch case en otros lenguajes) podria para este caso espesifico hacer mas legible el codigo
```js #Defino un diccionario con los operadores matemáticos dict = { "1": "+", "2": "-", "3": "*", "4": "/" } #Defino una función que recibe el operador y los valores a operar def calculator(op, val1, val2): if dict[op] == "+": return val1 + val2 elif dict[op] == "-": return val1 - val2 elif dict[op] == "*": return val1 * val2 elif dict[op] == "/": return val1 / val2 else: return "Invalid operator" #Imprimo las opciones para el usuario usando las triple comillas print(''' Seleccione una operación: 1. Suma 2. Resta 3. Multiplicación 4. División ''') #Pido al usuario que seleccione una opción op = input() #Si el operador no está en el diccionario, imprimo un mensaje de error y salgo del programa if op not in dict: print("Operador inválido") exit() #Pido al usuario que inserte los valores a operar print("Inserta el primer valor") val1 = int(input()) print("Inserta el segundo valor") val2 = int(input()) print(calculator(op, val1, val2)) ```#Defino un diccionario con los operadores matemáticosdict = {    "1": "+",    "2": "-",    "3": "\*",    "4": "/"} \#Defino una función que recibe el operador y los valores a operardef calculator(op, val1, val2):    if dict\[op] == "+":        return val1 + val2    elif dict\[op]  == "-":        return val1 - val2    elif dict\[op]  == "\*":        return val1 \* val2    elif dict\[op]  == "/":        return val1 / val2    else:        return "Invalid operator"    #Imprimo las opciones para el usuario usando las triple comillasprint('''      Seleccione una operación:      1. Suma      2. Resta      3. Multiplicación      4. División''') \#Pido al usuario que seleccione una opciónop = input() \#Si el operador no está en el diccionario, imprimo un mensaje de error y salgo del programaif op not in dict:    print("Operador inválido")    exit() \#Pido al usuario que inserte los valores a operarprint("Inserta el primer valor")val1 = int(input()) print("Inserta el segundo valor") val2 = int(input())print(calculator(op, val1, val2))
`#Defino un diccionario con los operadores matemáticosdict = {    "1": "+",    "2": "-",    "3": "*",    "4": "/"}` `#Defino una función que recibe el operador y los valores a operardef calculator(op, val1, val2):    if dict[op] == "+":        return val1 + val2    elif dict[op]  == "-":        return val1 - val2    elif dict[op]  == "*":        return val1 * val2    elif dict[op]  == "/":        return val1 / val2    else:        return "Invalid operator"    #Imprimo las opciones para el usuario usando las triple comillasprint('''      Seleccione una operación:      1. Suma      2. Resta      3. Multiplicación      4. División''')` `#Pido al usuario que seleccione una opciónop = input()` `#Si el operador no está en el diccionario, imprimo un mensaje de error y salgo del programaif op not in dict:    print("Operador inválido")    exit()` `#Pido al usuario que inserte los valores a operarprint("Inserta el primer valor")val1 = int(input())` `print("Inserta el segundo valor")` `val2 = int(input())print(calculator(op, val1, val2))`
\#Sumando un poco lo aprendido: \#Defino un diccionario con los operadores matemáticosdict = {    "1": "+",    "2": "-",    "3": "\*",    "4": "/"} \#Defino una función que recibe el operador y los valores a operardef calculator(op, val1, val2):    if dict\[op] == "+":        return val1 + val2    elif dict\[op]  == "-":        return val1 - val2    elif dict\[op]  == "\*":        return val1 \* val2    elif dict\[op]  == "/":        return val1 / val2    else:        return "Invalid operator"    #Imprimo las opciones para el usuario usando las triple comillasprint('''      Seleccione una operación:      1. Suma      2. Resta      3. Multiplicación      4. División''') \#Pido al usuario que seleccione una opciónop = input() \#Si el operador no está en el diccionario, imprimo un mensaje de error y salgo del programaif op not in dict:    print("Operador inválido")    exit() \#Pido al usuario que inserte los valores a operarprint("Inserta el primer valor")val1 = int(input()) print("Inserta el segundo valor") val2 = int(input())print(calculator(op, val1, val2))
Mi aporte def calcular\_operacion(a, b, op): operaciones = { "1": a + b, "2": a - b, "3": a \* b, "4": a / b if b != 0 else "Error: No se puede dividir entre cero." } resultado = operaciones.get(op, "Opción no válida") print(f"Resultado: {int(resultado) if isinstance(resultado, float) and resultado.is\_integer() else resultado}") def calculator(): while True: print("\n1. Suma\n2. Resta\n3. Multiplicación\n4. División\n5. Salir") op = input("Seleccione operación (1-5): ") if op == "5": break if op in \["1", "2", "3", "4"]: a, b = float(input("Primer número: ")), float(input("Segundo número: ")) calcular\_operacion(a, b, op) else: print("Opción no válida.") calculator()
Aquí dejo mi solución a la calculadora, coloque un menú para que el usuario sepa de que forma debe escribir la operación y validé si el usuario separo los elementos del signo de operación o si los deja juntos. Espero le sirva a alguien. ```js def sumar(a,b): return a + b def restar(a,b): return a - b def dividir(a,b): return a / b def multiplicar(a,b): return a * b def seleccion(a, signo, b): if signo == "+": return sumar(a, b) elif signo == "-": return restar(a, b) elif signo == "/": return dividir(a, b) elif signo == "*": return multiplicar(a, b) else: return "Esta funcion no esta en la calculadora" operacion = input("Escriba su operacion \nNOTA: Solo se puede \nSumar ( + ), \nRestar( - ), \nMultiplicar( * ), \nDividir( / ) \n-> ") op = operacion.strip() if ' ' in op: print("entro al in") op = operacion.split(' ') else: op = list(operacion) print("imprimiendo el op-> ",op) print(seleccion(int(op[0]), str(op[1]), int(op[2]))) ```
Esta fue mi manera de ejecutar la calculadora: `def add (a , b):    return a + b` `def substract (a , b):    return a - b` `def multiply (a , b):    return a * b` `def divide (a , b):    return a / b` `def power (a , b):    return a ** b` `def option_to_text(option):    options = {        "1": "suma",        "2": "resta",        "3": "multiplicacion",        "4": "division",        "5": "potencia"    }    return options[option]` `def calculator():    operations = {        "1": add,        "2": substract,        "3": multiply,        "4": divide,        "5": power    }    while True:        print("Seleccione una operacion: ")        print("1. Suma")        print("2. Resta")        print("3. Multiplicacion")        print("4. Division")        print("5. Potencia")        print("6. Salir")        option = input("ingrese una opcion: ")        if option == "6":            break        if option not in operations:            print("Opcion no valida")            continue        num1 = float(input("Ingrese el primer numero: "))        num2 = float(input("Ingrese el segundo numero: "))        print(f"El resultado de la {option_to_text(option)} es: {operations[option](num1, num2)}")` `calculator()`
Necesito ayuda, según yo tengo todo igual a ti pero cuando pregunta la opción da lo mismo que número ponga se va al else igual y dice "opcion no valida porvafor intenta de nuevo
Comparto mi solución: ```js # Generadores para los números pares e impares def pair(limit): a, b = 1, 0 while a < limit: yield b b = 2 * a a += 1 def odd(limit): a, b = 1, 1 while a < limit: yield b b = (2 * a) + 1 a += 1 print("Números pares") for num in pair(10): print(num) print("Números impares") for num in odd(10): print(num) ```*# Generadores para los números pares e impares* def pair(limit):    a, b = 1, 0    while a < limit:        yield b        b = 2 \* a        a += 1 def odd(limit):    a, b = 1, 1    while a < limit:        yield b        b = (2 \* a) + 1        a += 1 print("Números pares") for num in pair(10):    print(num) print("Números impares")for num in odd(10):    print(num)
```js def add(a,b): return a + b def substract(a,b): return a - b def multiply(a,b): return a * b def divide(a,b): return a / b def calculator(): while True: print("Seleccione una operación") print("1. Suma") print("2. Resta") print("3. Multiplica") print("4. Divide") print("5. Salir") option = input("Ingrese una opción") if option == "5": print("Saliendo calculadora") break if option in ["1","2","3","4","5"]: num1 = float(input("Ingrese el primer numero")) num2 = float(input("Ingrese el segundo numero")) if option == "1": print("La suma es:", add(num1,num2)) elif option == "2": print("La resta es",substract(num1,num2)) elif option == "3": print("La multiplicacion es",multiply(num1,num2)) elif option == "4": print("La division es",divide(num1,num2)) else: print("Opcion no valida, por favor intente de nuevo") calculator() ```Oigan seguí el ejemplo pero no se porque la resta, cuando la invoco, me multiplica, no entiendo por que.
El código: def add(a,b): return a+b def substract(a,b): return a - b def multiply(a,b): return a \* b def divide(a,b): return a / b def calculator(): while True: print("Seleccione una operación") print("1. Suma") print("2. Resta") print("3. Multiplicación") print("4. División") print("5. Salir") option = input("Ingrese su opción (1,2,3,4,5): ") if option == "5": print("Saliendo de la calculadora") break if option in \["1","2","3","4"]: num1 = float(input("Ingrese el primer numero: ")) num2 = float(input("Ingrese el segundo numero: ")) if option == "1": print("La suma es:", add(num1, num2)) elif option == "2": print("La resta es:", substract(num1, num2)) elif option == "3": print("La división es:", divide(num1, num2)) elif option == "4": print("La multiplicación es:", multiply(num1, num2)) else: print("Opción no válida, por intenta de nuevo") calculator()
en el min 6:13 se escucha una psicofonía jajajaj un whoo jajaja se les paso ahí borrar la pista de audio o quedo en el sonido ambiente y era mejor dejarla que regrabar
Esta es mi práctica del ejercicio, con un swith. def add(a, b): return a + b def subtract(a, b): return a - b def multiply(a, b): return a \* b def division(a, b): return (a / b) def calculator(): print("Esta es la calculadora") while True: print("Por favor seleccione la opcion a trabajar") print("1. Sumar") print("2. Restar") print("3. Multiplicar") print("4. Dividir") print("5. Salir") option = int(input("Seleccione que opcion desea (1-5)")) def swith\_operation(option, num1, num2): swither = { 1: add(num1, num2), 2: subtract(num1, num2), 3: multiply(num1, num2), 4: division(num1, num2) } return swither.get(option) if option == 5: print("Saliendo de la calculadora") break if option in \[1, 2, 3, 4]: num1 = float(input("Digite el primer numero: ")) num2 = float(input("Digite el segundo digito: ")) result = swith\_operation(option,num1,num2) print(f"El resultado de la Operación es: ", result) else: print("Vuelva a intentar una opción valida entre 1 -4") continue calculator()
Que bueno que también se muestre las equivocaciones con el código :) Adicional, quedaron invertidas las operaciones de división y multiplicación en el llamado de las funciones en los IF. Tanto en el vídeo como en el archivo de código funciones\_calculator.py
que les parece este código mas resumido. ![](https://static.platzi.com/media/user_upload/Screenshot%202024-10-03%20103440-c1114b8c-f2af-4de6-ab0c-d6e3207e7c72.jpg)
calculadora chatGPT \# Definición de las funciones básicas def sumar(a, b): return a + b def restar(a, b): return a - b def multiplicar(a, b): return a \* b def dividir(a, b): if b != 0: return a / b else: return "Error: No se puede dividir por cero" \# Función principal de la calculadora def calculadora(): print("Bienvenido a la calculadora básica") print("Opciones disponibles:") print("1. Sumar") print("2. Restar") print("3. Multiplicar") print("4. Dividir") \# Solicitar al usuario que seleccione una opción opcion = input("Seleccione una opción (1/2/3/4): ") \# Validar la opción seleccionada if opcion not in \['1', '2', '3', '4']: print("Opción inválida, por favor seleccione una opción válida.") return \# Solicitar los números al usuario try: num1 = float(input("Ingrese el primer número: ")) num2 = float(input("Ingrese el segundo número: ")) except ValueError: print("Error: Debe ingresar números válidos.") return \# Ejecutar la operación seleccionada if opcion == '1': print(f"Resultado: {num1} + {num2} = {sumar(num1, num2)}") elif opcion == '2': print(f"Resultado: {num1} - {num2} = {restar(num1, num2)}") elif opcion == '3': print(f"Resultado: {num1} \* {num2} = {multiplicar(num1, num2)}") elif opcion == '4': resultado = dividir(num1, num2) print(f"Resultado: {num1} / {num2} = {resultado}") \# Llamada a la función principal de la calculadora calculadora()
Las funciones se utilizan en programación para agrupar un conjunto de instrucciones que quieres utilizar repetidamente. Una función es un fragmento de código escrito para realizar una tarea determinada. Existen 3 tipos de funciones integradas , definidas y a anónimas. Los parámetros son los nombres utilizados para definir una función o un método.
Las **funciones** en Python son bloques de código reutilizables que realizan una tarea específica. Se definen usando la palabra clave `def`, seguidas de un nombre, parámetros opcionales y el código que ejecutan. Las funciones pueden devolver un valor con `return` o simplemente realizar acciones. Usarlas ayuda a organizar y simplificar el código. Las funciones permiten modularizar el código y hacerlo más fácil de mantener.
Otra manera de hacer el código, almacenando los resultados de las operaciones en una variable ```js def suma(a,b): return a+b def resta(a,b): return a-b def multiply(a,b): return a*b def div(a,b): return a/b def calculator(): while True: print("\nSelecciona una operación") print("1 para suma") print("2 para resta") print("3 para multiplicación") print("4 para división") print("5 para salir") option = int(input("Seleccione su opción: ")) if option == 5: print("Gracias por usar la calculadora.") break # Pedir los números solo si la opción no es salir num1 = float(input("Escriba el 1er número: ")) num2 = float(input("Escriba el 2do número: ")) # Realizar la operación y mostrar el resultado if option == 1: resultado = suma(num1, num2) print(f"El resultado de la suma es: {resultado}") break elif option == 2: resultado = resta(num1, num2) print(f"El resultado de la resta es: {resultado}") break elif option == 3: resultado = multiply(num1, num2) print(f"El resultado de la multiplicación es: {resultado}") break elif option == 4: resultado = div(num1, num2) print(f"El resultado de la división es: {resultado}") break else: print("Opción inválida. Inténtalo de nuevo.") # Ejecutamos la calculadora calculator() ```
Me gustó mucho el curso . Pero esta clase la encontré de las peores . Les comparto mi código de como elaborar el ejercicio con buenas prácticas: from typing import Tuple def sumar(numero1: float, numero2: float) -> float: return numero1 + numero2 def restar(numero1: float, numero2: float) -> float: return numero1 - numero2 def multiplicar(numero1: float, numero2: float) -> float: return numero1 \* numero2 def dividir(numero1: float, numero2: float) -> float: if numero2 == 0: raise ValueError("No se puede dividir entre cero.") return numero1 / numero2 def mostrar\_menu() -> None: MENU\_OPCIONES = { "1": "Suma", "2": "Resta", "3": "Multiplicación", "4": "División", "5": "Salir" } print("Seleccione una operación:") for clave, valor in MENU\_OPCIONES.items(): print(f"{clave}. {valor}") def obtener\_opcion() -> str: while True: opcion = input("Ingrese su opción (1-5): ") if opcion in \["1", "2", "3", "4", "5"]: return opcion print("Opción inválida. Por favor, intente de nuevo.") def obtener\_numeros() -> Tuple\[float, float]: while True: try: numero1 = float(input("Ingrese el primer número: ")) numero2 = float(input("Ingrese el segundo número: ")) return numero1, numero2 except ValueError: print("Entrada inválida. Por favor, ingrese números válidos.") def ejecutar\_operacion(opcion: str, numero1: float, numero2: float) -> None: operaciones = { "1": ("La suma es:", sumar), "2": ("La resta es:", restar), "3": ("La multiplicación es:", multiplicar), "4": ("La división es:", dividir) } mensaje, funcion = operaciones.get(opcion) try: resultado = funcion(numero1, numero2) print(f"{mensaje} {resultado}") except ValueError as e: print(e) def iniciar\_calculadora() -> None: while True: mostrar\_menu() opcion = obtener\_opcion() if opcion == "5": print("Saliendo de la calculadora...") break numero1, numero2 = obtener\_numeros() ejecutar\_operacion(opcion, numero1, numero2) if \_\_name\_\_ == "\_\_main\_\_": iniciar\_calculadora()
Hola a todos, dejo mi propia calculadora que he realizado, a partir de lo explicado por la profesora. Lo unico que innove es en la librería sys para terminar la ejecución de la calculadora. ```js import sys # Definiendo una función a suma def add(a,b): return a + b # Definiendo una función para la resta def resta(a,b): return a - b # Definiendo una función para la multiplicación def multiplicar(a,b): return a * b # Definiendo una función para la división: def divide (a,b): if b != 0: return a / b else: print("No se puede dividir entre 0") def name(): while True: name = input("Ingrese tu nombre : ").capitalize() if not name.isalpha(): print("No has intruducido un valor valido") break print( f"Bienvenido {name}") print("Estas a punto de usar la mejor calculadora que hay") calculadora() def calculadora(): while True: print('*'*60) print("Elije tu opción :") print("1. Suma") print("2. Resta") print("3. Multiplicación") print("4. División") print("5. Salir") opcion = input("Elija su opción :") if opcion == '5': print('Estas saliendo de la calculadora') sys.exit() elif opcion not in ['1','2','3','4']: print("Opción inválida, coloca la opción correcta") continue a = float(input("Ingrese el primer valor :")) b = float(input("Ingrese el segundo valor :")) if opcion == '1': print("El resultado de la suma es :",add(a, b)) print("*"*60) elif opcion == '2': print("El resultado de la resta es :", resta(a, b)) print("*"*60) elif opcion == '3': print("El resultado de la multiplicacion es :", multiplicar(a, b)) print("*"*60) elif opcion == '4': print("El resultado de la división es :", divide(a, b)) print("*"*60) name() ```import sys# Definiendo una función a sumadef add(a,b):        return a + b# Definiendo una función para la restadef resta(a,b):        return a - b# Definiendo una función para la multiplicacióndef multiplicar(a,b):        return a \* b# Definiendo una función para la división:def divide (a,b):        if b != 0:                return a / b        else:                print("No se puede dividir entre 0") def name():        while True:                name = input("Ingrese tu nombre : ").capitalize()                                if not name.isalpha():                        print("No has intruducido un valor valido")                        break                                print( f"Bienvenido {name}")                print("Estas a punto de usar la mejor calculadora que hay")                calculadora()         def calculadora():        while True:                print('\*'\*60)                print("Elije tu opción :")                print("1. Suma")                print("2. Resta")                print("3. Multiplicación")                print("4. División")                print("5. Salir")                                opcion = input("Elija su opción :")                                if opcion == '5':                        print('Estas saliendo de la calculadora')                        sys.exit()                elif opcion not in \['1','2','3','4']:                             print("Opción inválida, coloca la opción correcta")                        continue                                a = float(input("Ingrese el primer valor :"))                b = float(input("Ingrese el segundo valor :"))                if opcion == '1':                        print("El resultado de la suma es :",add(a, b))                        print("\*"\*60)                elif opcion == '2':                        print("El resultado de la resta es :", resta(a, b))                        print("\*"\*60)                elif opcion == '3':                        print("El resultado de la multiplicacion es :", multiplicar(a, b))                        print("\*"\*60)                elif opcion == '4':                        print("El resultado de la división es :", divide(a, b))                        print("\*"\*60)                name()
Hola! Les comparto el código de la clase y los resultados: ![](https://static.platzi.com/media/user_upload/Calculator-46cc2c97-d98d-48ed-b479-77043e067a63.jpg) ![](https://static.platzi.com/media/user_upload/Results-5101d89e-193a-411e-a644-079b7a0aea41.jpg)
El código que se descarga tiene error en la opción 3 y 4, estanqueidad trocados....
Tengo curiosidad en saber si con Python hay alguna manera de hacer interfaces de usuario como por ejemplo, que salga un botón o que salga una ventana? 🤔?
```js def tipo_num (limit): a = 1 while a < limit: if a % 2 == 0: yield "El siguiente número es par" yield a a += 1 elif a % 2 != 0: yield "El siguiente número es inpar" yield a a += 1 else: yield "dato incorrecto" a += 1 b = int(input("Escribe hasta que número quieres que generemos números pares e inpares: ")) for num in tipo_num(b): print(num) ```def tipo\_num (limit):    a = 1    while a < limit:        if a % 2 == 0:            yield "El siguiente número es par"            yield a            a += 1        elif a % 2 != 0:            yield "El siguiente número es inpar"            yield a            a += 1        else:            yield "dato incorrecto"            a += 1     b = int(input("Escribe hasta que número quieres que generemos números pares e inpares: ")) for num in tipo\_num(b):    print(num)
def tipo\_num (limit):    a = 1    while a < limit:        if a % 2 == 0:            yield "El siguiente número es par"            yield a            a += 1        elif a % 2 != 0:            yield "El siguiente número es inpar"            yield a            a += 1        else:            yield "dato incorrecto"            a += 1     b = int(input("Escribe hasta que número quieres que generemos números pares e inpares: ")) for num in tipo\_num(b):    print(num)
Muchas gracias por tomarse el tiempo y resolver el código sin dejar de grabar, esto nos muestra en donde están los detalles que debemos de tener y que todos podemos equivocarnos.
Creo que no toman en cuenta mis aportes pra mis puntajes >((( ```js def add (a , b): return a+b def substract (a,b): return a - b def divide (a,b): return a / b def multiply (a,b): return a * b def calculator (): while True: print ("Seleccione una opcion") print (" 1 . Suma") print (" 2 . resta") print (" 3 . División") print (" 4 . Multiplicación") print (" 5 . >>> SALIR <<< ") option = input ("Ingrese la opcion: (1,2,3,4,5): ") if option == "5": print ("Saliendo de la calculadora") break if option in ["1","2","3","4"]: num1 = float(input ("Ingrese numero 1 : ")) num2 = float(input ("Ingrese numero 2 : ")) if option == "1": print (">>>>> LA suma es : ", add(num1, num2)) elif option == "2": print (">>>>> LA resta es : ", substract(num1, num2)) elif option == "3": print (">>>>> LA division es : ", divide(num1, num2)) elif option == "4": print (">>>>> LA multiplicación es : ", multiply(num1, num2)) else: print ("opcion no valida, intenta de nuevo") ```
En python para hacer menús de opciones de manera similar a un switch partir de la versión 3 existe un método llamado match
Esta fue mi solución, en lugar de usar string, las opciones del menú y como los selecciona la o el usuario, las volví int: ```python # funcion calculadora def add(a, b): return a + b def substrac(a, b): return a - b def multiply(a, b): return a * b def divide(a, b): return a / b def calculadora(): while True: print('Seleccione una operacion') print('1 Suma') print('2 Resta') print('3 Multiplicacion') print('4 Division') print('5 Salir') option = int(input('Ingresa el numero de la operacion deseada (1, 2, 3, 4, 5): ')) if option == 5: print('Saliendo de la calculadora') break if option in [1, 2, 3, 4]: num1 = float(input('Ingrese el primer numero:')) num2 = float(input('Ingrese el segundo numero:')) if option == int(1): print('La suma es:', add(num1, num2)) elif option == int(2): print('La resta es:', substrac(num1, num2)) elif option == int(3): print('La multiplicacion es:', multiply(num1, num2)) elif option == int(4): print('La division es:', divide(num1, num2)) else: print('Opcion no valida, por favor intenta de nuevo.') calculadora() ```
Solo tuve que hacer una pequeña corrección, maravilloso, Carla. Gracias totales!
Por qué se necesita el while True: en el código? No logro entender esa lógica. Gracias
```python def add(a,b): return a+b def substract(a,b): return a-b def multiply(a,b): return a*b def divide(a,b): return a/b def calculadora(): while True: print("1. suma\n2. resta\n3. multiplicación\n4. división\n5. salir de la calculadora") opción = input("Selecciona una opción (1,2,3,4 o 5): ") if opción == "5": print("Saliste exitosamente de la calculadodra.") break if opción in ["1","2","3","4"]: num1 = float(input("ingresa el primer número: ")) num2 = float(input("ingresa el segundo número: ")) if opción == "1": print("La suma es", add(num1,num2)) elif opción == "2": print("La resta es", substract(num1,num2)) elif opción == "3": print("La multiplicación es", multiply(num1,num2)) elif opción == "4": print("La división es", divide(num1,num2)) if opción not in ["1","2","3","4","5"]: print("Opción no válida, inténtelo nuevamente.") calculadora() ```def add(a,b):    return a+bdef substract(a,b):    return a-bdef multiply(a,b):    return a\*bdef divide(a,b):    return a/b def calculadora():    while True:        print("1. suma\n2. resta\n3. multiplicación\n4. división\n5. salir de la calculadora")        opción = input("Selecciona una opción (1,2,3,4 o 5): ")                if opción == "5":            print("Saliste exitosamente de la calculadodra.")            break         if opción in \["1","2","3","4"]:            num1 = float(input("ingresa el primer número: "))            num2 = float(input("ingresa el segundo número: "))                        if opción == "1":                print("La suma es", add(num1,num2))            elif opción == "2":                print("La resta es", substract(num1,num2))            elif opción == "3":                print("La multiplicación es", multiply(num1,num2))            elif opción == "4":                print("La división es", divide(num1,num2))                if opción not in \["1","2","3","4","5"]:            print("Opción no válida, inténtelo nuevamente.")            calculadora()
def greet(name, last\_name="No tiene"):    print("Hola", name, last\_name) greet("Carli", "soto")greet("Diego")greet(last\_name="Florida", name="Carli")
Calculadora Esta es otra opción y además tiene en cuenta la division por cero. ```js select = float(input('Ingrese una opcion: 1=Suma, 2=Resta, 3=multiplicacion, 4=Division: ')) a = float(input('Ingrese primer numero: ')) b = float(input('Ingrese primer numero: ')) def suma(a,b): return 'La suma es:',a + b def resta(a,b): return 'La resta es:',a - b def multiplicar(a,b): return 'La multiplicacion es:',a * b def dividir(a,b): if b!=0: return 'La division es:',a / b else: print('El denominador es igial a',b,'por tanto no se puede relizar la operacion') def ops(a, b, select): if select==1: print(suma(a,b)) elif select==2: print(resta(a,b)) elif select==3: print(multiplicar(a,b)) elif select==4: print(dividir(a,b)) elif select == 5: print('Has salido de la calculadora') break; else: print('No ha seleccionado una opcion valida') ops(a,b,select) ```
Aquí esta mi solución de la calculadora, agregue un par de cosas 1. Agregue una excepción para manejar el tema de los errores 2. Ocupe modularidad en la refactorización de mi código para darle más eficiencia Espero su retroalimentación compañeros, muchas gracias ```python #Calculadora resultadoFinal = 0 def add(a,b): return a + b def sustract(a,b): return a - b def multiply(a,b): return a*b def divide(a,b): return a/b def calculator(): while True: print("######### Bienvenido a CalcuGus ########") print("Selecciona una operacion:") print("1. Suma") print("2. Resta") print("3. Multiplicar") print("4. Dividir") print("5. Salir") #Aplicando manejo de errores try: operacion = int(input("Ingresa la opción deseada: ")) if operacion not in range(1, 6): print("---------------------------------------------------") print("Opción no válida, ingresa solo opciones del 1 al 5") print("----------------------------------------------------") #En caso de que no este dentro del rango continue # Al salir if operacion == 5: print("Gracias por utilizar CalcuGus") break resultado, nameOp = operar(operacion) print(f">>>>>> Resultado de {nameOp} = {resultado}") #Para capturar múltiples excepciones en un bloque except, debes usar una tupla de excepciones except(TypeError, SyntaxError, ValueError) as e: print("---------------------------------------------------") print("Entrada inválida. Por favor, ingresa un número cualquiera.") print("---------------------------------------------------") def operar(operacion): nameOp = "" n1 = float(input("Ingresa número 1: ")) n2 = float(input("Ingresa número 2: ")) if operacion == 1: nameOp = "Suma" resultadoFinal = add(n1, n2) elif operacion == 2: nameOp = "Resta" resultadoFinal = sustract(n1, n2) elif operacion == 3: nameOp = "Multiplicación" resultadoFinal = multiply(n1, n2) elif operacion == 4: nameOp = "División" resultadoFinal = divide(n1, n2) return resultadoFinal, nameOp #Ejecución de calculadora calculator() ```
```js # calculadora def add(num1, num2): return num1 + num2 def sustraction(num1, num2): return num1 - num2 def multiplication(num1, num2): return num1 * num2 def divition(num1, num2): return num1 / num2 def calculadora(): print('Bienvenido a las operaciones') while True: print('Elige la operacion que deseas realizar') print('1. para sumar') print('2. para restar') print('3. para multiplicar') print('4. para dividor') print('5. para salir') operation = input('==>') if operation == "5": print('saliendo de la calculadora') break if operation in [ '1', '2', '3', '4']: num1 = float(input('ingresa primer numero =>')) num2 = float(input('ingresa primer numero =>')) if operation == '1': print('El resultado es =>', add(num1,num2)) elif operation == '2': print('El resultado es =>', sustraction(num1,num2)) elif operation == '3': print('El resultado es =>', multiplication(num1,num2)) elif operation == '4': print('El resultado es =>', divition(num1,num2)) else: print('Operacion invalida') calculadora() ```*# calculadora*def add(num1, num2): return num1 + num2 def sustraction(num1, num2): return num1 - num2 def multiplication(num1, num2): return num1 \* num2 def divition(num1, num2): return num1 / num2 def calculadora(): print('Bienvenido a las operaciones') while True: print('Elige la operacion que deseas realizar') print('1. para sumar') print('2. para restar') print('3. para multiplicar') print('4. para dividor') print('5. para salir') operation = input('==>') if operation == "5": print('saliendo de la calculadora') break if operation in \[ '1', '2', '3', '4']: num1 = float(input('ingresa primer numero =>')) num2 = float(input('ingresa primer numero =>')) if operation == '1': print('El resultado es =>', add(num1,num2)) elif operation == '2': print('El resultado es =>', sustraction(num1,num2)) elif operation == '3': print('El resultado es =>', multiplication(num1,num2)) elif operation == '4': print('El resultado es =>', divition(num1,num2)) else: print('Operacion invalida') calculadora()
Aqui un ejemplo, donde en lugar de usar elif, usamos un diccionario. def suma(num1,num2): return num1+num2 def resta (num1,num2): return num1+num2 def division (num1,num2): if num2 == 0: return "Error: Division entre 0 no permitida" return num1+num2 def multiplicacion (num1,num2): return num1+num2 def menu(): print(" 1 - Suma") print(" 2 - Resta") print(" 3 - Division") print(" 4 - Multiplicacion") print(" 5 - Salir") operaciones = { "1": suma, "2": resta, "3": division, "4": multiplicacion } def calculadora(): while True: menu() opcion = input("Ingrese una opción: ") if opcion == "5": print("Esta saliendo de la calculaora") break if opcion in operaciones: print(opcion) num1 = float(input("Ingrese el primer numero: ")) num2 = float(input("Ingrese el segundo numero: ")) print(operaciones\[opcion]) resultado = operaciones\[opcion]\(num1, num2) print(resultado) print(f"El resultado es: {resultado}") else: print("Opcion invalida, intente de nuevo") calculadora()
```python lista = ["pera","manzana","leche","tocino"] def verLista(): for indice, elemento in enumerate(lista,start=1): print(f"{indice}. {elemento}") def addItem(): agregar = input("Ingresa lo que quieras agregar: ") lista.append(agregar) def removeItem(): quitar = input("Escriba elif opcion == 4: pass el elemento a retirar: ") if quitar in lista: lista.remove(quitar) def shoppingList(): while True: print("1. Ver lista") print("2. Agregar elemento") print("3. Quitar elemento") print("4. Salir") opcion = int(input("Ingresa una opcion: ")) if opcion == 4: print("Saliendo del programa.") break if opcion in [1,2,3]: if opcion == 1: verLista() elif opcion == 2: addItem() elif opcion == 3: removeItem() else: print("Selección inválida") shoppingList() ```
`Acá un programa distinto usando la misma estructura lógica de la calculadora:` lista = \["pera","manzana","leche","tocino"] def verLista(): for indice, elemento in enumerate(lista,start=1): print(f"{indice}. {elemento}") def addItem(): agregar = input("Ingresa lo que quieras agregar: ") lista.append(agregar) def removeItem(): quitar = input("Escriba elif opcion == 4: pass el elemento a retirar: ") if quitar in lista: lista.remove(quitar) def shoppingList(): while True: print("1. Ver lista") print("2. Agregar elemento") print("3. Quitar elemento") print("4. Salir") opcion = int(input("Ingresa una opcion: ")) if opcion == 4: print("Saliendo del programa.") break if opcion in \[1,2,3]: if opcion == 1: verLista() elif opcion == 2: addItem() elif opcion == 3: removeItem() else: print("Selección inválida") shoppingList()
Apuntes, codigo y ejercicios. ```python # FUNCIONES # en este codigo aprenderemos a usar funcione def function1(): # Aquie definidmos la funcion print("Hola universo") # Aqui decimos que va a hcer la funcion, en este caso solo es un mensje function1() # Aqui llamamos a la funcion y realiza lo que tiene dentro def greet(name, last_name="No tiene apellido"): # Aqui definimos la funcion y al poner comas decimso que tiene 2 variabkes depentientes y si una no existe va a decir un mensaje print("Hola", name, last_name) # La tarea de la funcion es imprimir un mensaje y luego la variable name y despues last_name greet("Evarsto", "Gomez") # se pone como el orden de las comas (name, last_name) greet("Varo") # Aqui solo existe el name por lo tanto imprimira "No tiene apellido" greet(last_name = "Gomez", name = "Evaristo") # Aqui se especifican las variables a donde se asigna def add(a,b): # esta funciono solo asigna los valosres de a y b return a+b # como resutado de la funcion devuelve la suma de a y b def substract(a,b): return a - b def multiply(a,b): return a * b def divide(a,b): return a / b def calculator(): while True: print("------------------------------------------------------------") print("------------------------------------------------------------") print("Seleccione una operación") print("1. Suma") print("2. Resta") print("3. Multiplicación") print("4. División") print("5. Salir") option = input("Ingrese su opción (1,2,3,4,5): ") if option == "5": # en este if no se pone elif o else por el break print("Saliendo de la calculadora") break if option in ["1","2","3","4"]: #aqui decimso que si es cualquiers de esas 4 opciones pregunte por num1 y num2 num1 = float(input("Ingrese el primer numero: ")) # Aqui si declaramos que se aun flotante por que el dato es introducido por el usuari num2 = float(input("Ingrese el segundo numero: ")) # Aqui si declaramos que se aun flotante por que el dato es introducido por el usuari if option == "1": print("La suma es:", add(num1, num2)) elif option == "2": print("La resta es:", substract(num1, num2)) elif option == "4": print("La división es:", divide(num1, num2)) elif option == "3": print("La multiplicación es:", multiply(num1, num2)) else: print("Opción no válida, por intenta de nuevo") calculator() # NOTA CURIOSA #En Python, no estás obligado a declarar el tipo de una variable porque Python # es un lenguaje de programación dinámico y de tipado fuerte. # Esto significa que el tipo de una variable se determina automáticamente en tiempo de ejecución, # y no necesitas especificarlo explícitamente cuando declaras la variable. ```# FUNCIONES# en este codigo aprenderemos a usar funcione def function1():                # Aquie definidmos la funcion    print("Hola universo")      # Aqui decimos que va a hcer la funcion, en este caso solo es un mensje function1()                     # Aqui llamamos a la funcion y realiza lo que tiene dentro def greet(name, last\_name="No tiene apellido"):     # Aqui definimos la funcion y al poner comas decimso que tiene 2 variabkes depentientes  y si una no existe va a decir un mensaje    print("Hola", name, last\_name)                  # La tarea de la funcion es imprimir un mensaje y luego la variable name y despues last\_name greet("Evarsto", "Gomez")                           # se pone como el orden de las comas (name, last\_name)greet("Varo")                                       # Aqui solo existe  el name por lo tanto imprimira "No tiene apellido"greet(last\_name = "Gomez", name = "Evaristo")       # Aqui se especifican las variables a donde se asigna def add(a,b):                   # esta funciono solo asigna los valosres de a y b            return a+b                  # como resutado de la funcion devuelve la suma de a y b def substract(a,b):    return a - b def multiply(a,b):    return a \* b def divide(a,b):    return a / b def calculator():    while True:        print("------------------------------------------------------------")        print("------------------------------------------------------------")        print("Seleccione una operación")        print("1. Suma")        print("2. Resta")        print("3. Multiplicación")        print("4. División")        print("5. Salir")         option = input("Ingrese su opción (1,2,3,4,5): ")         if option == "5": # en este if no se pone elif o else por el break            print("Saliendo de la calculadora")            break         if option in \["1","2","3","4"]: #aqui decimso que si es cualquiers de esas 4 opciones pregunte por num1 y num2            num1 = float(input("Ingrese el primer numero: "))       # Aqui si declaramos que se aun flotante por que el dato es introducido por el usuari            num2 = float(input("Ingrese el segundo numero: "))      # Aqui si declaramos que se aun flotante por que el dato es introducido por el usuari             if option == "1":                print("La suma es:", add(num1, num2))            elif option == "2":                print("La resta es:", substract(num1, num2))            elif option == "4":                print("La división es:", divide(num1, num2))            elif option == "3":                print("La multiplicación es:", multiply(num1, num2))                else:            print("Opción no válida, por intenta de nuevo") calculator()     \# NOTA CURIOSA#En Python, no estás obligado a declarar el tipo de una variable porque Python # es un lenguaje de programación dinámico y de tipado fuerte. # Esto significa que el tipo de una variable se determina automáticamente en tiempo de ejecución, # y no necesitas especificarlo explícitamente cuando declaras la variable.
Aquí está mi versión de la calculadora. Utilicé match - case (disponible a partir de Python 3.10) y valide la división entre 0. ```python def add(a, b): return a + b def sub(a, b): return a - b def mult(a, b): return a * b def div(a, b): if b != 0: return a / b else: return False # Indeterminación: División entre 0 def menu(): print("Calculadora\n") print("1. Suma") print("2. Resta") print("3. Multiplicación") print("4. División") print("5. Salir del programa\n") return input("Digita una opción: ") opt = "0" while opt != "5": opt = menu() print() if opt in ["1", "2", "3", "4"]: print("Dígita dos números:\n") a = float(input("1: ")) b = float(input("2: ")) print() match opt: case "1": res = add(a, b) case "2": res = sub(a, b) case "3": res = mult(a, b) case "4": res = div(a, b) if res != False: print("Resultado:", res) else: print("Error: No es posible dividir entre 0") elif opt == "5": print("Has salido del programa") else: print("Opción inválida. Inténtalo de nuevo") print() ```
Lo que me deja loco de las funciones es que por ejemplo a una le dejo un parametro de una variable pero que todavia no la creo, la creo despues de la funcion , pero como llama la funcion despues de determinar todo, funciona correctamente, eso me deja loco la verdad .
Cuando el código no respondio en el primer intento capto mucho más mi atención. Un ejemplo muy muy real de lo que vemos en la terminal mientras vamos escribiendo y construyendo la logica, gracias! 💚💚💚
Algo que he aprendido últimamente que me ha parecido muy interesante y que me gustaría compartir, es el manejo de PEP8 y afines. Donde indican las buenas prácticas para programar en python. Uno de los puntos que me llamó mucho la atención, es la forma "más legible" de declarar una función o clase. Un ejemplo de ello es el siguiente: ```python def greet(name: str, last_name: str) -> None: """ Greets a person with their first and last name. Parameters: name (str): The first name of the person. last_name (str): The last name of the person. Returns: None """ print(f"Hola {name} {last_name}") ```En donde se tiene el "docstring" con `""""Hello fucntion [...] """` donde se muestra una descripción de lo que hace la función y sus parámetros. El tipo de dato que espera recibir es como el caso de `name: str` y finalmente la salida esperada, en este caso `None`. Esto hace que todo sea mucho más claro, para más información ver : <https://peps.python.org/pep-0008/> Sería interesante tener un curso de esto en Platzi.
Dios mío hay muchos profesores en los comentarios ya me confundí
reescribir el código no es reutilizar
Al cambiar los números del menú ![](https://static.platzi.com/media/user_upload/image-212120e5-7872-42cf-8459-2bdf6adf930d.jpg) Faltó adaptar el código en las condicionales. Es importante que aquellos que lo vayan a implementar tengan en cuenta que deben modificar estas declaraciones `elif.` ![](https://static.platzi.com/media/user_upload/image-83e4c8cd-e44d-4317-a565-54d28f7d9492.jpg)
```python #Ejercicio de Calculadora def add(a,b): return a + b def substract(a,b): return a - b def multiply(a,b): return a * b def divide(a,b): return a / b def calculator(): while True: print("Seleccione una operación") print("1. Suma") print("2. Resta") print("3. Multiplicación") print("4. División") print("5. Salir") option = input("Ingresa su opción (1,2,3,4,5):") if option == "5": print("Saliendo de la calculadora") break if option in ["1","2","3","4"]: num1 = float(input("Ingrese el primer numero: ")) num2 = float(input("Ingrese el segundo numero: ")) if option == "1": print("La suma es:", add(num1,num2)) elif option == "2": print("La resta es:", substract(num1,num2)) elif option == "3": print("La multiplicación es:", multiply(num1,num2)) elif option == "4": print("La división es:", divide(num1,num2)) else: print("Opción no válida, por favor intenta de nuevo.") calculator() ```def add(a,b):    return a + b def substract(a,b):    return a - b def multiply(a,b):    return a \* b def divide(a,b):    return a / b def calculator():    while True:        print("Seleccione una operación")        print("1. Suma")        print("2. Resta")        print("3. Multiplicación")        print("4. División")        print("5. Salir")         option = input("Ingresa su opción (1,2,3,4,5):")         if option == "5":            print("Saliendo de la calculadora")            break                if option in \["1","2","3","4"]:            num1 = float(input("Ingrese el primer numero: "))            num2 = float(input("Ingrese el segundo numero: "))             if option == "1":                print("La suma es:", add(num1,num2))            elif option == "2":                print("La resta es:", substract(num1,num2))            elif option == "3":                print("La multiplicación es:", multiply(num1,num2))            elif option == "4":                print("La división es:", divide(num1,num2))           else:            print("Opción no válida, por favor intenta de nuevo.") calculator()
Muy buena explicación y muy facil de entender
Necesito ayuda, según yo tengo todo igual a ti pero cuando pregunta la opción da lo mismo que número ponga se va al else igual y dice "opcion no valida porvafor intenta de nuevo"
Muy buen curso hasta ahora, y excelente material de apoyo (Lecturas recomendadas.)