Introducci贸n

1

El Zen de Python

Conjuntos

2

Sets

3

Modificando conjuntos

4

Operaciones con conjuntos

5

Playgrounds: Elimina elementos duplicados usando conjuntos

Comprehensions

6

List Comprehension

7

Dictionary Comprehension

8

Dictionary Comprehension: condition

9

Playgrounds: Crea una lista usando List Comprehension

10

Lists vs. Tuples vs. Sets

Funciones

11

Funciones

12

Funciones: return

13

Par谩metros por defecto y m煤ltiples returns

14

El scope

15

Refactor game

16

Playgrounds: Tienda de Tecnolog铆a

17

Funciones an贸nimas: lambda

18

Higher order function: una funci贸n dentro de otra funci贸n

19

Map

20

Map con diccionarios

21

Reto: map con inmutabilidad

22

Playgrounds: Multiplica todos los elementos por dos

23

Filter

24

Playgrounds: Retorna solo palabras de 4 letras y m谩s

25

Reduce

M贸dulos

26

M贸dulos

27

Mis propios m贸dulos

28

M贸dulos como scripts: __name__ y __main__

29

Paquetes

30

Playgrounds: Calcular la suma de todas las compras

Manipulaci贸n de archivos y errores

31

Iterables

32

Errores en Python

33

Manejo de excepciones

34

Playgrounds: Captura la excepci贸n: ZeroDivisionError

35

Leer un archivo de texto

36

Escribir en un archivo

37

Leer un CSV

38

Playgrounds: Lee un CSV para calcular el total de gastos

Gr谩ficas en Python

39

Creando una gr谩fica

40

Reto: graficando la poblaci贸n de un pa铆s

41

Reto: graficando la poblaci贸n mundial

Pr贸ximos pasos

42

隆Conoce otros proyectos de este curso!

43

Reconoce tu proceso y certif铆cate

44

Toma el Curso de PIP y Entornos Virtuales con Python

No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Funciones

11/44
Recursos

Aportes 66

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Tip pequenito:
El valor que ingresas cuando llamas la funcion se llama PARAMETRO
Mientras que el valor que usamos dentro de la funcion se llama ARGUMENTO

Principio DRY

Las funciones nos ayudan a cumplir con uno de los principios m谩s importantes de la programaci贸n como lo es el principio DRY (don鈥檛 repeat yourself) o (no te repitas).

Al tener la l贸gica en una funci贸n evitas tener que escribir la misma l贸gica una y otra vez, de modo que tienes un c贸digo m谩s limpio y m谩s escalable.

Mi aporte:

print('Hola, Platzinauta') 
#Agregando una funcion print

def greeting(text):
# Aqu铆 estamos agregando una funcion y su sintaxis.
# Junto con sus parametros en este caso 'text'
  print('This is my print')
  print('This is my print 2')
  print(text)

greeting('parametro')
#  Una manera de llamar a la funci贸n
greeting('Texto ejemplo, llamando a la funci贸n desde su parametro. ' * 2)
#Aqu铆 otro ejemplo con suma
def suma(a,b):
  print(a + b)
#  Imprimimos el resultado a consola
suma(200, 100) 
# llamamos a la funci贸n con parametros

mi aporte

el aporte es el juego de piedra papel o tijera hecho en el anterior curso

# Imports
import random
import time
import getpass

# Write animation
def write_fx(frase):
    for letra in frase:
        print(letra, end='', flush=True)
        time.sleep(0.010)
    
# game
def play(num1, num2, cpu_cs):
     
    empty = 0

    computer_wins = 0

    user_wins = 0

    rounds = 0


    while True:
        
        num2 = random.choice(cpu_cs)


        if num1 == num2:
            time.sleep(1)
            result = '\n    [*] Nadie gana'
            empty += 1
            rounds += 1

        elif num1 =='tijeras' and num2 == 'piedra' or num1 == 'papel' and num2 == 'tijeras' or num1 == 'piedra' and num2 == 'papel':
            time.sleep(1)
            result = '\n    [*] La maquina gana'
            computer_wins += 1
            rounds += 1

        elif num1 == 'piedra' and num2 == 'tijeras' or num1 == 'tijeras' and num2 == 'papel' or num1 == 'papel' and num2 == 'piedra':
            time.sleep(1)
            result = '\n    [*] El jugador gana'
            user_wins += 1
            rounds += 1

        if user_wins == 2:
            write_fx(f'''   
    Resultado de Partida numero {rounds}   
                
            {result}

    La seleccion de la maquina fue {num2}''')
            table('EL Usuario :D', rounds, user_wins, computer_wins, empty)
            break

        elif computer_wins == 2:
            write_fx(f'''   
    Resultado de Partida numero {rounds}   
                
            {result}

    La seleccion de la maquina fue {num2}''')
            table('La Maquina :D', rounds, user_wins, computer_wins, empty)
            break

        else:
            write_fx(f'''   
    RESULTADO DE PARTIDA NUMERO {rounds}   
                
            {result}

    La seleccion de la maquina fue {num2}''')

                
            write_fx(f'''
            
    vuelve a escoger entre 
            
    [*] Piedra
    [*] Papel
    [*] Tijeras
            
    para la siguiente ronda: ''')
            
            num1 = input('').lower().replace(' ','')

            if num1 not in cpu_cs:
                write_fx('\n    Comando no valido')
                time.sleep(1)
                
                write_fx(f'''
            
    vuelve a escoger entre 
            
    [*] Piedra
    [*] Papel
    [*] Tijeras
            
    para la siguiente ronda: ''')
                num1 = input('').lower().replace(' ','')
                continue

