miércoles, 25 de diciembre de 2019
domingo, 15 de diciembre de 2019
domingo, 8 de diciembre de 2019
10 mBot. Pulsacion boton
Programando #mBot para detectar si se ha pulsado el boton de la placa y ejecutar las ordenes indicadas para dicho caso.
viernes, 6 de diciembre de 2019
97 Python. Agenda contactos
Crea una agenda de contactos con Python.
Incluimos menu de opciones y grabaremos los datos en archivo csv.
Usaremos clases, funciones, metodos, archivos.
El codigo utilizado es el siguiente:
Incluimos menu de opciones y grabaremos los datos en archivo csv.
Usaremos clases, funciones, metodos, archivos.
El codigo utilizado es el siguiente:
# -*-coding:utf-8 -*-"""Created on Fri Dic 06 07:48:08 2019@author: Jose"""#modulosimport csvimport itertoolsimport re#clasesclass Contacto:nuevoId=itertools.count()def __init__(self,nombre,apellidos,empresa,fijo,movil):self.codigo=next(self.nuevoId)self.nombre=nombreself.apellidos=apellidosself.empresa=empresaself.fijo=fijoself.movil=movilclass Agenda:def __init__(self):self.contactos=[]def ordenarNombre(self):self.contactos.sort(key=lambda contacto: contacto.nombre)def ordenarApellidos(self):self.contactos.sort(key=lambda contacto: contacto.apellidos)def añadir(self,nombre,apellidos,empresa,fijo,movil):contacto=Contacto(nombre,apellidos,empresa,fijo,movil)self.contactos.append(contacto)def mostrarTodos(self):self.submenuOrden()for contacto in self.contactos:self.imprimeContacto(contacto)def buscar(self,textoBuscar):encontrado=0for contacto in self.contactos:if(re.findall(textoBuscar,contacto.nombre)) or (re.findall(textoBuscar,contacto.apellidos)):self.imprimeContacto(contacto)encontrado=encontrado+1self.submenuBuscar(contacto.codigo)if encontrado==0:self.noEncontrado()def borrar(self,codigo):for contacto in self.contactos:if contacto.codigo==codigo:print('---*---*---*---*---*---*---*---*')print('Quieres borrarlo? (s/n)')print('---*---*---*---*---*---*---*---*')opcion=str(input(""))if opcion=='s' or opcion=='S':print('Borrando contacto!!!')del self.contactos[codigo]elif opcion=='n' or opcion=='N':breakdef modificar(self,codigo):for contacto in self.contactos:if contacto.codigo==codigo:del self.contactos[codigo]nombre=str(input('Escribe el nombre: '))apellidos=str(input('Escribe los apellidos: '))empresa=str(input('Escribe la empresa: '))fijo=str(input('Escribe el fijo: '))movil=str(input('Escribe el movil: '))contacto=Contacto(nombre.capitalize(),apellidos.capitalize(),empresa.capitalize(),fijo,movil)self.contactos.append(contacto)breakdef submenuBuscar(self,codigo):print('---*---*---*---*---*---*---*---*')print('Quieres (m)odificarlo o (b)orrarlo? ')print('---*---*---*---*---*---*---*---*')opcion=str(input(""))if opcion=='m' or opcion=='M':self.modificar(codigo)elif opcion=='b' or opcion=='B':self.borrar(codigo)else:print('Continuamos sin realizar modificacion alguna')def submenuOrden(self):print('---*---*---*---*---*---*---*---*')print('Quieres ordenar por (n)ombre o por (a)pellidos?')print('---*---*---*---*---*---*---*---*')opcion=str(input(""))if opcion=='n' or opcion=='N':self.ordenarNombre()elif opcion=='a' or opcion=='A':self.ordenarApellidos()def grabar(self):with open('agenda.csv','w') as fichero:escribir=csv.writer(fichero)escribir.writerow(('codigo','nombre','apellidos','empresa','fijo','movil'))for contacto in self.contactos:escribir.writerow((contacto.codigo,contacto.nombre,contacto.apellidos,contacto.empresa,contacto.fijo,contacto.movil))def imprimeContacto(self,contacto):print('---*---*---*---*---*---*---*---*')print('---*---*---*---*---*---*---*---*')print('Codigo: {}'.format(contacto.codigo))print('Nombre: {}'.format(contacto.nombre))print('Apellidos: {}'.format(contacto.apellidos))print('Empresa: {}'.format(contacto.empresa))print('Fijo: {}'.format(contacto.fijo))print('Movil: {}'.format(contacto.movil))print('---*---*---*---*---*---*---*---*')print('---*---*---*---*---*---*---*---*')def noEncontrado(self):print('---*---*---*---*---*---*---*---*')print('---*---*---*---*---*---*---*---*')print('Contacto no encontrado')print('---*---*---*---*---*---*---*---*')print('---*---*---*---*---*---*---*---*')def ejecutar():agenda=Agenda()try:with open('agenda.csv','r') as fichero:lector=csv.DictReader(fichero,delimiter=',')for fila in lector:agenda.añadir(fila['nombre'].capitalize(),fila['apellidos'].capitalize(),fila['empresa'].capitalize(),fila['fijo'].capitalize(),fila['movil'].capitalize())except:print('Error al abrir fichero o que no existe aun')while True:menu=str(input("""\nSelecciona una opcion\n1 Mostrar lista de contactos2 Buscar contacto3 Añadir contacto0 Salir \n\n"""))if menu=='1':agenda.mostrarTodos()elif menu=='2':texto=str(input('Escribe el texto a buscar en contactos: '))agenda.buscar(texto.capitalize())agenda.grabar()elif menu=='3':nombre=str(input('Escribe el nombre: '))apellidos=str(input('Escribe los apellidos: '))empresa=str(input('Escribe la empresa: '))fijo=str(input('Escribe el fijo: '))movil=str(input('Escribe el movil: '))agenda.añadir(nombre.capitalize(),apellidos.capitalize(),empresa.capitalize(),fijo,movil)agenda.grabar()elif menu=='0':print('Hasta pronto!!!')agenda.grabar()breakelse:print('Opcion no valida!!!')if __name__=='__main__':ejecutar()
Suscribirse a:
Entradas (Atom)