Mostrando entradas con la etiqueta funciones. Mostrar todas las entradas
Mostrando entradas con la etiqueta funciones. Mostrar todas las entradas

domingo, 12 de julio de 2026

Día 13 — *args y **kwargs: funciones con argumentos flexibles

A veces no sabemos de antemano cuántos argumentos recibirá una función. Para esos casos, Python ofrece *args, que agrupa cualquier cantidad de argumentos posicionales en una tupla, y **kwargs, que agrupa argumentos con nombre en un diccionario.

Estas herramientas son ampliamente utilizadas en librerías y frameworks profesionales como Flask, FastAPI o Django, donde las funciones necesitan aceptar configuraciones muy variables sin tener que predefinir cada parámetro posible.

Código de ejemplo:

def suma(*numeros): return sum(numeros) print(suma(1, 2, 3, 4)) # 10 print(suma(5, 10)) # 15 def crear_perfil(**datos): for clave, valor in datos.items(): print(f"{clave}: {valor}") crear_perfil(nombre="José", ciudad="Sevilla", edad=35)




miércoles, 8 de julio de 2026

Día 10 — Funciones: código reutilizable con def

Una función es un bloque de código con nombre propio que puedes ejecutar (o "llamar") tantas veces como necesites, evitando así repetir lógica a lo largo de tu programa. Se define con la palabra clave def, seguida del nombre, los parámetros entre paréntesis y dos puntos.

Los parámetros pueden tener valores por defecto, lo que los convierte en opcionales al llamar a la función. La palabra clave return es la que permite que la función "devuelva" un resultado para que pueda usarse en otra parte del programa; si no se especifica, la función devuelve None por defecto.

Código de ejemplo:

def saludar(nombre, edad=18): return f"Hola {nombre}, tienes {edad} años" print(saludar("Ana", 25)) # Hola Ana, tienes 25 años print(saludar("Luis")) # Hola Luis, tienes 18 años (default) def es_par(numero): return numero % 2 == 0 print(es_par(10)) # True




domingo, 26 de octubre de 2025

Los Pilares Fundamentales para Empezar a Programar (y Dominar Cualquier Lenguaje)


¿Alguna vez te has sentido abrumado al ver la inmensa cantidad de lenguajes de programación que existen? Python, Java, JavaScript, C++, Go... la lista es interminable. La buena noticia es que, para empezar y avanzar con paso firme, no necesitas aprenderlos todos a la vez. Lo que realmente necesitas es dominar los fundamentos.

Piensa en la programación como construir una casa. Antes de preocuparte por el color de la pintura o el tipo de tejas (el lenguaje específico), necesitas asegurarte de que los cimientos sean sólidos. Esos cimientos son conceptos universales que encontrarás en casi cualquier lenguaje de programación.

Estos son los pilares esenciales que todo aspirante a programador debe dominar:

Variables y Constantes: Son como las cajas donde guardas información en tu programa. Las variables pueden cambiar su contenido, mientras que las constantes mantienen su valor fijo. Entender cómo declararlas, asignarles valores y utilizarlas es el primer paso para manipular datos.

Operadores: Las herramientas que te permiten realizar operaciones con tus variables y constantes. Hablamos de operadores aritméticos (sumar, restar), de comparación (mayor que, igual a) y lógicos (AND, OR, NOT), fundamentales para la toma de decisiones en tu código.

Estructuras Condicionales (if/else, switch): Aquí es donde tu programa empieza a "tomar decisiones". Te permiten ejecutar diferentes bloques de código basándose en si una condición es verdadera o falsa. Son el cerebro lógico de cualquier aplicación.

Bucles (for, while): ¿Necesitas repetir una tarea varias veces sin escribir el mismo código una y otra vez? Los bucles son tu solución. Son la clave para automatizar procesos y hacer que tu código sea eficiente y escalable.

Matrices / Listas / Arrays: Son colecciones de datos. Imagina una lista de la compra o una tabla de datos. Aprender a almacenar, acceder y manipular estos grupos de información es vital para trabajar con conjuntos de datos.

Métodos o Funciones: Las "recetas" o "mini-programas" que puedes crear para encapsular una tarea específica. Te permiten reutilizar código, organizar tu proyecto y hacer que sea mucho más fácil de leer y mantener.

El Camino Hacia la Programación Orientada a Objetos (POO):

Una vez que tengas una comprensión sólida de estos conceptos básicos, estarás en una posición inmejorable para dar el salto a paradigmas más avanzados como la Programación Orientada a Objetos (POO). La POO (con conceptos como Clases, Objetos, Herencia, Polimorfismo) te permitirá construir programas más modulares, escalables y fáciles de mantener, replicando el mundo real en tu código. Y lo mejor de todo, las bases que has aprendido se aplican directamente en este nuevo paradigma.

¡Empieza tu Viaje en la Programación Hoy Mismo!

Si estás listo para sentar estas bases de forma práctica y efectiva, te invito a explorar mi canal de YouTube, @josecodetech. Allí encontrarás tutoriales detallados y proyectos reales que te guiarán paso a paso a través de cada uno de estos fundamentos, preparándote para dominar cualquier lenguaje y afrontar los desafíos más avanzados de la programación.