# User Interface
def table(nom, var1, var2, var3, var4):
    time.sleep(1)
    write_fx(f'''
    
     ________________________________________________________________
    | Partidas | ganadas por usuario | ganadas por maquina | Empates |
    |------------------------------------------------------|---------|
    |     {var1}    |         {var2}           |         {var3}           |    {var4}    |
     ----------------------------------------------------------------
    
    El ganador de la ronda es  {nom} 

                        
                        
                         鈻堚枅鈻堚枅鈻堚枅鈺   鈻堚枅鈻堚枅鈻堚枅鈺
                        鈻堚枅鈺斺晲鈺愨晲鈺愨暆  鈻堚枅鈺斺晲鈺愨晲鈺愨暆
                        鈻堚枅鈺戔枒鈻戔枅鈻堚晽  鈻堚枅鈺戔枒鈻戔枅鈻堚晽
                        鈻堚枅鈺戔枒鈻戔暁鈻堚枅鈺 鈻堚枅鈺戔枒鈻戔暁鈻堚枅鈺
                        鈺氣枅鈻堚枅鈻堚枅鈻堚晹鈺 鈺氣枅鈻堚枅鈻堚枅鈻堚晹鈺
                         鈺氣晲鈺愨晲鈺愨晲鈺   鈺氣晲鈺愨晲鈺愨晲鈺

    ''')


def home():
    choices = ('piedra', 'papel', 'tijeras')

    write_fx ('''
    
    Bienvenido a piedra, papel o tijeras

    El juego es en partidas, el primero en ganar
    2 partidas gana la ronda.

    [*] Piedra
    [*] Papel
    [*] Tijeras
    
    Escribe cual va a escoger aca --> ''')

    user_cs = input('').lower().replace(' ','')

    comp_cs = random.choice(choices)

    if user_cs not in choices:
        write_fx('\n    Comando no valido')
        time.sleep(1)
        home()

    else:
        play(user_cs, comp_cs, choices)

        write_fx(f'\n\n    Preciona enter para volver a jugar')
        getpass.getpass(' ')
        home()

if __name__ == '__main__':
    home()

Funciones

Una funci贸n es un grupo de declaraciones relacionadas que realizan una tarea espec铆fica.

Las funciones ayudan a dividir nuestro programa en partes m谩s peque帽as y modulares. A medida que nuestro programa crece m谩s y m谩s, las funciones lo hacen m谩s organizado y manejable.

Adem谩s, evita la repetici贸n y hace que el c贸digo sea reutilizable.

def function_name(parameters):
	"""docstring"""
	statement(s)

yo practiqu茅 las funciones creando un peque帽o algoritmo para convertir fahrenheit a celsius, de esta manera:
def Celsius():
fahrenheit = float(input('what is the Fahrenheit temp? '))
celcius = (fahrenheit - 32) * 5/9
rounded_celcius = (round(celcius, 1))
print(rounded_celcius)

Celsius()

Me encanto haber aprendido las funciones. Me siento un Pythonista m谩s

def my_print(text):
  print(text * 3)

my_print('This is my text ')

def operation(a, b):
  print(a + b)

operation(10,5)
operation(6,9)

馃懆鈥嶐煉 Funci贸n = 馃摝馃敤
馃敤 Se definen con "def"
馃摜 Pueden recibir par谩metros
馃摛 Pueden devolver valores
馃挕 Ayudan a simplificar y organizar el c贸digo
馃懃 Permiten modularidad y reutilizaci贸n.

Increible clase.
Hab铆a tomado antes varios cursos de programaci贸n y hasta ahora me quedan claro las funciones.

Hola!

Les comparto el c贸digo de la clase

