Base de datos urbana - Python Programming Exercise

En este ejercicio, desarrollarás un programa en Python para crear una base de datos para almacenar información sobre áreas urbanas. En el primer enfoque, almacenarás solo el nombre de cada área urbana y el número de habitantes, y asignarás espacio para hasta 500 entradas. El menú debe incluir las siguientes opciones: agregar una nueva área urbana (al final de los datos existentes), ver todas las áreas urbanas (nombre y habitantes), modificar un registro (renombrar y/o cambiar el número de habitantes), insertar un nuevo registro (en una posición especificada, moviendo los siguientes a la derecha), eliminar un registro (moviendo los siguientes a la izquierda para que no queden espacios vacíos), buscar en los registros (mostrar los que contienen un cierto texto en su nombre, ya sea en mayúsculas o minúsculas, utilizando búsqueda parcial), corregir la capitalización de los nombres (convertir en mayúscula la primera letra y las que están después de un espacio, y hacer el resto en minúscula), y salir del programa. Este ejercicio es perfecto para practicar el uso de matrices y la manipulación de datos en Python, así como para mejorar tus habilidades en la interacción con el usuario y la gestión de bases de datos. Al implementar estas funcionalidades, obtendrás experiencia práctica en el manejo de la entrada y salida de datos en Python. Este ejercicio no solo refuerza tu comprensión de matrices y manipulación de datos, sino que también te ayuda a desarrollar prácticas de codificación eficientes para gestionar grandes conjuntos de datos. Además, este ejercicio proporciona una excelente oportunidad para explorar la versatilidad de Python en aplicaciones del mundo real. Al trabajar con una pequeña base de datos para almacenar información sobre áreas urbanas, aprenderás a almacenar y recuperar datos de manera eficiente, lo cual es una habilidad crucial en muchos escenarios de programación. Este ejercicio también te anima a pensar críticamente sobre cómo estructurar tu código para la escalabilidad y el rendimiento, convirtiéndolo en una valiosa adición a tu portafolio de programación. Ya seas un principiante o un programador experimentado, este ejercicio te ayudará a profundizar tu comprensión de Python y mejorar tus habilidades para resolver problemas.

 Categoría

Matrices, listas y cadenas

 Ejercicio

Base De Datos Urbana

 Objectivo

Desarrollar un programa en Python para crear una base de datos para almacenar información sobre áreas urbanas.

En la primera aproximación, almacenaremos únicamente el nombre de cada área urbana y el número de habitantes, y asignaremos espacio para hasta 500 registros.

El menú debe incluir las siguientes opciones:
1.- Agregar una nueva área urbana (al final de los datos existentes)
2.- Ver todas las áreas urbanas (nombre y habitantes)
3.- Modificar un registro (renombrar y/o cambiar el número de habitantes)
4.- Insertar un nuevo registro (en una posición determinada, desplazando los siguientes hacia la derecha)
5.- Borrar un registro (desplazando los siguientes hacia la izquierda para que no queden espacios vacíos)
6.- Buscar en los registros (mostrar los que contengan un texto determinado en su nombre, ya sea en mayúsculas o minúsculas, mediante búsqueda parcial)
7.- Corregir la capitalización de los nombres (convertir en mayúsculas la primera letra y las que siguen a un espacio, y poner en minúsculas el resto)
0.- Salir

 Ejemplo de ejercicio de Python

 Copiar código Python
# Initialize empty list to store urban areas data
urban_areas = []

# Start the program
while True:
    # Display the menu
    print("\nMenu:")
    print("1. Add a new urban area")
    print("2. View all urban areas")
    print("3. Modify a record")
    print("4. Insert a new record")
    print("5. Delete a record")
    print("6. Search in the records")
    print("7. Correct the capitalization of the names")
    print("0. Exit")
    
    choice = input("Enter your choice: ")
    
    if choice == '1':
        # Add a new urban area
        name = input("Enter the name of the urban area: ")
        inhabitants = int(input("Enter the number of inhabitants: "))
        urban_areas.append((name, inhabitants))
        
    elif choice == '2':
        # View all urban areas
        if urban_areas:
            for i, (name, inhabitants) in enumerate(urban_areas, start=1):
                print(f"{i}. {name} - {inhabitants} inhabitants")
        else:
            print("No data available.")
    
    elif choice == '3':
        # Modify a record
        index = int(input("Enter the record number to modify: ")) - 1
        if 0 <= index < len(urban_areas):
            name = input("Enter the new name of the urban area: ")
            inhabitants = int(input("Enter the new number of inhabitants: "))
            urban_areas[index] = (name, inhabitants)
        else:
            print("Invalid record number.")
    
    elif choice == '4':
        # Insert a new record at a specified position
        index = int(input("Enter the position to insert at (1-based index): ")) - 1
        if 0 <= index < len(urban_areas):
            name = input("Enter the name of the urban area: ")
            inhabitants = int(input("Enter the number of inhabitants: "))
            urban_areas.insert(index, (name, inhabitants))
        else:
            print("Invalid position.")
    
    elif choice == '5':
        # Delete a record
        index = int(input("Enter the record number to delete: ")) - 1
        if 0 <= index < len(urban_areas):
            urban_areas.pop(index)
            print("Record deleted.")
        else:
            print("Invalid record number.")
    
    elif choice == '6':
        # Search in the records
        search_text = input("Enter the text to search for: ").lower()
        found = False
        for name, inhabitants in urban_areas:
            if search_text in name.lower():
                print(f"{name} - {inhabitants} inhabitants")
                found = True
        if not found:
            print("No matching records found.")
    
    elif choice == '7':
        # Correct the capitalization of the names
        for i in range(len(urban_areas)):
            name, inhabitants = urban_areas[i]
            corrected_name = ' '.join([word.capitalize() for word in name.split()])
            urban_areas[i] = (corrected_name, inhabitants)
        print("Capitalization corrected.")
    
    elif choice == '0':
        # Exit the program
        print("Exiting the program.")
        break
    
    else:
        print("Invalid choice. Please try again.")

 Output

