Hola comunidad,
que visto que muchos están empezando en la programación en Python,
creo que la mejor manera de aprender, es practicar.
mi sugerencia es que vayamos posteando ejercicios. comenzar con cosas simples, secuenciales y decisiones, luego ciclos, despues listas y cosas asi.
para mantener también así mas activo esta parte del foro.
partir con cosas como:
Citar
En el consultorio del barrio, el doctor que atiende a Pepito tiene problemas para calcular la
edad de los pacientes. Por ello necesitamos un algoritmo que dad la fecha actual y la de
nacimiento de una persona determine la edad de estos
asi son los ejercicios que nos daban al comienzo en mi universidad.
entonces vamos planteando las soluciones y ayudando a quienes les cueste encontrar el algoritmo.
es solo una idea,, opinen.
saludos.
Muy buena propuesta :D
En el caso del doctor hice el siguiente code:
print 'Hola doctor/a!!!'
print 'Bienvenido, con este programa podra calcular la edad de sus pacientes'
def edad():
nac = int(raw_input('Introduzca el año de nacimiento del paciente--->'))
actual = int(raw_input('Introduzca el año actual---> '))
edadpac = actual - nac
print 'La edad del paciente es de',edadpac
edad()
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Muy buena propuesta :D
En el caso del doctor hice el siguiente code:
print 'Hola doctor/a!!!'
print 'Bienvenido, con este programa podra calcular la edad de sus pacientes'
def edad():
nac = int(raw_input('Introduzca el año de nacimiento del paciente--->'))
actual = int(raw_input('Introduzca el año actual---> '))
edadpac = actual - nac
print 'La edad del paciente es de',edadpac
edad()
que bueno haber captado la atención de alguien xD
me parece bien el code. pero te haré un cuestionamiento:
que pasaría si el paciente nació en diciembre del 2000 y actualmente estamos en agosto del 2011?
tu code tiraría como edad "11 años", cuando el paciente solo tiene 10 (porque todavía no llegamos al mes en el que está de cumpleaños). imagínate que el doctor le receta una medicina no apta pora su edad, podemos terminar con el paciente muerto por culpa del programa :o (jaja, sé que exagero ::) )
te hago la invitación para que corrijas ese error. pero vas bien.
saludos, cualquier duda solo postea.
Mi humilde código:
# -*- coding: utf-8 -*-
import datetime,re
guarda = []
fecha_actual = datetime.date.today()
guarda.append(fecha_actual)
ano=0
mes=0
dia=0
for i,s,d in re.findall("(.*)\-(.*)\-(.*)",str(guarda[0])):
ano = i
mes = s
dia = d
print ano,mes,dia
fecha_nace=raw_input("Fecha Nacimiento(AA-MM-DD):")
ano_paciente=0
mes_paciente=0
for i,s,d in re.findall("(.*)\-(.*)\-(.*)",fecha_nace):
ano_paciente = i
mes_paciente = s
calculo=int(ano)-int(ano_paciente)
if mes > mes_paciente:
print calculo
else:
print "Edad del Paciente:",calculo-1
Saludos.
JaAViEr, agradezco tu participacion tambien.
me parece una buena idea lo que estas haciendo. muy bueno eso de usar el modulo datetime para ver la fecha actual y re para buscar los datos ingresados.
pero observa lo mio que estuve de cumpleaños hace poco:
2011 08 11
Fecha Nacimiento(AA-MM-DD):1992-08-09
Edad del Paciente: 18
que yo sepa, cumplí 19 ::) jajja.
saludos, te invito a revisar el código.
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Muy buena propuesta :D
En el caso del doctor hice el siguiente code:
print 'Hola doctor/a!!!'
print 'Bienvenido, con este programa podra calcular la edad de sus pacientes'
def edad():
nac = int(raw_input('Introduzca el año de nacimiento del paciente--->'))
actual = int(raw_input('Introduzca el año actual---> '))
edadpac = actual - nac
print 'La edad del paciente es de',edadpac
edad()
que bueno haber captado la atención de alguien xD
me parece bien el code. pero te haré un cuestionamiento:
que pasaría si el paciente nació en diciembre del 2000 y actualmente estamos en agosto del 2011?
tu code tiraría como edad "11 años", cuando el paciente solo tiene 10 (porque todavía no llegamos al mes en el que está de cumpleaños). imagínate que el doctor le receta una medicina no apta pora su edad, podemos terminar con el paciente muerto por culpa del programa :o (jaja, sé que exagero ::) )
te hago la invitación para que corrijas ese error. pero vas bien.
saludos, cualquier duda solo postea.
jajajaja habia pensado eso de la fecha pero andaba con prisa :/
Voy a ver si lo puedo solucionar
Gracias :D
Mañana lo reviso, ahora voy a comer y luego tengo un torneo en Wii.
Saludos.
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Mañana lo reviso, ahora voy a comer y luego tengo un torneo en Wii.
Saludos.
jaja, ok. suerte en ese torneo ;)
Hola!
Yo acabo de hacerlo recién levantado y justo antes de irme xD, el algoritmo creo que está bien, pero no me hace bien el cálculo, da error y salta a la excepción. Alguna solución?
#!/usr/bin/python
###################
#Cálculo de edad #
#by sensei #
#to underc0de.org #
###################
def edad():
try:
diaN=int(input('Que dia nacio?'))
mesN=int(input('Que mes nacio?'))
anhoN=int(input('Que anho nacio?'))
if anhoN==anho:
if mesN==mes:
if diaN<dia:
print 'su edad es: ', anho-anhoN-1
else:
print 'su edad es: ', anho-anhoN
elif mesN<mes:
print 'su edad es: ', anho-anhoN-1
else:
print 'su edad es: ', anho-anhoN
elif anhoN<anho:
print 'su edad es: ', anho-anhoN-1
else:
print 'su edad es: ', anho-anhoN
except:
print 'Ingrese datos validos'
def main():
print 'Configuracion'
dia=int(input('Que dia es hoy?'))
mes=int(input('En que mes estamos?'))
anho=int(input('En que anho?'))
while True:
print '''Hola, bienvenido a calculo de edad. Que desea hacer?
1. Calcular mi edad para la receta.
2. Salir
'''
opc=raw_input('Elija su opcion y pulse [INTRO]: ')
if opc=='1':
edad()
elif opc=='2':
break
exit()
else:
print 'Introduzca una opcion valida'
main()
hola, Sensei.
te explico: el try funciona mientras todo es True; en caso que alguna de las comparaciones sea False, pasará al except.
en tu caso, en la linea 15, al no cumplirse if anhoN==anho: , se salta de inmediato al except.
te recomiendo que primero hagas que funcione sin validar los datos, supondremos que el doctor nunca se equivocará en ingresarlos. luego revisamos la validación de entradas.
saludos!
espero ver el segundo intento ;)
Hola de nuevo,
Acabo de llegar y lo he modificado rápido. Primer error el algoritmo, lo hice al revés, cosas de las prisas, como no me calculaba pues no me di cuenta y no puede evaluarlo correctamente. Luego decir que ya lo he arreglado y funciona, pero queda menos "elegante". El código es este:
#!/usr/bin/python
###################
#Cálculo de edad #
#by sensei #
#to underc0de.org #
###################
def main():
print 'Configuracion'
dia=int(input('Que dia es hoy?'))
mes=int(input('En que mes estamos?'))
anho=int(input('En que anho?'))
while True:
print '''Hola, bienvenido a calculo de edad. Que desea hacer?
1. Calcular mi edad para la receta.
2. Salir
'''
opc=raw_input('Elija su opcion y pulse [INTRO]: ')
if opc=='1':
diaN=int(input('Que dia nacio?'))
mesN=int(input('Que mes nacio?'))
anhoN=int(input('Que anho nacio?'))
if mesN==mes:
if diaN<=dia:
print 'su edad es: ', anho-anhoN
else:
print 'su edad es: ', anho-anhoN-1
elif mesN<mes:
print 'su edad es: ', anho-anhoN
else:
print 'su edad es: ', anho-anhoN-1
elif opc=='2':
break
exit()
else:
print 'Introduzca una opcion valida'
main()
Ahora bien, por falta de conocimiento del lenguaje tengo dos dudas:
1- Cómo podria hacer para que me evalue en el ejemplo anterior en la función edad las variables de la funcion main? He probado y digamos que "no las guarda"
2- Cómo podemos hacer para utilizar excepciones de forma correcta con un algoritmo así?
Un saludo!
CitarAhora bien, por falta de conocimiento del lenguaje tengo dos dudas:
1- Cómo podria hacer para que me evalue en el ejemplo anterior en la función edad las variables de la funcion main? He probado y digamos que "no las guarda"
2- Cómo podemos hacer para utilizar excepciones de forma correcta con un algoritmo así?
Sensei,
tu primera duda creo que se relaciona con lo que el uso de las funciones, pasar y recibir parámetros.
te dejo un ejemplo haber si te sirve:
def evaluar(variable): #funcion que nos muestra si la variable es de tipo numerica o de tipo cadena
if type(variable) == int:
print 'numerica'
elif type(variable) == str:
print 'cadena'
def variable():
var = "blozzter"
return var
var = variable() # "var" ahora vale "aqui un texto"
evaluar(var) #llamamos a la funcion "evaluar" con el parametro "var"
cualquier duda, pregunta.
y con respecto a la segunda duda, no veo la necesidad de utilizar el try-except para este caso. quizás podría ser para validar mejor, pero considero que es un detalle.
ahora bien, tu code anda cerca, pero tiene algunas falencias.
si lo pruebo con esta fecha mira lo que pasa:
Que dia es hoy?12
En que mes estamos?8
En que anho?2011
Hola, bienvenido a calculo de edad. Que desea hacer?
1. Calcular mi edad para la receta.
2. Salir
Elija su opcion y pulse [INTRO]: 1
Que dia nacio?9
Que mes nacio?8
Que anho nacio?1992
su edad es: 18
en este caso, la edad seria 19 ;D
edito: acabo de implementar el try-except para validar que el usuario coloca un formato de fecha válido.
saludos.
Edito, efectivamente, has usado el código antes del ninja edit, jeje. Ahora acabo de probarlo en el movil (menudo curro pasarlo xDD) y si funciona. Mañana cuando llegue a casa y tenga un rato pruebo lo que has comentado de las variables.
Un saludo!
bueno, retomo el tema, ahora dejo mi versión de como resolví el problema.
from datetime import*
def fecha_actual():
fecha = str(date.today())
dia = int(fecha[8:10])
mes = int(fecha[5:7])
anho = int(fecha[0:4])
return dia, mes, anho
dia_actual, mes_actual, anho_actual = fecha_actual()
nacimiento = raw_input("fecha de nacimiento (DD-MM-AA): ")
edad = -1
try:
dia_nacimiento = int(nacimiento[0:2])
mes_nacimiento = int(nacimiento[3:5])
anho_nacimiento = int(nacimiento[6:10])
except:
print "[+] haz de introducir una fecha valida"
exit()
if anho_actual >= anho_nacimiento:
if mes_actual > mes_nacimiento: #ya cumpli0 en este anho
edad = anho_actual - anho_nacimiento
elif mes_actual == mes_nacimiento: #dependerA del dIa
if dia_actual < dia_nacimiento:
edad = anho_actual - anho_nacimiento - 1
else:
edad = anho_actual - anho_nacimiento
elif mes_actual < mes_nacimiento: #todavia no cumple
edad = anho_actual - anho_nacimiento - 1
if edad <= -1:
print "[+] el paciente todavia no nace xD"
else:
print "edad del paciente: ", edad
saludos :)
buenas!
xDD me habeis picado ami tambien .. aqui mi code (no compruebo que los datos sean correctos)
#!/usr/bin/python
import datetime
## Obtenemos la fecha actual y la devolvemos en una lista
def fechaActual():
fecha = str(datetime.date.today())
fecha = fecha.split('-')
return fecha
## Calculamos la edad
def calcularEdad(fechaUsuario):
fechaHOY = fechaActual()
fechaUsuario = fechaUsuario.split('-')
edad = int(fechaHOY[0]) - int(fechaUsuario[0])
if int(fechaUsuario[1]) > int(fechaHOY[1]):
edad -= 1
elif int(fechaUsuario[2]) > int(fechaHOY[2]):
edad -= 1
return edad
print "###########################"
print "# Code de ZomWeed -PYTHON #"
print "#-------------------------#"
print "# (Calculo-de-Edad) #"
print "###########################"
fechaUsuario = raw_input("-> Porfavor, indique una fecha (AA-MM-DD)")
print "La edad es -> ",calcularEdad(fechaUsuario)
por cierto blozzter, la forma en la que compruebas la fecha deberias revisarla porque no funcá correctamente, si introduces 155-12-06 te calcula la edad :)
Editado: oye una pregunta como podria llamar con import a un fichero que tiene la estructura de una clase en python. Estoy probando con import y el fichero pero no me funciona.
Saludos
horrorc0re, me gustó mucho tu code ;D
y con respecto a tu pregunta, no sé como trabajar con clases. lo siento.
saludos.
edito:
###########################
# Code de ZomWeed -PYTHON #
#-------------------------#
# (Calculo-de-Edad) #
###########################
-> Porfavor, indique una fecha (AA-MM-DD)1969-02-19
La edad es -> 41
si te fijas, en ese caso el paciente tendría 42 años, no 41. :P
espero la corrección ;)
gracias blozzter, me alegro de que te guste.
He mirado la fecha y ami si que me sale 42 :D nose porque te habrá salido 41...
Citar
Editado: oye una pregunta como podria llamar con import a un fichero que tiene la estructura de una clase en python. Estoy probando con import y el fichero pero no me funciona.
me contesto yo mismo xDD
from <Fichero> import <NombredelaClase>
En fichero solo ponemos el nombre, nose si habra otro metodo para invocar la clase.
ahora estoy tirando de otro de los programas mas trillados para aprender ... agenda PYTHON :D mas que nada para practicar con clases y funciones, dentro de poco lo cuelgo y le hechais un vistazo
Saludos
buenas!
acabo de terminar la agenda en python, no tiene mucha utilidad mas que la de aprender con el codigo ;D peroo bueno me sirvio para mas o menos ir entrando en las clases de python.
Son dos ficheros ClasesAgenda.py que contiene las clases y agenda.py, el main.
No comprueba los datos introducidos aunque si he comprobado que los indices esten dentro del rango del array.
Solo he trabajado con una agenda porque no he visto necesario meterle mas, cuando aprenda ficheros lo mismo ya me dejo llevar un poco mas y la perfilo xDD se que es un aporte muy simplón pero si a alguien le sirve para aprender un poco mas de python de una forma mas basica, perfecto!.
ClasesAgenda.py
#/usr/bin/python
## Clase para gestionar los contactos ##
class Contacto():
def __init__(self, nombre, direccion, telefono, email):
self.nombreContacto = nombre
self.dirContacto = direccion
self.tlfnContacto = telefono
self.emailContacto = email
## setters - Funciones para cambiar el valor de las variables ##
def setNombre(self, nombre):
self.nombreContacto = nombre
def setDireccion(self, direccion):
self.dirContacto = direccion
def setTelefono(self, telefono):
self.tlfnContacto = telefono
def setEmail(self, email):
self.emailContacto = email
## getters - Funciones para conseguir el valor de las variables ##
def getNombre(self):
return self.nombreContacto
def getDireccion(self):
return self.dirContacto
def getTelefono(self):
return self.tlfnContacto
def getEmail(self):
return self.emailContacto
## Clase para gestionar la agenda ##
class Agenda():
lstContactos = []
def getContactos(self):
return self.lstContactos
def setContactos(self, lstContactos):
self.lstContactos = lstContactos
def nuevoContacto(self,contacto):
self.lstContactos.append(contacto)
def borrarContacto(self,indice):
del self.lstContactos[indice]
Agenda.py
#!/usr/bin/python
from ClasesAgenda import Agenda, Contacto
import os
##---> VARIABLES <---##
agenda = Agenda()
##---> FUNCIONES <---##
def imprimirContactos(lstContactos): ## Mostramos todos los contactos ##
for indice in range(len(lstContactos)):
print "-> ",indice,"- Nombre:",lstContactos[indice].getNombre(),"-- Direccion:",lstContactos[indice].getDireccion(),"-- Telefono:",lstContactos[indice].getTelefono(),"-- Email:",lstContactos[indice].getEmail()
## MENU ##
while True:
os.system("clear") ## Nos ayuda a limpiar la pantalla
print "#! - ###################### - !#"
print "#! Code por ZomWeed - PYTHON !#"
print "--------------------------------"
print "#! Agenda de Contactos !#"
print "--------------------------------"
print "[1] -> Nuevo Contacto "
print "[2] -> Borrar Contacto "
print "[3] -> Listar Contacto "
print "[4] -> Modificar Contacto "
print "[0] -> Salir "
opcion = input("-><- Elija una opcion...")
if opcion != 0:
if opcion == 1:
## Recogemos los datos necesario para crear un nuevo contacto ##
os.system("clear")
print "[+] Nuevo Contacto: Informacion ->"
print ". ------------------------------ ."
nombre = raw_input("-> Cual es su nombre?")
direccion = raw_input("-> Cual es su direccion?")
telefono = raw_input("-> Cual es su telefono?")
email = raw_input("-> Cual es su email?")
contacto = Contacto(nombre,direccion,telefono,email)
agenda.nuevoContacto(contacto)
elif opcion == 2 and len(agenda.getContactos()) > 0:
## Mostramos todos los contactos y eliminamos segun nos indique el usuario ##
while True:
os.system("clear")
print "[+] Eliminar Contacto: Lista de Contactos ->"
print ". ---------------------------------------- ."
imprimirContactos(agenda.getContactos()) ## Mostramos los contactos
print "-> (s) : Salir"
indiceEliminar = raw_input("-><- Elija un contacto... ")
if indiceEliminar == 's' or indiceEliminar == 'S': ## Comprobamos la opcion elegida por el usuario
break
if int(indiceEliminar) >= len(agenda.getContactos()):
raw_input("U_u ERROR: indice incorrecto, pulse una tecla para continuar")
else:
agenda.borrarContacto(int(indiceEliminar)) ## Hacemos un casting a entero ya que raw_input nos devuelve string
elif opcion == 3:
## Mostramos todos los contactos ##
os.system("clear")
print "[+] Listar Contactos: Lista de Contactos ->"
print ". --------------------------------------- ."
imprimirContactos(agenda.getContactos())
raw_input("-><- Listados de los contactos actuales almacenados,pulse una tecla para continuar")
elif opcion == 4:
## Mostramos todos los contactos, el usuario indicara el contacto y registro a modificar ##
while True:
os.system("clear")
print "[+] Modificar Contacto: Seleccion del contacto ->"
print ". --------------------------------------------- ."
imprimirContactos(agenda.getContactos()) ## Mostramos los contactos
print "-> (s) : Salir"
indiceContacto = raw_input("-><- Elija un contacto... ")
if indiceContacto == 's' or indiceContacto == 'S':
break
os.system("clear")
if int(indiceContacto) > len(agenda.getContactos()):
raw_input("U_u ERROR: indice incorrecto, pulse una tecla para continuar")
else:
print "[+] Modificar Contacto: Registros a modificar ->"
print ". -------------------------------------------- ."
print "-> 1 - Nombre"
print "-> 2 - Direccion"
print "-> 3 - Telefono"
print "-> 4 - Email"
opcionRegistro = input("-><- Elija un contacto... ")
if opcionRegistro == 1:
nombre = raw_input("\nEscriba el nuevo nombre: ")
lstContactos = agenda.getContactos()
lstContactos[int(indiceContacto)].setNombre(nombre) ## Hacemos un casting ya que raw_input nos devuelve string
agenda.setContactos(lstContactos)
elif opcionRegistro == 2:
direccion = raw_input("\nEscriba la nueva direccion: ")
lstContactos = agenda.getContactos()
lstContactos[int(indiceContacto)].setDireccion(direccion)
agenda.setContactos(lstContactos)
elif opcionRegistro == 3:
telefono = raw_input("\nEscriba el nuevo telefono: ")
lstContactos = agenda.getContactos()
lstContactos[int(indiceContacto)].setTelefono(telefono)
agenda.setContactos(lstContactos)
elif opcionRegistro == 4:
email = raw_input("\nEscriba el nuevo nombre")
lstContactos = agenda.getContactos()
lstContactos[int(indiceContacto)].setEmail(email)
agenda.setContactos(lstContactos)
elif opcion == 0:
print "\nSaludos Terricola [^_^]"
break
Saludos
Lo acabo de terminar espero este bien claro no considere años bisiestos y considere solo meses de 30 dias pero vale denme viendo si sirve
saludos....
import datetime
class Edad:
def __init__(self,dia,mes,ano):
self.dia=int(dia)
self.mes=int(mes)
self.ano=int(ano)
def calcular(self):
hoy=datetime.datetime.now()
hoy=str(hoy)
hoy=hoy.split('-')
anohoy=hoy[0]
meshoy=hoy[1]
x=hoy[2].split(" ")
diahoy=x[0]
anohoy=int(anohoy)
meshoy=int(meshoy)
diahoy=int(diahoy)
if self.ano<anohoy:
anoactual=anohoy-self.ano
#else:
#print "Ingresa bien los datos..."
if self.mes<meshoy:
mesactual=meshoy-self.mes
else:
y=meshoy+12
mesactual=y-self.mes
if diahoy>self.dia:
diaactual=diahoy-self.dia
else:
z=diahoy+30
diaactual=z-self.dia
print "tiene", anoactual,"años",mesactual,"meses",diaactual,"dias"
ano=raw_input(u'Ingrese año de nacimiento: ')
mes=raw_input(u'Ingrese mes de nacimiento: ')
dia=raw_input(u'Ingrese dia de nacimiento: ')
objPaciente=Edad(dia,mes,ano)
objPaciente.calcular()
pd: muy buena la agenda del compañero voy aver si desarrollo una para ver que tal... en algunos dias la subire...
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
Lo acabo de terminar espero este bien claro no considere años bisiestos y considere solo meses de 30 dias pero vale denme viendo si sirve
saludos....
import datetime
class Edad:
def __init__(self,dia,mes,ano):
self.dia=int(dia)
self.mes=int(mes)
self.ano=int(ano)
def calcular(self):
hoy=datetime.datetime.now()
hoy=str(hoy)
hoy=hoy.split('-')
anohoy=hoy[0]
meshoy=hoy[1]
x=hoy[2].split(" ")
diahoy=x[0]
anohoy=int(anohoy)
meshoy=int(meshoy)
diahoy=int(diahoy)
if self.ano<anohoy:
anoactual=anohoy-self.ano
#else:
#print "Ingresa bien los datos..."
if self.mes<meshoy:
mesactual=meshoy-self.mes
else:
y=meshoy+12
mesactual=y-self.mes
if diahoy>self.dia:
diaactual=diahoy-self.dia
else:
z=diahoy+30
diaactual=z-self.dia
print "tiene", anoactual,"años",mesactual,"meses",diaactual,"dias"
ano=raw_input(u'Ingrese año de nacimiento: ')
mes=raw_input(u'Ingrese mes de nacimiento: ')
dia=raw_input(u'Ingrese dia de nacimiento: ')
objPaciente=Edad(dia,mes,ano)
objPaciente.calcular()
pd: muy buena la agenda del compañero voy aver si desarrollo una para ver que tal... en algunos dias la subire...
gracias por participar, me gustó mucho tu code.
Saludos.
(te edité tu mensaje, para la proxima utiliza las etiquetas para poner código, y evita el doble post)
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
gracias por participar, me gustó mucho tu code.
Saludos.
(te edité tu mensaje, para la proxima utiliza las etiquetas para poner código, y evita el doble post)
Bueno muchas gracias lo tomare muy en cuenta :P
Espero nos pongas mas ejercicios para ir practicando
Hola bueno les dejo el codigo de la agenda:
#-------------------------------------------------------------------------------------------------------------------------------------------#
#Fecha de creacion: martes 1 de novoembre del 2011 Fecha de modificacion: Lunes 7 de noviembre del 2011 #
#Archivo: Agenda # de modificaciones: 1 #
#Version:1.0.0 #
#Autor: Marco Yuquilima Observaciones: Terminado #
#-------------------------------------------------------------------------------------------------------------------------------------------#
class Elemento:
def __init__(self,nombre,apellido,*otros):# inicializamos con 2 o mas parametros xq guardar necesita 5 parametros y buscar 2
self.nombre=nombre
self.apellido=apellido
self.otros=otros
self.f=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','a+')
def guardar(self):
nuevo=True #variable que nos indica si existe el contacto para que los datos el txt no se repitan
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
for linea in hoja:
if linea.find(self.nombre+"\t"+self.apellido)>=0:
nuevo=False
break
hoja.close()
if nuevo:
valor=(self.nombre+"\t"+self.apellido+"\t"+self.otros[0]+"\t"+self.otros[1]+"\t"+self.otros[2])
self.f.write("\n%s" %valor) #escribimos los datos en el archivo
self.f.close()
else:
print "#####################\nYa existe el contacto \n"
def listar(self):#metodo que nos lista todos los contactos
self.f=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
print self.f.read()
self.f.close()
def buscar (self):#metodo que nos muestra un contacto en caso de existir
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
for linea in hoja:
if linea.find(self.nombre+"\t"+self.apellido)>=0:
print linea
hoja.close()
def modificar(self):#metodo con el cual podemos modificar un contacto
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
cadena="cadena vacia"
for linea in hoja:
if linea.find(self.nombre+"\t"+self.apellido)>=0:
print linea
cadena=linea#buscamos nombre y apellido del contacto y almacenamos todos los datos para reemplazarlos
break
hoja.close()
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
original=hoja.read()#creamos una "copia" del archivo
hoja.close
if original.find(self.nombre+"\t"+self.apellido)>=0:#buscamos al contacto para ingresar nuevos datos
print"INGRESAR NUEVOS DATOS:"
n=raw_input(u'Ingresar nombre: ')
a1=raw_input(u'Ingresar apellido paterno : ')
a2=raw_input(u'Ingresar apellido materno : ')
d=raw_input(u'Ingresar direccion : ')
t=raw_input(u'Ingresar telefono : ')
txt=original.replace(cadena,n+"\t"+a1+"\t"+a2+"\t"+d+"\t"+t+"\n")#modificamos los datos en una "copia" del archivo
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','w')#abrimos el archivo para escribir
hoja.writelines(txt)#reemplazamos linea a linea la "copia" del archivo al archivo original
hoja.close()
def eliminar(self):
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
cadena="cadena vacia"
for linea in hoja:
if linea.find(self.nombre+"\t"+self.apellido)>=0:
print linea
cadena=linea#buscamos nombre y apellido del contacto y almacenamos todos los datos para reemplazarlos
break
hoja.close()
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','r')
original=hoja.read()#creamos una "copia" del archivo
hoja.close
if original.find(self.nombre+"\t"+self.apellido)>=0:#buscamos al contacto para ingresar nuevos datos
txt=original.replace(cadena,"")#modificamos los datos en una "copia" del archivo
hoja=open('/home/cencalada/Escritorio/python/Ejercicios marco/nombres.txt','w')#abrimos el archivo para escribir
hoja.writelines(txt)#reemplazamos linea a linea la "copia" del archivo al archivo original
hoja.close()
def __del__(self):
print "Destruyendo...."#eliminamos de memoria lo que ya no necesitamos
while True:#menu de opciones para interactuar correctamente la clase que manipula el archivo
print "***************************************************************************************"
print "MENU DE OPCIONES:"
print "(1)- Ingresar contacto..."
print "(2)- Lista de contactos..."
print "(3)- Buscar contacto..."
print "(4)- Modificar contacto..."
print "(5)- Eliminar contacto..."
print "(6)- Salir..."
opcion=raw_input(u'Digitar opcion: ')
print "***************************************************************************************"
try:
opcion=int(opcion)
except:
print "#################\nPor favor ingresar numero"
continue
if opcion==1:
n=raw_input(u'Ingresar nombre: ')
a1=raw_input(u'Ingresar apellido paterno : ')
a2=raw_input(u'Ingresar apellido materno : ')
d=raw_input(u'Ingresar direccion : ')
t=raw_input(u'Ingresar telefono : ')
f=Elemento(n,a1,a2,d,t)
f.guardar()
elif opcion==2:
f.listar()
elif opcion==3:
nombre=raw_input("Nombre de contacto: ")
apellido=raw_input("Apellido de contacto: ")
f=Elemento(nombre,apellido)
f.buscar()
elif opcion==4:
nombre=raw_input("Nombre de contacto: ")
apellido=raw_input("Apellido de contacto: ")
f=Elemento(nombre,apellido)
f.modificar()
elif opcion==5:
nombre=raw_input("Nombre de contacto: ")
apellido=raw_input("Apellido de contacto: ")
f=Elemento(nombre,apellido)
f.eliminar()
elif opcion==6:
break
else:
print "#############################\nIngresar numeros entre el 1 y 6"
me parece que esta completo pero cualquier cosa avisenme
valla amigos comprten muchos codes aqui cuando ya empiese a practicar python y lo tenga bien estudiado y aprendedi posteo aqui mi programa salu2 chicos !!! ;)
Spectrus: Amigo no uses colores ya que dificulta la lectura.
No tienes permitido ver enlaces.
Registrate o Entra a tu cuenta
valla amigos comprten muchos codes aqui cuando ya empiese a practicar python y lo tenga bien estudiado y aprendedi posteo aqui mi programa salu2 chicos !!! ;)
porfavor es molesto para los ojos leer de color rojo.. son varios post tuyos.. editalos :D gracias..