# Funciones
# https://www.w3schools.com/python/python_functions.asp

print("Hola")

# Definir funcion de impresion
def my_print(text):
  print(text * 2)

# Llamado a la funcion
my_print("This is my text")
my_print("Hola")

# Funcion de suma
a = 10
b = 90
def sum(a, b):
  print(a + b)

sum(a, b)
sum(10, 5)
Ufff debo admitir que este tema me es algo dif铆cil cuando el return entra en acci贸n y cuando se env铆an par谩metros de un archivo a otro ;V ![](https://static.platzi.com/media/user_upload/Funciones%201-c04da02d-d3c7-4998-b7b6-9373b4f2c1b2.jpg)

La funci贸n dir(): Nos dice todos los m茅todos que podemos utilizar dentro de un objeto.`

#ejemplo con una lista

>>> list = ['col', 'mex', 'bol', 'pe']
>>> dir(list)
['__add__', '__class__', '__class_getitem__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> 

porque me sale muchismos mensajes de esos ahi mas de los que salen en la imagen, no entendi poruqe se multiplico todas esas veces mas de 50 sale

quedo entendido con este peque帽o ejercicio

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

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

def multiplicacion(a,b):
    print(a*b)

def division(a,b):
    print(a/b)

if __name__ == '__main__':
    a = int(input("Escribe un primer numero"))
    b = int(input("Escribe un segundo numero"))
    repetir = 's'
    while repetir =='s' or repetir =='S':

        menu = """ Operaciones basicas
        1.suma
        2.resta
        3.multiplicacion
        4.Division"""

        print(menu)
        opc = (int(input("seleccione una opcion")))

        if opc == 1:
            suma(a,b)
        elif opc ==2:
            resta(a,b);
        elif opc==3:
            multiplicacion(a,b);
        elif opc ==4:
            print("el resultado es :"+str(division(a,b)))
        else:
            print("Opcion no valida")
        repetir = input("escriba s para seleccionar otra operacion")
""" function """
print("The life in the world")

def suma(x, y):
  res = x + y
  print(res)

def multiplicacion(x, y):
  res = x * y
  print(res)

suma(3, 4)
suma(4, 8)
multiplicacion(3, 4)
multiplicacion(4, 8)

Coloquialmente al Par谩metro Formal le decimos 鈥減ar谩metro鈥 y al Par谩metro Real le decimos 鈥渁rgumento鈥, peeero鈥


En inform谩tica, un par谩metro formal es un nombre de variable declarado en la definici贸n de una funci贸n para representar el valor que se pasa a la funci贸n cuando se llama. Los par谩metros formales tambi茅n se conocen como par谩metros de entrada, par谩metros de referencia o par谩metros de marcador.

Un par谩metro real es el valor que se pasa a una funci贸n cuando se llama. Los par谩metros reales tambi茅n se conocen como par谩metros de salida, par谩metros de valor o operandos.

Relaci贸n entre par谩metros formales y reales

La relaci贸n entre los par谩metros formales y reales es la siguiente:

  • Cuando se llama a una funci贸n, los valores de los par谩metros reales se asignan a los par谩metros formales correspondientes en el cuerpo de la funci贸n.
  • Los valores asignados se utilizan por la funci贸n para realizar sus c谩lculos o operaciones.
  • La funci贸n devuelve un valor, que est谩 determinado por los valores de los par谩metros reales y los c谩lculos u operaciones realizados por la funci贸n.

Hola compas, les queria comentar que se puede crear una funcion para x cantidad de argumentos, es decir si una ves haces una suma con tres digitos, y luego una con cuatro y va variando, puede usar la siguiente linea de codigo o funcion:
def suma(*args):
print(sum(args))
suma(1,2,6,0)
suma(5,2,8,5,3,9,3)

donde *args es una palabra CREO que reservada para que los argumentos sean variables, es decir x cantidad.

Me sorprende el uso de las funciones de su forma basica y como esta se implementa con el resto de sus ejercicios. Estoy aprendiendo bastante. A continuar.

Que tal, asi le hice yo:

nombre = input("Digite su nombre\n")

def saludo(nombre):
    print('Saludos', nombre)

saludo(nombre)

def sumar(a, b):
    print(a, "+", b, "=",a+b)

primerValor = input("Digite un numero para sumar\n")
segundoValor = input("Digite otro numero para sumar\n")

a = int(primerValor)
b = int(segundoValor)
sumar(a,b)

Las funciones en Python son bloques de c贸digo reutilizables que realizan una tarea espec铆fica cuando se llaman. Las funciones son una parte fundamental de la programaci贸n en Python y te permiten escribir c贸digo modular y reutilizable. Aqu铆 hay una descripci贸n general de c贸mo definir y usar funciones en Python:

Definir una Funci贸n

Para definir una funci贸n en Python, puedes utilizar la palabra clave def, seguida del nombre de la funci贸n y par茅ntesis que pueden contener los par谩metros de la funci贸n. A continuaci贸n, se encuentra la sintaxis b谩sica de una funci贸n:

pythonCopy code
def nombre_de_la_funcion(parametro1, parametro2, ...):
    # Cuerpo de la funci贸n
    # Puedes realizar operaciones y c谩lculos aqu铆
    return resultado  # Opcional: puedes devolver un valor utilizando la declaraci贸n return

  • nombre_de_la_funcion: Es el nombre que le das a la funci贸n. Debe seguir las convenciones de nombres de variables de Python (generalmente en min煤sculas con palabras separadas por guiones bajos).
  • parametro1, parametro2, 鈥: Son los par谩metros de la funci贸n. Son valores que la funci贸n acepta como entrada. Puedes tener cero o m谩s par谩metros.
  • return: Es una declaraci贸n opcional que se utiliza para devolver un valor desde la funci贸n. Si no se proporciona, la funci贸n puede simplemente realizar un c谩lculo o una tarea y no devolver ning煤n valor.

Llamar a una Funci贸n

Para llamar a una funci贸n en Python, simplemente escribe su nombre seguido de par茅ntesis y proporciona los argumentos necesarios si la funci贸n tiene par谩metros. Aqu铆 tienes un ejemplo:

pythonCopy code
resultado = nombre_de_la_funcion(argumento1, argumento2, ...)

  • nombre_de_la_funcion: Es el nombre de la funci贸n que deseas llamar.
  • argumento1, argumento2, 鈥: Son los valores que proporcionas como entrada a la funci贸n. Deben coincidir en n煤mero y orden con los par谩metros de la funci贸n.

Ejemplo de Funci贸n

Aqu铆 hay un ejemplo de una funci贸n simple que suma dos n煤meros y devuelve el resultado:

pythonCopy code
def suma(a, b):
    resultado = a + b
    return resultado

# Llamamos a la funci贸n
resultado_suma = suma(3, 5)
print(resultado_suma)  # Esto imprimir谩 8

Este es un ejemplo b谩sico de c贸mo definir y usar funciones en Python. Las funciones pueden ser mucho m谩s complejas y realizar una variedad de tareas, desde c谩lculos matem谩ticos hasta procesamiento de datos y manipulaci贸n de archivos. Son una herramienta esencial para organizar y modularizar tu c贸digo.

Hola buenas noches 馃槂
Envio mis apuestes muy detallados :

#funciones: Son l铆neas de c贸digo que se utilizan repetidas veces y para optimizar c贸digo.

#salida de string
print('Hola')

#funcion nom_funcion(#par谩metro)
def my_print(text):
  #se define el comportamiento de la funcion , imprime 1 vez, 2 veces..
  print(text * 2)  #toma el par谩metro del texto y lo multiplca por 2.
  #Si recibe un int los multiplica * 2
  #Si recibe un texto lo duplica
my_print('Esto es una funcion')

#Funcion Suma
#tradicional
a = 10
b = 20

c = a + b
#con funci贸n.
#Adem谩s podemos utilizar una funci贸n dentro de otra
def suma(a, b):
  my_print(a + b)

suma(10, 3)  #13

Cuando dijo que har铆amos nuestra propia versi贸n de print, pens茅 que 铆bamos a hacer la funci贸n desde cero 馃ぃ

def suma( numero, numero2 , numero3):
print (numero + numero2 + numero3)
suma ( 25, 56, 57)

Operaciones b谩sicas en funciones.

import random

#Funcion que recibe dos parametros y calcula las operaciones b谩sicas con esos n煤meros.
def my_print(num_a, num_b):
  print("\nN煤meros:", num_a, "y", num_b)
  print("Suma: ", num_a + num_b)
  print("Resta: ", num_a - num_b)
  print("Multiplicacion: ", num_a * num_b)
  print("Divisi贸n: ", num_a / num_b)
  print("\n")

#Declaro los n煤meros
num_a = random.randint(1, 50)
num_b = random.randint(1, 50)
my_print(num_a, num_b)

Mi aporte con impresi贸n personalizada

# Definici贸n de la funci贸n my_print que recibe un argumento llamado 'text'.
def my_print(text):

  # Estas son l铆neas de comentarios que no afectan la ejecuci贸n del c贸digo.
  # print('This is my print')
  # print('This is my print 2')

  # Aqu铆 se imprime una cadena de texto que se forma a trav茅s de una f-string.
  # La f-string permite insertar valores dentro de la cadena usando las llaves {}.
  print(f'Multiplicado por dos: {(text + " - ") * 2}'.rstrip(" -"))

# Se llama a la funci贸n my_print con el argumento 'Este es mi texto'.
my_print('Este es mi texto')

# Se llama a la funci贸n my_print con el argumento 'Hola'.
my_print('Hola')

Ojal谩 les sirva!
Saludos.

# print es una funcion
print("Hola")

# def definir una funcion

def texto(text):
    print(text)
texto(" este es mi texto ")
texto(" Juan camilo salazar hernandez ")

a= 0
b =0
c= a+b
def operacion(a,b):
    print(a+b)
operacion(1,5)
operacion(10,4)

def my_function(fname, lname):
print(fname + " " + lname)

my_function(鈥淓mil鈥) en este caso entonces no afecta nada solo imprime un argumento

Yo aqu铆 intentado conectar conceptos de list comprehension y funciones.

![](

Quizas el ejemplo de la pr谩ctica que hice este medio God铆n, pero aqui va mi ejercicio:

def myprint(mensaje):
  print("Hola este es el mensaje: ", mensaje)

def iva (base):
  impuesto = base * 0.16
  return impuesto
  
importe= float(input("Cual es el monto neto del producto?"))
iva16= iva(importe)
mensaje= "Te tocar谩 pagar un total de " + str(iva16) + " por concepto de IVA"
myprint(mensaje)

Funciones: asiganar un nombre a un conjunto de instrucciones para luego utilizarlas sin la necesidad de re escribir o copiar su c贸digo c贸digo.

Las funciones en Python son 煤tiles por varias razones:

  • Promueven la reutilizaci贸n de c贸digo, ya que puedes definir una funci贸n una vez y llamarla m煤ltiples veces en diferentes partes del programa.

  • Ayudan a organizar y modularizar el c贸digo, dividiendo tareas complejas en bloques m谩s peque帽os y manejables.

  • Mejoran la legibilidad y mantenibilidad del c贸digo, ya que los bloques de c贸digo se encapsulan en funciones con nombres descriptivos.

  • Permiten la abstracci贸n de la l贸gica, lo que facilita el entendimiento del c贸digo sin preocuparse por los detalles internos de c贸mo se realiza una tarea.

Super buena la explicaci贸n, python hace entender mejor el concepto.

se me ocurrio imprimir los 2 resultados como numeros consecutivos y para esto necesito modificar la funcion suma y transformar la variable en un string, asi quedo

def suma(a, b):
  result = a + b
  print(result)
  my_print(str(result))

Hice una funci贸n que me de un par ordenado. Seguro se puede hacer mejor de muchas formas, solo fue lo primero que se me ocurri贸:

# primera idea para crear un par ordenado
# python reconoce qu茅 tipo de argumento de le est谩 dando, no se tiene que especificar el tipo como en otros lenguajes

def par_ordenado():
  par = []
  while len(par) < 2:
      try:
        entrada = float(input ("Escribe las cordenadas del punto "))
        par.append(entrada)
      except ValueError:
        print("No me has dado un n煤mero ")
  vector = tuple(par)
  print(vector)

par_ordenado()

# crea el par ordenado con una funci贸n de dos par谩metros a ver como te sale :)
print('Hola')

def my_print(text):
  print(text * 2)

my_print('Este es my texto')
my_print('Hola')

a = 10
b = 48

c = a + b

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

suma(3, 48)
suma(3, 51)
  

Como concejo, traten de hacer todos los ejemplos pero h谩ganlos a su manera llenen los textos que ustedes quieran eso te lleva mas all谩 de transcribir lo que hace el que te ense帽a y por ende tu mente lo asimila muy diferente, peace que alcancen el sue帽o.


驴Par谩metros o Argumentos?


Los t茅rminos par谩metro y argumento se pueden usar basicamente para lo mismo: informaci贸n que se pasa a una funci贸n.
Visto desde el criterio de una funci贸n: Un par谩metro es la variable que aparece entre par茅ntesis en la definici贸n de la funci贸n:

def mi_funcion(nombre, apellido):
  print( nombre + " " + apellido )

Un argumento es el valor que se env铆a a la funci贸n cuando se llama:

mi_funcion("Fernando", "Botero")

creo que cuando se empieza a familiarizar con la terminologia de programacion, como parametros, argumentos o constructores, se debe esplicar como tal.

dos parametros

Excelente concepto, intentar茅 reescribir el juego de Piedra, Papel o Tijeras con funciones

De tanto intentar, por fin lo logre!

mi c贸digo, fallo por no cuadrar bien la identaci贸n.

import os


def sum():
    x = float(input('Enter the number for x:\t'))
    y = float(input('Enter the number for y:\t'))
    print(f'Result: {x+y}')
    input('Press enter to continue...')    

def rest():
    x = float(input('Enter the number for x:\t'))
    y = float(input('Enter the number for y:\t'))
    print(f'Result: {x-y}')
    input('Press enter to continue...')
    
def multi():
    x = float(input('Enter the number for x:\t'))
    y = float(input('Enter the number for y:\t'))
    print(f'Result: {x*y}')
    input('Press enter to continue...')
    
def div():
    x = float(input('Enter the number for x:\t'))
    y = float(input('Enter the number for y:\t'))
    print(f'Result: {x/y}')
    input('Press enter to continue...')


def main():
    option = 0
    while True:
        os.system('clear') # linux / mac os
        print('================================================================')
        print('\n1. Sum')
        print('\n2. Rest')
        print('\n3. Multi')
        print('\n4. Div')
        print('\n0. Finish')
        option = input('\nPlease enter your choice...\t')
        
        match option:
            case '1':
                sum()
            case '2':
                rest()
            case '3':
                multi()
            case '4':
                try:
                    div()
                except ZeroDivisionError:
                    print('Zero division failed. Try again...')
                    input('Press enter to continue...')
            case '0':
                pass
            case _:
                print('Invalid option')
                input('Press enter to continue...')             
        
        if option == '0':
            break
        

main()

QUE ES UNA FUNCION EN UN PARRAF脫

Una funci贸n en Python es un bloque de c贸digo que realiza una tarea espec铆fica y se puede llamar desde otros lugares del c贸digo para reutilizar la misma funcionalidad sin tener que escribir el mismo c贸digo varias veces.

Podemos documentar lo que hace nuestra funci贸n por medio de los docstring de python (ayuda a entender lo que hace la funci贸n a personas externas a nuestro c贸digo). Tambi茅n podemos especificar el tipo de dato que va recibir nuestra funci贸n al ser llamada.
Para poder visualizar la documentaci贸n de nuestra funci贸n se hace por medio del atributo my_print.doc

def my_print(text: str):
    """
    Simple function to print any kind of text
    :param text: Any kind of str python type
    return: printed text in terminal
    """
    print(text)


any_phrase = "Mi aporte platzi"
print(my_print.__doc__)
my_print(any_phrase)

Hola!!! Les dejo mi codigo espero ayude

'''
Funciones

def namefunct():
  code

funcion(argumento)
'''
# Funcion parahacer una linea de = para dividir en la consola 
def jumpline():
  print('='*25)
# print() es una funcion y de argumento tiene 'hola'
print('Hola')

# Defino mi funcion de prueba
def my_print():
  print('This is my print')
  print('This is a second print()')
my_print()
jumpline()

# Puedo darle parametros a mis funciones
def my_print(text):
  print(text * 2)
my_print('This is my text')
jumpline()

# Cuando le doy un parametro le asigno un lugar a mi codigo para que me lo devuelvan como un armgumento
my_print('Hola este es mi texto ')
jumpline()

# Normalmente para hacer una suma con dos variables tendriamos que escribir todo asi
a = 10
b = 90
c = a + b

# Pero si tengo que usar una suma varias veces uso las funciones
def suma(a, b):
  print(a + b)
  jumpline()
suma(90, 10) # 100 
suma(30, 71) # 101
suma(33, 753) # 786

# Tambien una funcion puede tener otra
def suma(a, b):
  my_print(a + b)
  jumpline()
suma(90, 10) # 200
suma(30, 71) # 202
suma(33, 753) # 1572

Para crear una funci贸n en Python, se utilizan los siguientes pasos:

  1. Definir el nombre de la funci贸n y sus par谩metros entre par茅ntesis.
  2. Escribir el c贸digo que realizar谩 la funci贸n.
  3. Utilizar la palabra clave return para devolver un resultado (opcional).
def sumar(a, b):
    resultado = a + b
    return resultado

Algunas de las funciones m谩s comunes incluyen:

  1. Funciones de impresi贸n: Estas funciones se utilizan para imprimir mensajes o resultados en la consola print().
  2. Funciones matem谩ticas: Estas funciones se utilizan para realizar operaciones matem谩ticas. Python proporciona una amplia variedad de funciones matem谩ticas integradas, como: sum(), abs(), pow(), etc.
  3. Funciones de cadenas: Estas funciones se utilizan para manipular cadenas de texto. Algunos ejemplos comunes incluyen len(), upper(), lower(), replace(), etc.
  4. Funciones de listas: Estas funciones se utilizan para manipular listas de objetos. Algunos ejemplos comunes incluyen append(), extend(), pop(), sort(), etc.
  5. Funciones de archivos: Estas funciones se utilizan para leer o escribir en archivos. Algunos ejemplos comunes incluyen open(), read(), write(), close(), etc.

Modularizaci贸n del piedra papel o tijera del curso anterior:

import random

def get_bars():
  return '|' * 10

def check_should_play(user_iterations_win, pc_iterations_win, total_iterations):
  max_iterations = 3
  min_wins = 2
  return user_iterations_win < min_wins and pc_iterations_win < min_wins and total_iterations < max_iterations

def print_init_iteration(total_iterations):
  if total_iterations == 0:
    print(f'{get_bars()}\n')

  print(f'Partida {total_iterations + 1}')

def input_user_option():
  return (input('Piedra, papel o tijera?\nElecci贸n: ')).lower()

def get_user_option(options):
  user_option = input_user_option()
  while not user_option in options:
    print('Input no correcto')
    user_option = input_user_option()
    
  return user_option

def get_pc_option(options):
  return random.choice(options)

def show_choices(user_option, pc_option):
  print(f'Elegiste {user_option.upper()}')
  print(f'PC elige {pc_option.upper()}')

def play_iterations():
  battle_options = {
    'piedra': {
      'tijera': True,
      'papel': False
    },
    'papel': {
      'tijera': False,
      'piedra': True,
    },
    'tijera': {
      'papel': True,
      'piedra': False
    }
  }
  
  total_iterations = 0
  user_iterations_win = 0
  pc_iterations_win = 0
  
  while check_should_play(user_iterations_win, pc_iterations_win, total_iterations):
    print_init_iteration(total_iterations)
    
    user_option = get_user_option(options)
    pc_option = get_pc_option(options)
    
    show_choices(user_option, pc_option)
  
    if user_option == pc_option:
      print('Empate en esta partida')
    else:
      user_win = battle_options[user_option][pc_option];
      
      if user_win:
        user_iterations_win += 1
        print('Ganaste esta partida')
      else:
        print('Perdiste esta partida')
        pc_iterations_win += 1

    total_iterations += 1
    print(get_bars())

  return {
    'pc_iterations_win': pc_iterations_win,
    'user_iterations_win': user_iterations_win,
    'total_iterations': total_iterations,
  }

def print_result(results):
  print('\nRESULTADO FINAL')
  if results['user_iterations_win'] > results['pc_iterations_win']:
    print('Ganaste! :D')
  elif results['pc_iterations_win'] > results['user_iterations_win']:
    print('Perdiste :(')
  else:
    print('Empate')

def print_resume(results):
  print('\nGanaste ' + str(results['user_iterations_win']))
  print('Perdiste ' + str(results['pc_iterations_win']))
  print('Empataste ' + str(results['total_iterations'] -results['user_iterations_win'] - results['pc_iterations_win']))

options = ('piedra', 'papel', 'tijera')

results = play_iterations()

print_result(results)
print_resume(results)

Recomendaciones? Cosas que podr铆a mejorar? Espero que sirva.

Calc b谩sica con pyCharm

Aqu铆 les presento mi versi贸n de una calculadora b谩sica, en la que tiene como entrada dos n煤meros y un operador, y te imprime el resultado de la operaci贸n:

Funci贸n para validar si un n煤mero es m煤ltiplo de otro

def multiplo(a, b):
    mensaje = 'es m煤ltiplo'
    """Comprueba si un numero es multiplo de otro

    Args:
        a (int): numero base
        b (int): numero multiplo

    Returns:
        str: Si es True; retorna un mensaje, sino un False
    """
    if a % b == 0:
        return f'{a} {mensaje} de {b}'  
    else: 
        False

ejemplo = multiplo(12, 6)
print(ejemplo)

Una aproximaci贸n de c贸mo puede ser print original de Python

import sys

def my_print(txt):
    txt = str(txt)
    sys.stdout.write(txt)
    sys.stdout.write('\n')

my_print(f'Hello, this is my own print function!')
>>>Hello, this is my own print function!

my_print(24+5)
>>>29

El video se pausa y se pega varias veces, no corre fluido, a pesar de que tengo una muy buena conexi贸n a internet, esto pasa con todos los navegadores.

#funciones. un ejemplo de funcion es la funcion print que recibe un parametro, es este caso la cadena que va a imprimir
print ( " " * 20)
print (鈥淰ERSION 1: Esto es un texto pasado por parametro鈥)
print ( " " * 20)

#defino una funcion que haga lo mismo que la funcion ya nativa print
cadena = input ("VERSION 2: ingrese una cadena a imprimir -> ")
def imprimir (cadena):
print ( " " * 20)
print (cadena)
print ( " " * 20)

imprimir(cadena)

Mi aporte:

def parity(a):
  if a % 2 == 0:
    print(a," is even")
  else:
    print(a," is odd")

parity(5)
parity(4)

Los resultados son:
5 is odd
4 is even

print('Hola')

def my_print(text):
  print(text * 2)
  
my_print('Este es my texto ')
my_print('Hola ')

a = 10
b = 90

c = a +b

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

suma(1, 5) # 6
suma(10, 4) # 14

para nosotros los nuevos, nos enreda qwue coloque todo en ingles, si es bueno p鈥檕rqwue asi deberia de ser, pero para un nuevo eso confunde muchisiimo

no pude hacer que los datos que ped铆a se trasladaran de funci贸n en funci贸n pero dejo esto XD

a=0
b=0
def programa(a,b):
print(鈥楤ienvenido al calculador de operaciones basicas鈥)
a=int(input(鈥淚ngresa el primer numero entero:鈥))
b=int(input(鈥淚ngresa el segundo numero entero:鈥))
return(a,b)
def multiplicaion(a,b):
print(鈥淟a multipicacion de los numeros ingresados es:鈥,a*b)
def division(a,b):
print(鈥淟a division de los numeros ingresados es:鈥,a/b)
def potencia(a,b):
print(鈥渓a potencia es:鈥,a**b)

programa(5,3)
multiplicaion(5,3)
division(5,3)
potencia(5,3)

Hice una fucion con una calculadora de dos dijitos

#Funciones 

def my_Print(texto):

  print(texto)

my_Print('hola funciones')


def suma(num1, num2):
  print ('suma: ')
  print(num1 + num2)

def resta(num1, num2):
  print ('resta: ')
  print(num1 - num2)

def multipli(num1,num2):
  print ('multiplicacion: ')
  print(num1 * num2)

def divi(num1, num2):
  print ('division: ')
  print(num1/num2)



def calculadora2Numeros(num1, num2, opc):
  if opc == 1 :
    suma(num1, num2)
  elif opc == 2 :
    resta(num1, num2)
  elif opc == 3 :
    multipli(num1, num2)
  elif opc == 4 :
    divi(num1, num2)

calculadora2Numeros(15,3,1)
calculadora2Numeros(15,3,2)
calculadora2Numeros(15,3,3)
calculadora2Numeros(15,3,4)

Este es el resultado
suma:
18
resta:
12
multiplicacion:
45
division:
5.0

Funciones

#----------------Funciones--------------------

#funcion de impresion
def my_print():
  print('This is my print')

my_print()
--> This is my print

#funcion de impresion con parametros
def my_print2(text):
  print(text * 2)

my_print2('hola mundo')
--> hola mundohola mundo

#funcion suma. Varios parametros
def suma(a, b):
  print(a + b)

suma(15,10) 
--> 25

#funcion dentro de otra funcion
def suma2(a, b):
  my_print2(a + b)

suma2(4, 5)
--> 18

otras funciones
que veras en el camino del aprendizaje

Funciones Built-in

A
abs()
aiter()
all()
any()
anext()
ascii()

B
bin()
bool()
breakpoint()
bytearray()
bytes()

C
callable()
chr()
classmethod()
compile()
complex()

D
delattr()
dict()
dir()
divmod()

E
enumerate()
eval()
exec()

F
filter()
float()
format()
frozenset()

G
getattr()
globals()

H
hasattr()
hash()
help()
hex()

I
id()
input()
int()
isinstance()
issubclass()
iter()
L
len()
list()
locals()

M
map()
max()
memoryview()
min()

N
next()

O
object()
oct()
open()
ord()

P
pow()
print()
property()




R
range()
repr()
reversed()
round()

S
set()
setattr()
slice()
sorted()
staticmethod()
str()
sum()
super()

T
tuple()
type()

V
vars()

Z
zip()

_
__import__()

Peque帽o aporte :3

def multiplicacion(a,b):
    print(f"{a} * {b} = {a * b}")
multiplicacion(5,2);
print('Hola')

def my_print(text):
  print(text * 2)
  print('This is my print 2')

my_print('Este es mi texto ')
my_print('Hola ')

a = 10
b = 90
c = a + b

def suma(a,b):
  print(a+b)
  my_print(a+b)

suma(70,46) # 116
suma(1,5) # 6
suma(10 ,4) # 14

No s茅 por qu茅 en la funci贸n 鈥榤y_print鈥 pens茅 en decoradores hahahah