Programación Orientada a Objetos con Python. Programa. 100 ptos. 190427

Echa un vistazo al Capítulo 5 del LibroWeb "Python para principiantes" titulado "Introducción a la Orientación a Objetos" para poder resolver el siguiente proyecto:

Trabajando individualmente o por parejas, realizar el programa de gestión de una biblioteca. En el programa deberá tener usuarios (bibliotecario, lector) y libros, con algunas operaciones: meter clave, prestar libro, devolver libro, etc. Un ejemplo de funcionamiento podría ser: el programa principal tendría 5 lectores, 1 bibliotecario y 10 libros. Al principio muestra el listado de lectores, bibliotecario y libros disponibles. Pedirá al usuario que o salga del programa o se identifique. Si es lector puede consultar si tiene libro prestado y devolver libro. Si es bibliotecario puede prestar un libro a un lector que no tenga ya un libro. Luego muestra de nuevo el listado de usuarios con sus libros y el los libros disponibles. Y se queda de nuevo a la espera de que el usuario se identifique o salga del programas.

1er paso: determinar clases, con sus atributos y métodos.
2º paso: programar las clases y objetos
3er paso: programa principal: en una primera fase los libros y usuarios se cargarán directamente en el programa principal (de forma que no se guardan los cambios de una sesión a otra y el programa empieza siempre con la misma información de usuarios y libros). 
4º paso: almacenar la información en ficheros y/o bases de datos, de forma que el estado del programa se guarde de una sesión a otra.

Será necesario que utilices un intérprete de programación, aquí os dejo algunos:

Fuente: Tecnología en el IES Gómez-Moreno 

Envía el archivo comprimido de nombre BibliotecaPython_NombreApellido_NombreApellido que obligatoriamente incluirá un archivo de texto Readme.txt que incluye las instrucciones del programa.

Opción 2, cortesía de Andrés Pérez: (tiempo estimado 6 sesiones).

Hay que realizar una agenda telefónica. Al iniciar el programa debería aparecer una lista similar a esta con las siguientes opciones:
1.- Guardar Contacto (Nombre, Apellido y Teléfono)
2.- Ver contactos
3.- Eliminar contacto
4.- Editar contacto
5.- Salir
En un inicio, los datos se pueden guardar directamente en una variable. Después debes almacenar la información en un archivo, de forma que los contactos se guarden de una sesión a otra (una de las formas de hacerlo es utilizar el formato JSON para almacenar diccionarios https://www.analyticslane.com/2018/07/16/archivos-json-con-python/).