DICCIONARIOS Y MAS EN PYTHON
la mejor forma de aprende es practicando, de esta manera, desarrollaremos un ejercicio y a la par de este explicaremos el tema de diccionarios en python como se itineran, su metodos y mucho mas.
Por lo anterior el ejercicio que desarrollaremos es el siguiente:
Un programa que gestione las facturas pendientes de pago de una empresa. Las facturas se almacenarán en un diccionario donde la clave de cada factura será el número de factura y el valor el coste de la factura.El programa debe preguntar al usuario :
1. Añadir una nueva factura
Si desea añadir una nueva factura se preguntará por el número de factura y su coste y se añadirá al diccionario.
2. Pagar una existente
Si se desea pagar una factura se preguntará por el número de factura y se eliminará del diccionario.
3. Terminar.
el programa debe mostrar por pantalla la factura y valor pendiente de pago
DEFINICION DE DICCIONARIO
Los diccionarios en Python nos permiten almacenar una serie de mapeos entre dos conjuntos de elementos, llamados keys and values (Claves y Valores).
Partiendo de esta definicion y aplicado a nuestro ejercicio crearemos un diccionario con nombre de “Gestorfact {}”
print("Gestor de facturas")
GestorFact = {}
Ahora procedermos con incluir un Input que nos permita definir la funcion que queremos desarrollar:
incluiremos una variable con nombre Proce para determinar si queremos incluir, pagar o terminar el programa
Proce = (input("Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: "))
Procedemos desarrollando el codigo correspondiente a “incluir factura”:
la manera de incluir un item es decir Clave-Valor a un diccionario se debe solicitar al usuario, la clave que corresponde a la factura y el valor que corresponde valor pendiente de pago:
codigo
factura = input("ingrese el numero de la factura: ")
valor = input("ingrese el valor de la factura: ")
****print(f"los datos incluidos fueron la factura {factura} con valor de {valor} ")
consola
Gestor de facturas
Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: A
ingrese el numero dela factura: 1234
ingrese el valor dela factura: 200000
ya solicitados los datos al usuario se proceden a ingresarlos al diccionario con la siguiente sintaxis:
GestorFact[factura] = valor
y lo complementamos con un IF para confirmar la factura ingresada no este registrada antes:
codigo
if factura in GestorFact:
print("La factura incluida ya se encuentra")
else:
GestorFact[factura] = valor
print(f"los datos incluidos fueron la factura {factura} con valor de {valor} ")
Proce = (input("Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: "))
consola
los datos incluidos fueron la factura 1234 con valor de 200000
Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar:
codigo completo de añadir facturas:
print("Gestor de facturas")
GestorFact = {}
Proce = (input("Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: "))
while Proce == "A":
factura = input("ingrese el numero de la factura: ")
valor = input("ingrese el valor de la factura: ")
if factura in GestorFact:
print("La factura incluida ya se encuentra")
else:
GestorFact[factura] = valor
print(f"los datos incluidos fueron la factura {factura} con valor de {valor} ")
Proce = (input("Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: "))
Procedemos con el pago de facturas
Para este punto incluiremos algunos metodos de diccionarios, pero primero que todo cuales son los metodo para los diccionarios:
los metodos son funciones que utilizamos para manipular la informacion incluida en este caso ej los diccionarios, como quitar, extraer, añadir, borrar, mostrar algun dato en especifico por lo anterior los metodo existentes son:
Metodo Descripcion
clear() Eliminar todos los elementos del diccionario
copy() Devuelve una copia del diccionario.
fromkeys() Devuelve un diccionario con las claves y el valor especificados.
get() Devuelve el valor de la clave especificada
items() Devuelve una lista que contiene una tupla para cada par de valores clave
keys() Devuelve una lista que contiene las claves del diccionario.
pop() Eliminar el elemento con la clave especificada
popitem() Eliminar el último par clave-valor insertado
setdefault() Devuelve el valor de la clave especificada. Si la clave no existe: inserte la clave, con el valor
especificado
update() Actualiza el diccionario con los pares clave-valor especificados
values() Devuelve una lista de todos los valores del diccionario.
este ejercicio utilizaremos 3:
items() Devuelve una lista que contiene una tupla para cada par de valores clave
keys() Devuelve una lista que contiene las claves del diccionario.
pop() Eliminar el elemento con la clave especificada
El primer metodo que utilizaremos sera KEYS() para saber cuales son los numeros de factura que tenemos pendiente de pago y proceder con el pago de la factura:
codigo
llave = GestorFact.keys()
print("----------------------------------")
print(llave)
print("----------------------------------")
Elimi = input("ingrese la factura a cancelar: ")
consola
----------------------------------
dict_keys(['1234', '2568', '9856'])
----------------------------------
ingrese la factura a cancelar: 1234
Cuando obtenemos el numero de factura a cancela el sistema procede a eliminar esta factura del diccionario , por lo tanto procedemos a utilizar el metodo POP:
GestorFact.pop(Elimi)
Por lo anterior, utilizaremos la itineracion del diccionarios con el FOR y el metodo ITEM para mostrara al usuario que la factura cancelada fue retirada:
codigo
print("----------------------------------")
print("Las facturas pendiente de pago corresponden a: ")
for x, y in GestorFact.items():
print(f"La factura {x} con valor de {y}")
pass
print("----------------------------------")
Proce = (input("Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: "))
consola
----------------------------------
dict_keys(['1234', '2568', '9856'])
----------------------------------ingrese la factura a cancelar: 1234
----------------------------------
Las facturas pendiente de pago corresponden a:
La factura 2568 con valor de 6500000
La factura 9856 con valor de 780000
----------------------------------
Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar:
codigo completo pago de factura
while Proce == "B":
llave = GestorFact.keys()
print("----------------------------------")
print(llave)
print("----------------------------------")
Elimi = input("ingrese la factura a cancelar: ")
GestorFact.pop(Elimi)
print("----------------------------------")
print("Las facturas pendiente de pago corresponden a: ")
for x, y in GestorFact.items():
print(f"La factura {x} con valor de {y}")
pass
print("----------------------------------")
Proce = (input("Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: "))
Procedimiento de terminar el proceso
En este punto procedemos a mostrar las facturas pendientes y salir del pograma, incluiremos BREAK para salir del programa despues de mostrar las facturas pendiente:
while Proce =="C":
print("Los valores pendiente por pagar corresponde a: ")
for x, y in GestorFact.items():
print(f"La factura {x} con valor de {y}")
break
Codigo completo de progama
para poder visualizar todo el programa se anexa el codigo completo
print("Gestor de facturas")
GestorFact = {}
Proce = (input("Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: "))
while Proce == "A":
factura = input("ingrese el numero de la factura: ")
valor = input("ingrese el valor de la factura: ")
if factura in GestorFact:
print("La factura incluida ya se encuentra")
else:
GestorFact[factura] = valor
print(f"los datos incluidos fueron la factura {factura} con valor de {valor} ")
Proce = (input("Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: "))
while Proce == "B":
llave = GestorFact.keys()
print("----------------------------------")
print(llave)
print("----------------------------------")
Elimi = input("ingrese la factura a cancelar: ")
GestorFact.pop(Elimi)
print("----------------------------------")
print("Las facturas pendiente de pago corresponden a: ")
for x, y in GestorFact.items():
print(f"La factura {x} con valor de {y}")
pass
print("----------------------------------")
Proce = (input("Ingrese la opcion que desea ejecutar: A - incluir factura, B - pagar factura , C - terminar: "))
while Proce =="C":
print("Los valores pendiente por pagar corresponde a: ")
for x, y in GestorFact.items():
print(f"La factura {x} con valor de {y}")
break