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

lunes, 8 de mayo de 2023

Funciones anidadas en Python

 FUNCIONES ANIDADAS

Las funciones anidadas son funciones definidas dentro del cuerpo de otra función. Estas funciones tienen acceso a las variables locales de la función que las contiene y pueden ser útiles para realizar tareas específicas dentro de la función principal.
Un ejemplo de función anidada podría ser el siguiente:

def funcion_principal():
   variable_local = 10
   
   def funcion_anidada():
       nonlocal variable_local
       variable_local += 1
       print(variable_local)       
   funcion_anidada()


En este ejemplo, la función anidada está definida dentro de la función principal y tiene acceso a la variable local. Al llamar a funcion_anidada, se incrementa el valor de variable_local en 1 y se imprime su nuevo valor.
#programando con #josecodetech




lunes, 8 de agosto de 2022

Ejercicio 21 Python. Base de datos Alumno menu opciones.

Crea para el ejercicio anterior un script que llame al archivo donde tengas las funciones de base de datos y mediante un menu de opciones permita al usuario seleccionar que accion ejecutar con la base de datos.



Una vez completado el ejercicio, realiza una captura de pantalla y publicala en twitter con el hashtag #cursoPython #josecodetech, para ver las posibles soluciones y compartirlas, gracias.

domingo, 7 de agosto de 2022

Ejercicio 20 Python. Base de datos Alumno modificacion / eliminacion

Continuando con el ejercicio anterior, crea 2 funciones nuevas, una para modificar un registro y otra para borrarlo.

Una vez completado el ejercicio, realiza una captura de pantalla y publicala en twitter con el hashtag #cursoPython #josecodetech, para ver las posibles soluciones y compartirlas, gracias.



jueves, 4 de agosto de 2022

Ejercicio 19 Python. Base de datos Alumno

Crea una base de datos sqlite con una tabla llamada Alumnos que constará de tres columnas: la columna id de tipo entero, la columna nombre que será de tipo texto y la columna nota de tipo entero.
Usa funciones para insertar y mostrar datos.
Una vez creada la tabla, tienes que insertarle 3 datos mediante input dentro de un bucle.



sábado, 26 de junio de 2021

Añade nueva funcionalidad a la agenda con Python

 Añadimos nueva funcion a la agenda para buscar un contacto por su identificador.


El codigo completo es el siguiente:
Script principal::
from tkinter import *
from tkinter import messagebox
from baseDatos import *
ANCHO = 560
ALTO = 540
POSX = 300
POSY = 400
anchoAlto = str(ANCHO)+"x"+str(ALTO)
posicionX = "+"+str(POSX)
posicionY = "+"+str(POSY)
colorVentana = "blue"
colorLetra = "white"


def mostrarMensaje(titulomensaje):
    messagebox.showinfo(titulomensaje)


def limpiarDatos():
    nombre.set("")
    apellidos.set("")
    telefono.set("")
    email.set("")
    ID.set(0)
    text.delete(1.0END)


