El día de hoy vamos a resolver un ejercicio de programación en Python. Se trata de un programa que gestiona provincias y distritos usando colecciones; específicamente en este caso vamos a usar diccionarios.
El programa solicita lo siguiente:
Elaborar una aplicación de línea de comandos en Python cuyo propósito sea gestionar todas las provincias de un país, junto con sus respectivos distritos. Deben utilizar colecciones para lograrlo. La aplicación deberá permitir la consulta bajo el nombre de una provincia, y de ahí, poder mostrar todos sus distritos. Es importante que el programa no falle por ninguna excepción o error.
Veamos cómo resolver esto usando el lenguaje de programación Python.
Vamos a usar un diccionario, por lo que debemos recordar que un diccionario guarda claves y valores. La clave en este caso será la provincia, y el valor será un arreglo de distritos.
De este modo vamos a poder acceder a los distritos usando simplemente el nombre de la provincia, y también determinar si la provincia existe.
Comenzamos declarando el diccionario que en este caso será global, y una función que va a registrar tanto la provincia como el distrito.
Si la provincia no existe, la registramos por primera vez. Para ello usamos el operador in
en Python, y también algún if
.
provincias = {}
def agregar_distrito_provincia(distrito, provincia):
global provincias
if not provincia in provincias:
provincias[provincia] = []
provincias[provincia].append(distrito)
Sin importar si la provincia existe, simplemente agregamos un elemento al arreglo. Pues en la línea 6 comprobamos si la provincia no existe para declarar su valor como un arreglo vacío.
Ahora vamos a ver el siguiente requerimiento, que es imprimir los distritos que pertenecen a determinada provincia a partir del nombre de ésta última. El código queda así:
def imprimir_distritos_de_provincia(provincia):
if not provincia in provincias:
print("No hay distritos registrados")
return
print("Los distritos de " + provincia + " son: ")
for distrito in provincias[provincia]:
print(distrito)
En la línea 2 comprobamos si la provincia no existe, en ese caso imprimimos el mensaje y regresamos de la función. En el caso contrario, imprimimos los distritos.
Lo que falta ahora es un menú para que el usuario pueda gestionar estos datos a través del diccionario que le vamos a proporcionar. El código completo por lo tanto queda así:
"""
____ _____ _ _ _
| _ \ | __ \ (_) | | |
| |_) |_ _ | |__) |_ _ _ __ _____| |__ _ _| |_ ___
| _ <| | | | | ___/ _` | '__|_ / | '_ \| | | | __/ _ \
| |_) | |_| | | | | (_| | | / /| | |_) | |_| | || __/
|____/ \__, | |_| \__,_|_| /___|_|_.__/ \__, |\__\___|
__/ | __/ |
|___/ |___/
____________________________________
/ Si necesitas ayuda, contáctame en \
\ https://parzibyte.me /
------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Creado por Parzibyte (https://parzibyte.me). Este encabezado debe mantenerse intacto,
excepto si este es un proyecto de un estudiante.
"""
provincias = {}
def agregar_distrito_provincia(distrito, provincia):
global provincias
if not provincia in provincias:
provincias[provincia] = []
provincias[provincia].append(distrito)
def imprimir_distritos_de_provincia(provincia):
if not provincia in provincias:
print("No hay distritos registrados")
return
print("Los distritos de " + provincia + " son: ")
for distrito in provincias[provincia]:
print(distrito)
eleccion = ""
while eleccion != "3":
eleccion = input("""
1. Agregar distrito
2. Mostrar distritos de provincia
3. Salir
Seleccione: """)
if eleccion == "1":
distrito = input("Ingrese el distrito: ")
provincia = input("Ingrese la provincia al que pertenece: ")
agregar_distrito_provincia(distrito, provincia)
print("Agregado")
elif eleccion == "2":
provincia = input("Ingrese la provincia: ")
imprimir_distritos_de_provincia(provincia)
Yo lo probé y en mi caso luce así:
Así es como terminamos de resolver este ejercicio de programación.
Leer más sobre Python en mi blog.
Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…
En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…
En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…
Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…
En este artículo te voy a enseñar cómo usar un "top level await" esperando a…
Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…
Esta web usa cookies.