No esperes más para construir los cimientos de tu futuro como programador.

Visita el canal: 🎥 https://www.youtube.com/@josecodetech








sábado, 9 de agosto de 2025

📌 Reto Python – Lógica y estructuras de control

Escribe una función en Python que reciba una lista de números enteros y devuelva:

  • Una nueva lista con los números únicos y ordenados de menor a mayor

  • El número que más se repite y cuántas veces aparece

Ejemplo de entrada:


[4, 2, 7, 4, 2, 9, 4, 1]

Salida esperada:


Lista ordenada única: [1, 2, 4, 7, 9] Número más frecuente: 4 (3 veces)

    📢 ¿Te animas a resolverlo?
    Publicaré la solución completa en mi canal de YouTube 👇
        🎥 youtube.com/@josecodetech

Ya tienes la solucion aqui:





miércoles, 9 de julio de 2025

🧪 Python Nivel 2 – Parte 14: Uso de Decoradores (Decorators) en Python

 

🎯 ¿Qué aprenderás?

✅ Qué son los decoradores y para qué sirven
✅ Cómo crear y aplicar decoradores
✅ Cómo usarlos para validar, medir tiempos o modificar comportamiento
✅ Decoradores anidados y con parámetros


🧱 ¿Qué es un decorador?

Un decorador en Python es una función que recibe otra función como argumento y devuelve una nueva función con funcionalidades añadidas, sin modificar su estructura interna.


🔧 Sintaxis básica


def mi_decorador(funcion_original): def nueva_funcion(): print("Antes de ejecutar") funcion_original() print("Después de ejecutar") return nueva_funcion @mi_decorador def saludar(): print("Hola!") saludar()

🧠 Salida:


Antes de ejecutar Hola! Después de ejecutar

✅ ¿Para qué sirven los decoradores?

✔️ Validar parámetros
✔️ Medir tiempos de ejecución
✔️ Agregar logs o registros
✔️ Controlar permisos o acceso
✔️ Reutilizar código sin repetir lógica


🕐 Ejemplo: medir tiempo de ejecución


import time def medir_tiempo(func): def wrapper(*args, **kwargs): inicio = time.time() resultado = func(*args, **kwargs) fin = time.time() print(f"Tiempo: {fin - inicio:.2f}s") return resultado return wrapper @medir_tiempo def procesar(): time.sleep(2) print("Proceso terminado") procesar()

🧩 Decorador con argumentos


def repetir(n): def decorador(func): def wrapper(*args, **kwargs): for _ in range(n): func(*args, **kwargs) return wrapper return decorador @repetir(3) def hola(): print("Hola!") hola()

🧠 ¿Qué aprendiste hoy?

✔️ Qué son y cómo funcionan los decoradores
✔️ Cómo aplicarlos en funciones reales
✔️ Cómo pasar parámetros a los decoradores
✔️ A reutilizar lógica de forma limpia y elegante


📂 Código de ejemplos en GitHub:
github.com/josecodetech

🎥 Video explicativo en YouTube:
https://youtu.be/oloxPaRSGpg



sábado, 10 de mayo de 2025

🧪 Python Nivel 1 – Parte 5: Funciones Propias y Parámetros

En esta lección aprenderás a crear tus propias funciones en Python. Las funciones te permiten organizar tu código, reutilizar lógica y hacerlo más legible y eficiente.


✅ ¿Qué es una función?

Una función es un bloque de código que se puede ejecutar cuando se llama por su nombre. Puedes definir funciones que reciban parámetros, realicen operaciones y devuelvan resultados.


✅ Ejercicio 17: Función que imprime un mensaje

📌 Objetivo: Crear una función simple sin parámetros.


def saludar(): print("¡Hola desde la función!") saludar()

🧠 Aprendiste: cómo definir y llamar funciones sin argumentos.


✅ Ejercicio 18: Función con dos parámetros que suma

📌 Objetivo: Pasar valores a una función y trabajar con ellos.


def sumar(a, b): resultado = a + b print(f"La suma es: {resultado}") sumar(4, 7)

🧠 Aprendiste: cómo trabajar con parámetros y usarlos dentro de la función.


✅ Ejercicio 19: Función que retorna un valor

📌 Objetivo: Guardar el resultado de una función en una variable.


def cuadrado(x): return x * x resultado = cuadrado(5) print(f"El cuadrado es: {resultado}")

🧠 Aprendiste: cómo usar return y manejar el resultado.


✅ Ejercicio 20: Función personalizada con nombre

📌 Objetivo: Mostrar un saludo personalizado usando un argumento.


def saludar_persona(nombre): print(f"Hola, {nombre}!") saludar_persona("Ana")

🧠 Aprendiste: cómo personalizar la función con valores dinámicos.


🚀 ¿Qué aprendiste en esta lección?

✔️ A definir funciones propias
✔️ A pasar parámetros como entrada
✔️ A retornar valores
✔️ A crear código reutilizable y organizado