def guardar():
    crearTabla()
    if((nombre.get() == ""or (apellidos.get() == "")):
        mostrarMensaje("Error""Debes rellenar los datos")
    else:
        datos = nombre.get(), apellidos.get(), telefono.get(), email.get()
        mostrarMensaje("Guardar""Contacto guardado")
        insertar(datos)
        limpiarDatos()
        mostrar()


def actualizar():
    crearTabla()
    if((ID.get() == ""or (ID.get() == 0or (nombre.get() == "")):
        mostrarMensaje("Error""Debes rellenar los datos")
    else:
        try:
            modificar(ID.get(), nombre.get(), apellidos.get(),
                      telefono.get(), email.get())
            mostrarMensaje("Modificar""Contacto modificado")
            limpiarDatos()
            mostrar()
        except:
            mostrarMensaje("Error""Identificador no encontrado")


def eliminar():
    if((ID.get() == ""or (ID.get() == 0)):
        mostrarMensaje("Error""Debes insertar un identificador valido")
    else:
        try:
            borrar(ID.get())
            mostrarMensaje("Borrar""Contacto borrado")
            limpiarDatos()
            mostrar()
        except:
            mostrarMensaje("Error""Identificador no encontrado")


def mostrar():
    listado = consultar()
    text.delete(1.0END)
    text.insert(INSERT"ID\tNombre\tApellidos\t\tTelefono\tEmail\n")
    for elemento in listado:
        id = elemento[0]
        nombre = elemento[1]
        apellidos = elemento[2]
        telefono = elemento[3]
        email = elemento[4]
        text.insert(INSERTid)
        text.insert(INSERT"\t")
        text.insert(INSERTnombre)
        text.insert(INSERT"\t")
        text.insert(INSERTapellidos)
        text.insert(INSERT"\t\t")
        text.insert(INSERTtelefono)
        text.insert(INSERT"\t")
        text.insert(INSERTemail)
        text.insert(INSERT"\n")


def buscar():
    if((ID.get() == ""or (ID.get() == 0)):
        mostrarMensaje("Error""Debes insertar un identificador valido")
    else:
        contactos = dameContacto(ID.get())
        for contacto in contactos:
            ID.set(contacto[0])
            nombre.set(contacto[1])
            apellidos.set(contacto[2])
            telefono.set(contacto[3])
            email.set(contacto[4])
        mostrarMensaje("Buscar""Contacto encontrado")


ventana = Tk()
ventana.config(bg=colorVentana)
ventana.geometry(anchoAlto+posicionX+posicionY)
ventana.title("Agenda")
frame = Frame()
frame.config(width=ANCHOheight=ALTO)
frame.config(bg=colorVentana)
frame.pack()
# variables
ID = IntVar()
nombre = StringVar()
apellidos = StringVar()
telefono = StringVar()
email = StringVar()
# widgets
etiquetaID = Label(frametext="ID: ").place(x=50y=50)
cajaID = Entry(frametextvariable=ID).place(x=130y=50)
etiquetaNombre = Label(frametext="Nombre: ").place(x=50y=90)
cajaNombre = Entry(frametextvariable=nombre).place(x=130y=90)
etiquetaApellidos = Label(frametext="Apellidos: ").place(x=50y=130)
cajaApellidos = Entry(frametextvariable=apellidos).place(x=130y=130)
etiquetaTelefono = Label(frametext="Telefono: ").place(x=50y=170)
cajaTelefono = Entry(frametextvariable=telefono).place(x=130y=170)
etiquetaEmail = Label(frametext="Email: ").place(x=50y=210)
cajaEmail = Entry(frametextvariable=email).place(x=130y=210)
text = Text(frame)
text.place(x=50y=240width=500height=200)
botonAñadir = Button(frametext="Añadir",
                     command=guardar).place(x=150y=500)
botonBorrar = Button(frametext="Borrar",
                     command=eliminar).place(x=200y=500)
botonConsultar = Button(frametext="Consultar",
                        command=mostrar).place(x=250y=500)
botonModificar = Button(frametext="Actualizar",
                        command=actualizar).place(x=320y=500)
botonBuscar = Button(frametext="Buscar"command=buscar).place(x=390y=500)
ventana.mainloop()


Script base de datos:
import sqlite3


def conectar():
    conexion = sqlite3.connect("agenda.db")
    cursor = conexion.cursor()
    return conexioncursor


def crearTabla():
    conexioncursor = conectar()
    sql = """
        CREATE TABLE IF NOT EXISTS agenda(
            id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
            nombre VARCHAR(20) NOT NULL,
            apellidos VARCHAR(20) NOT NULL,
            telefono VARCHAR(14) NOT NULL,
            email VARCHAR(20) NOT NULL
        )
    """
    if(cursor.execute(sql)):
        print("Tabla creada")
    else:
        print("No se pudo crear la tabla")
    conexion.close()


def insertar(datos):
    conexioncursor = conectar()
    sql = """
    INSERT INTO agenda(nombre,apellidos,telefono,email) VALUES (?,?,?,?)
    """
    if(cursor.execute(sqldatos)):
        print("Datos guardados")
    else:
        print("No se pudieron guardar los datos")
    conexion.commit()
    conexion.close()


def consultar():
    conexioncursor = conectar()
    sql = "SELECT id,nombre,apellidos,telefono,email from agenda"
    cursor.execute(sql)
    listado = []
    for fila in cursor:
        listado.append(fila)
        # print("ID = ", fila[0])
        # print("Nombre = ", fila[1])
        # print("Telefono = ", fila[2], "\n")
    listado.sort()
    conexion.close()
    return listado


def dameContacto(id):
    conexioncursor = conectar()
    sql = "SELECT * from agenda where id="+str(id)
    cursor.execute(sql)
    contacto = cursor.fetchall()
    conexion.close()
    return contacto


def modificar(idnombreapellidostelefonoemail):
    conexioncursor = conectar()
    sql = "UPDATE agenda SET nombre='"+nombre+"',apellidos='"+apellidos + \
        "', telefono='"+telefono+"', email='"+email+"' where ID="+str(id)
    cursor.execute(sql)
    cursor.close()
    conexion.commit()
    conexion.close()


def borrar(id):
    conexioncursor = conectar()
    sql = "DELETE from agenda where ID="+str(id)
    cursor.execute(sql)
    cursor.close()
    conexion.commit()
    conexion.close()

martes, 25 de mayo de 2021

Funcion anonima en Python

 


# funcion Map
import functools
lista = [2356726918217565]
print(list(map((lambda valorvalor * valor), lista)))

# funcion Filter
print(list(filter((lambda valorvalor % 2 == 0), lista)))

# funcion Reduce
print(str(functools.reduce((lambda xresultadox+resultado), lista)))

domingo, 23 de mayo de 2021

Creando funciones con Python

 


def esPar(numero):
    if numero % 2 == 0:
        # print("El numero es par")
        return True
    else:
        # print("El numero es impar")
        return False


numero = int(input("Dime un numero y te indicare si es par o no "))
resultado = esPar(numero)
if resultado:
    print(f"El numero {numero} es par")
else:
    print(f"El numero {numero} es impar")

miércoles, 7 de agosto de 2019

06 Scratch3. Bloques

Serie de videos con introduccion a los tipos bloques incluidos en la nueva version de Scratch, antes de empezar con la programacion en si.

Movimiento / Apariencia

Sonido / Eventos

Control / Sensores

Operadores


Variables

Funcion o metodo


domingo, 19 de mayo de 2019

08 mBot.Crear bloque o funcion.

Crea tu bloque de codigo para llamarlo desde el bloque principal, usaremos dos bloques, uno para iluminacion y otro para el sonido.


domingo, 21 de abril de 2019

75 Python. DateTime

En el siguiente ejemplo podras ver como mostrar fecha y hora con Python, dandole el formato adecuado.

from datetime import datetime
hoy=datetime.now()
print(hoy)
año=hoy.year
mes=hoy.month
dia=hoy.day
print('hoy es {} {} {} '.format(dia,mes,año))
hora=hoy.hour
min=hoy.minute
seg=hoy.second
print(' y son las {} {} {} '.format(hora,min,seg))
Primero importamos el modulo datetime y asignamos a la variable hoy el valor de fecha / hora actual.
Lo mostramos por pantalla y seguidamente asignamos cada valor a su variable correspondiente (dia, mes, etc).