Menu:
1. Add a new urban area
2. View all urban areas
3. Modify a record
4. Insert a new record
5. Delete a record
6. Search in the records
7. Correct the capitalization of the names
0. Exit
Enter your choice: 1
Enter the name of the urban area: New York
Enter the number of inhabitants: 8419600

Menu:
1. Add a new urban area
2. View all urban areas
3. Modify a record
4. Insert a new record
5. Delete a record
6. Search in the records
7. Correct the capitalization of the names
0. Exit
Enter your choice: 1
Enter the name of the urban area: Los Angeles
Enter the number of inhabitants: 3980400

Menu:
1. Add a new urban area
2. View all urban areas
3. Modify a record
4. Insert a new record
5. Delete a record
6. Search in the records
7. Correct the capitalization of the names
0. Exit
Enter your choice: 2
1. New York - 8419600 inhabitants
2. Los Angeles - 3980400 inhabitants

Menu:
1. Add a new urban area
2. View all urban areas
3. Modify a record
4. Insert a new record
5. Delete a record
6. Search in the records
7. Correct the capitalization of the names
0. Exit
Enter your choice: 4
Enter the position to insert at (1-based index): 1
Enter the name of the urban area: Chicago
Enter the number of inhabitants: 2716000

Menu:
1. Add a new urban area
2. View all urban areas
3. Modify a record
4. Insert a new record
5. Delete a record
6. Search in the records
7. Correct the capitalization of the names
0. Exit
Enter your choice: 2
1. Chicago - 2716000 inhabitants
2. New York - 8419600 inhabitants
3. Los Angeles - 3980400 inhabitants

Menu:
1. Add a new urban area
2. View all urban areas
3. Modify a record
4. Insert a new record
5. Delete a record
6. Search in the records
7. Correct the capitalization of the names
0. Exit
Enter your choice: 6
Enter the text to search for: york
New York - 8419600 inhabitants

Menu:
1. Add a new urban area
2. View all urban areas
3. Modify a record
4. Insert a new record
5. Delete a record
6. Search in the records
7. Correct the capitalization of the names
0. Exit
Enter your choice: 7
Capitalization corrected.

Menu:
1. Add a new urban area
2. View all urban areas
3. Modify a record
4. Insert a new record
5. Delete a record
6. Search in the records
7. Correct the capitalization of the names
0. Exit
Enter your choice: 2
1. Chicago - 2716000 inhabitants
2. New York - 8419600 inhabitants
3. Los Angeles - 3980400 inhabitants

Menu:
1. Add a new urban area
2. View all urban areas
3. Modify a record
4. Insert a new record
5. Delete a record
6. Search in the records
7. Correct the capitalization of the names
0. Exit
Enter your choice: 0
Exiting the program.

 Comparte este ejercicio de Python

 Más Ejercicios Programación Python de Matrices, listas y cadenas

¡Explora nuestro conjunto de ejercicios de programación Python! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de Python. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en Python.

  •  Mostrar banner

    En este ejercicio, desarrollarás un programa en Python para imitar la utilidad básica "banner" de Unix SysV, capaz de mostrar textos grandes. Este ejercicio es...

  •  Triángulo alineado a la derecha

    En este ejercicio, desarrollarás un programa en Python que solicita al usuario una cadena y muestra un triángulo alineado a la derecha. Este ejercicio es perfe...

  •  Procesamiento de texto

    En este ejercicio, desarrollarás un programa en Python que solicita al usuario una cadena y realiza varias transformaciones. El programa reemplazará todas las 'a' min...

  •  Estructuras jerárquicas

    En este ejercicio, desarrollarás un programa en Python para almacenar dos datos de una persona: Nombre y Fecha de nacimiento. La Fecha de nacimiento...

  •  Organización de datos

    En este ejercicio, desarrollarás un programa en Python que solicita al usuario 10 números enteros (que van de -1000 a 1000), los ordena y los muestra en orden. Este ...

  •  Buffer de pantalla usando una matriz 2D

    En este ejercicio, desarrollarás un programa en Python que declara una matriz bidimensional de caracteres de 70x20, "dibuja" 80 letras (X, por ejemplo) en posiciones ...