📂 Código completo disponible en:
github.com/josecodetech

🎥 Video explicativo en YouTube:
https://youtu.be/2L-hH6Svcog

💬 ¿Qué tipo de función te gustaría practicar ahora: con lógica matemática, texto, validaciones o estructuras?



martes, 12 de julio de 2022

Ejercicio 15 Python. Modulo propio

Crea un modulo con las operaciones basicas de una calculadora.
Importar el modulo desde otro archivo python y llamar a las funciones creadas anteriormente,
mostrando su resultado por la consola.



miércoles, 17 de enero de 2018

29 Python. Ventana Email

Construimos una sencilla aplicacion para poder enviar emails usando la configuracion de Gmail.



from tkinter import *
from tkinter import messagebox
import smtplib
def enviar():
    email=emailDestino.get()
    texto=text.get(1.0,END)
    remitente='dafsdafa@gmail.com' #cambiado por seguridad
    destinatario=email
    msg=texto
    username='dafsdafa@gmail.com'#cambiado por seguridad    password='pdfafsafsa'#cambiado por seguridad
    server=smtplib.SMTP('smtp.gmail.com:587')
    server.starttls()
    server.login(username,password)
    server.sendmail(remitente,destinatario,msg)
    server.quit()
    messagebox.showinfo("Mensaje","Email enviado")
def borrar():
    emailDestino.set("")
    text.delete(1.0,END)
   
                       
ANCHO=740
ALTO=550

ventana=Tk()
anchoAlto=str(ANCHO)+"x"+str(ALTO)
ventana.geometry(anchoAlto)
ventana.title("Envia email")
colorFondo="#007"
colorLetra="#FFF"
ventana.configure(background=colorFondo)
emailDestino=StringVar()
etiquetaEmail=Label(ventana,text="Email",bg=colorFondo,fg=colorLetra).place(x=50,y=40)
cajaEmail=Entry(ventana,textvariable=emailDestino).place(x=110,y=40,width=180)
etiquetaTexto=Label(ventana,text="Texto",bg=colorFondo,fg=colorLetra).place(x=50,y=80)
text=Text(ventana)
text.place(x=110,y=80,width=500)
botonEnviar=Button(ventana,text="Enviar",command=enviar,bg=colorFondo,fg=colorLetra).place(x=270,y=500)
botonBorrar=Button(ventana,text="Borrar",command=borrar,bg=colorFondo,fg=colorLetra).place(x=330,y=500)
mainloop()

miércoles, 8 de noviembre de 2017

08 Python. Funciones

Crearemos 2 funciones diferentes para ver como devuelven el valor, la llamada a la funcion solo se puede realizar una vez creada.



#FUNCION PAR IMPAR
def es_par(numero):
    if numero%2==0:
        return True
    else:
        return False
#PEDIMOS NUMERO AL USUARIO
numero=int(input("Dime un numero y te dire si es par o no : "))
if(es_par(numero)==True):
    print("El numero es par")
else:
    print("El numero es impar")
parImpar=es_par(numero)
print("El resultado devuelto a la variable parImpar es = ",parImpar)

 #FUNCION SUMA
def suma(numero1,numero2):
    total=numero1+numero2
    print("La suma es : ",total)
  
#PEDIMOS NUMERO AL USUARIO
numero1=int(input("Dime el primer numero: "))
numero2=int(input("Dime el segundo numero: "))
suma(numero1,numero2)

lunes, 29 de junio de 2015

Php Sesiones

Hoy explicare como manejar sesiones desde php.
El codigo seria asi:

<!DOCTYPE html>
<html lang="es">
<head>
<?php
session_start();
    if(isset($_SESSION['visitado'])){
            echo "ya has visitado nuestra web, no subo el contador";     
    } else {     
        $_SESSION['visitado']="si";
       echo "bienvenido, es la primera vez que entras en nuestra web hoy";    
    }
?>
<meta charset='utf-8'>
<title>EJEMPLO DE SESION</title>
</head>
<body>

</body>
</head>
En muchas ocasiones no podremos utilizar las cookies porque el navegador del usuario no las activa o porque el usuario lo ha configurado para que no se activen,
por lo que nos veremos obligados a usar otro sistema para almacenar informacion, en este caso las variables de sesion, estas almacenan datos en el
servidor y no en el pc del usuario, por lo que nos seran muy utiles.
En el ejemplo como vereis lo primero que se hace en la cabecera es iniciar las variables de sesion con "session_start()," antes del body.
una vez iniciada comprobamos al cargar la web si ya existia, en caso de existir mostramos mensaje de que ya la habiamos visitado, en caso contrario damos la bienvenida.
Este es uno de los muchos ejemplos de variables de sesion, en mi caso lo utilizo para el contador de la web

Con esto se puede ver la forma en la que podemos crear y leer una variable de sesion, que nos servira para guardar informaciones diversas.

Espero sea util la informacion y sirva para comenzar a practicar con las sesiones. Gracias.

El ejemplo de esta pequeña introduccion esta en la web de Ejemplos.