python

Python: ejercicio de provincias y distritos

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.

Explicación de la solución

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.

Agregar distrito y provincia

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.

Imprimir distritos de provincia

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.

Poniendo todo junto

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í:

Python – Ejercicio resuelto con diccionarios, gestionar distritos y provincias

Así es como terminamos de resolver este ejercicio de programación.

Leer más sobre Python en mi blog.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

3 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

4 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

3 semanas hace

Esta web usa cookies.