Ejercicio
Persistencia De Datos Sobre Insectos
Objectivo
Desarrollar un programa Python para crear una nueva versión del ejercicio "insectos", que debería conservar los datos utilizando alguna forma de almacenamiento, como una base de datos o un sistema de archivos.
Ejemplo de ejercicio de Python
Mostrar código Python
import pickle
class Insect:
"""Represents an insect with a name and number of legs."""
def __init__(self, name, legs):
"""Initialize the insect with a name and number of legs."""
self.name = name
self.legs = legs
def show_data(self):
"""Display the insect's data."""
print(f"Name: {self.name}, Legs: {self.legs}")
class InsectManager:
"""Manages a collection of insects and handles persistence."""
def __init__(self, filename):
"""Initialize the manager with a file for persistence."""
self.filename = filename
self.insects = []
def add_insect(self, insect):
"""Add a new insect to the collection."""
self.insects.append(insect)
def show_all_insects(self):
"""Display all insects in the collection."""
if not self.insects:
print("No insects available.")
else:
for i, insect in enumerate(self.insects, start=1):
print(f"Insect {i}:")
insect.show_data()
def save_to_file(self):
"""Persist the collection of insects to a file."""
try:
with open(self.filename, 'wb') as file:
pickle.dump(self.insects, file)
print(f"Data successfully saved to {self.filename}.")
except Exception as e:
print(f"Error while saving data: {e}")
def load_from_file(self):
"""Load the collection of insects from a file."""
try:
with open(self.filename, 'rb') as file:
self.insects = pickle.load(file)
print(f"Data successfully loaded from {self.filename}.")
except FileNotFoundError:
print(f"No data file found. Starting with an empty collection.")
except Exception as e:
print(f"Error while loading data: {e}")
# Test Program
if __name__ == "__main__":
# File to persist insect data
data_file = "insects_data.bin"
# Create an instance of the InsectManager
manager = InsectManager(data_file)
# Load existing data from the file
print("Loading data from file...")
manager.load_from_file()
# Add new insects
print("\nAdding new insects...")
manager.add_insect(Insect("Ant", 6))
manager.add_insect(Insect("Spider", 8))
manager.add_insect(Insect("Centipede", 100))
# Display all insects
print("\nCurrent insects in collection:")
manager.show_all_insects()
# Save data to the file
print("\nSaving data to file...")
manager.save_to_file()
# Clear the current collection
print("\nClearing current collection...")
manager.insects = []
# Display after clearing
print("\nInsects after clearing:")
manager.show_all_insects()
# Reload data from the file
print("\nReloading data from file...")
manager.load_from_file()
# Display reloaded data
print("\nInsects after reloading:")
manager.show_all_insects()
Output
Saving data to file...
Clearing current collection...
Insects after clearing:
No insects available.
Reloading data from file...
Insects after reloading:
Insect 1:
Name: Ant, Legs: 6
Insect 2:
Name: Spider, Legs: 8
Insect 3:
Name: Centipede, Legs: 100
Código de ejemplo copiado
Comparte este ejercicio de Python
¡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.
En este ejercicio, desarrollarás un programa en Python para crear una nueva versión de la "base de datos de ciudades", utilizando persistencia para almacenar sus dato...
En este ejercicio, desarrollarás un programa en Python para expandir el ejercicio de tablas + array, de modo que incluya dos nuevos métodos: volcar los datos del arra...
En este ejercicio, desarrollarás un programa en Python para expandir el ejercicio (tablas + array + archivos) creando tres clases: Table, SetOfTables y un programa de...