Solo una linea de codigo mas !!

El 13 de julio de 2010 22:48, René Rolando Elizalde Solano <
reroes...@gmail.com> escribió:

> el problema es q lista_calle esta siempre vacia, es decir en los metodos no
> está cargada.. revisale lo que le hice en los metodos y mira si te sirve!!
> me explico.. lo qye hago en buscar indice es llamar a el metodo abrir() el
> cual me devuelve una lista en "caliente" de listacalles, entons puedo
> trabajar con eso!! no es lo optimo pero creo q el problema es ese!!!
>
>
> El 13 de julio de 2010 22:30, Juan Marcelo Leiva Sandoval <
> chelitole...@gmail.com> escribió:
>
> Claro te adjunto codigo y archivo con los datos de las calles, saludos
>>
>>
>>
>> El 13/07/10, René Rolando Elizalde Solano <reroes...@gmail.com> escribió:
>> > Haber el indice de quien se necesita de un elemento de la lista ? seria
>> > mejor q nos envies la listacalles !! para entender mejor el problema
>> >
>> > Espero poder ayudar en algo!
>> >
>> > El 13 de julio de 2010 22:18, Juan Marcelo Leiva Sandoval <
>> > chelitole...@gmail.com> escribió:
>> >
>> >> Claro algo como eso, pero como explica Angel Alvarez wrote, es
>> >> "nombre" es un atributo de los objetos de listaCalles, por eso no
>> >> puedo usar lo que tu me explicas, pero si yo imprimo ejemplo
>> >> listaCalles[0].nombre me muestra el nombre de la calle que esta en ese
>> >> indice, por eso que yo uso 2 tipos de ciclos para recorrer la lista,
>> >> el proble es que ninguno entra a la lista y me devuelve el numero con
>> >> el que inicializo el contador.
>> >>
>> >> ejemplo:
>> >>
>> >> def mmmIndice(buscar):
>> >>        indice = 0
>> >>        i = 0
>> >>        while i < len(listaCalles):
>> >>                 if listaCalles[i].nombre == buscar:
>> >>                         break
>> >>                else:
>> >>                        indice = indice + 1
>> >>                         i = i + 1
>> >>        return indice
>> >>
>> >> no me devuelve 0
>> >>
>> >> espero explicarme mucho mejor, y gracias por su ayuda
>> >>
>> >> El 13/07/10, René Rolando Elizalde Solano <reroes...@gmail.com>
>> escribió:
>> >> > Espero haber entendido el problema y te ayude lo siguiente
>> >> >
>> >> > def indice(nombre):
>> >> >     l = ["a","b","c"]
>> >> >     print l.count(nombre)
>> >> >
>> >> > #tomando encuenta que nombre es "a", debe salir
>> >> > el print 1
>> >> >
>> >> > algo asi quieres!!!
>> >> >
>> >> > disculpa si no lo entendi!!!
>> >> >
>> >> > El 13 de julio de 2010 22:04, Juan Marcelo Leiva Sandoval <
>> >> > chelitole...@gmail.com> escribió:
>> >> >
>> >> >> Tengo 3 funciones distintas y cada una diferente:
>> >> >>
>> >> >> def otroIndice(buscar):
>> >> >>        indice = 0
>> >> >>        for i in listaCalles:
>> >> >>                if i == buscar:
>> >> >>                        break
>> >> >>                else:
>> >> >>                        indice = indice + 1
>> >> >>        return indice
>> >> >>
>> >> >>
>> >> >> def mmmIndice(buscar):
>> >> >>        indice = 0
>> >> >>        i = 0
>> >> >>        while i < len(listaCalles):
>> >> >>                if listaCalles[indice].nombre == buscar:
>> >> >>                         break
>> >> >>                else:
>> >> >>                        indice = indice + 1
>> >> >>        return indice
>> >> >>
>> >> >> def buscarIndice(nombre):
>> >> >>        """Recibe el nombre de la calle y lo busca, al encontrarlo
>> >> devuelve
>> >> >> el indice"""
>> >> >>         indice  = 0
>> >> >>        for buscar in listaCalles:
>> >> >>                 if buscar.nombre == nombre:
>> >> >>                         break
>> >> >>                else:
>> >> >>                        indice = indice + 1
>> >> >>         return indice#El problema es que siempre retorna 0
>> >> >>
>> >> >> aca lo que devuelven:
>> >> >>
>> >> >> Resultado otroIndice ---> 0
>> >> >> Resultado mmmIndice ---> 0
>> >> >> Resultado buscarIndice ---> 0
>> >> >> Numerate ---> <enumerate object at 0xb7856824>
>> >> >>
>> >> >> El problema de todas es que no entran al siclo :'(
>> >> >>
>> >> >> El 13/07/10, Juan Marcelo Leiva Sandoval <chelitole...@gmail.com>
>> >> >> escribió:
>> >> >> > def buscarIndice(nombre):
>> >> >> >        indice = 0
>> >> >> >        for buscar in listaCalles:
>> >> >> >                if buscar == nombre:
>> >> >> >                        break
>> >> >> >                else:
>> >> >> >                        indice = indice + 1
>> >> >> >        return indice
>> >> >> >
>> >> >> > - con ese ejemplo me devuelve 0
>> >> >> >
>> >> >> > print "Numerate ---> %s" % (enumerate(listaCalles))
>> >> >> >
>> >> >> > - me devuelve Numerate ---> <enumerate object at 0xb76c970c>
>> >> >> >
>> >> >> > def otroIndice(buscar):
>> >> >> >       indice = 1
>> >> >> >       for i in listaCalles:
>> >> >> >               if i == buscar:
>> >> >> >                       break
>> >> >> >               else:
>> >> >> >                       indice = indice + 1
>> >> >> >       return indice
>> >> >> >
>> >> >> > - me devuelve 0
>> >> >> >
>> >> >> > Bueno seguire buscando muchas gracias por su ayuda espero me
>> puedan
>> >> >> > seguir guiando Saludos.
>> >> >> >
>> >> >> > --
>> >> >> > El buen Informático es como un Bibliotecario, no lo sabe todo pero
>> >> >> > sabe donde buscarlo...
>> >> >> >
>> >> >>
>> >> >>
>> >> >> --
>> >> >> El buen Informático es como un Bibliotecario, no lo sabe todo pero
>> >> >> sabe donde buscarlo...
>> >> >> _______________________________________________
>> >> >> Python-es mailing list
>> >> >> Python-es@python.org
>> >> >> http://mail.python.org/mailman/listinfo/python-es
>> >> >> FAQ: http://python-es-faq.wikidot.com/
>> >> >>
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > René Rolando Elizalde Solano
>> >> > Ingeniero en Sistemas - Universidad Nacioanal de Loja
>> >> > Miembro del Sección de Software del Departamento de
>> Telecomunicaciones e
>> >> > Información - Universidad Nacional de Loja
>> >> > Desarrollador Sistema de Gestión Académica. S G A
>> >> >
>> >> > http://reroes79.wordpress.com
>> >> > http://reroes799.blogspot.com/
>> >> > http://twitter.com/reroes
>> >> > rer...@unl.edu.ec
>> >> > reroes...@gmail.com
>> >> > reroe...@hotmail.com
>> >> > reroe...@yahoo.es
>> >> >
>> >>
>> >>
>> >> --
>> >> El buen Informático es como un Bibliotecario, no lo sabe todo pero
>> >> sabe donde buscarlo...
>> >> _______________________________________________
>> >> Python-es mailing list
>> >> Python-es@python.org
>> >> http://mail.python.org/mailman/listinfo/python-es
>> >> FAQ: http://python-es-faq.wikidot.com/
>> >>
>> >
>> >
>> >
>> > --
>> > René Rolando Elizalde Solano
>> > Ingeniero en Sistemas - Universidad Nacioanal de Loja
>> > Miembro del Sección de Software del Departamento de Telecomunicaciones e
>> > Información - Universidad Nacional de Loja
>> > Desarrollador Sistema de Gestión Académica. S G A
>> >
>> > http://reroes79.wordpress.com
>> > http://reroes799.blogspot.com/
>> > http://twitter.com/reroes
>> > rer...@unl.edu.ec
>> > reroes...@gmail.com
>> > reroe...@hotmail.com
>> > reroe...@yahoo.es
>> >
>>
>>
>> --
>> El buen Informático es como un Bibliotecario, no lo sabe todo pero
>> sabe donde buscarlo...
>>
>> _______________________________________________
>> Python-es mailing list
>> Python-es@python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>>
>>
>
>
> --
> René Rolando Elizalde Solano
> Ingeniero en Sistemas - Universidad Nacioanal de Loja
> Miembro del Sección de Software del Departamento de Telecomunicaciones e
> Información - Universidad Nacional de Loja
> Desarrollador Sistema de Gestión Académica. S G A
>
> http://reroes79.wordpress.com
> http://reroes799.blogspot.com/
> http://twitter.com/reroes
> rer...@unl.edu.ec
> reroes...@gmail.com
> reroe...@hotmail.com
> reroe...@yahoo.es
>



-- 
René Rolando Elizalde Solano
Ingeniero en Sistemas - Universidad Nacioanal de Loja
Miembro del Sección de Software del Departamento de Telecomunicaciones e
Información - Universidad Nacional de Loja
Desarrollador Sistema de Gestión Académica. S G A

http://reroes79.wordpress.com
http://reroes799.blogspot.com/
http://twitter.com/reroes
rer...@unl.edu.ec
reroes...@gmail.com
reroe...@hotmail.com
reroe...@yahoo.es
import os.path, csv

class Calle:
	def __init__(self, nombre, derecha, izquierda, vdd, vdi, estado):
		self.nombre		= 	nombre
		self.derecha	= 	derecha
		self.izquierda	= 	izquierda
		self.vdd		= 	vdd
		self.vdi		=	vdi
		self.estado		= 	estado

	def __str__(self):
		return "%s %s %s %s %s %s " % (self.nombre, self.derecha, self.izquierda, self.vdd, self.vdi, self.estado)

#Lista con los datos de las Calles
listaCalles = []


def abrir():
	"""Si existe el archivo lee y guarda el contenido en la lista"""
	if os.path.exists('calles.csv'):
		l = csv.reader(open('calles.csv', 'r'))
		for i in l:
			nombre 		= i[0]
			derecha		= i[1]
			izquierda	= i[2]
			vdd			= i[3]
			vdi			= i[4]
			estado		= i[5]
			calle 	= Calle(nombre, derecha, izquierda, vdd, vdi, estado)
			listaCalles.append(calle)

	#Si no existe lo crea
	else:
		l = open('calles.csv', 'a')
        return listaCalles

def buscarIndice(nombre):
	"""Recibe el nombre de la calle y lo busca, al encontrarlo devuelve el indice"""
        print nombre
        print abrir()
	indice 	= 0
	for buscar in listaCalles:
		if buscar.nombre == nombre:

                        print "el count es ",listaCalles.count(buscar)
                        print "el indice es ",listaCalles.index(buscar)

			break
		else:
			indice = indice + 1
	return indice#El problema es que siempre retorna 0


def otroIndice(buscar):
	indice = 0
	for i in listaCalles:
		if i == buscar:
			break
		else:
			indice = indice + 1
	return indice


def mmmIndice(buscar):
	indice = 0
	i = 0
	while i < len(listaCalles):
		if listaCalles[i].nombre == buscar:
			break
		else:
			indice = indice + 1
			i = i + 1
	return indice
		


def buscarRuta(desde, hasta):
	"""Busca una Ruta (No la mas optima)"""
	tabu 		= 0 #Marca el Tabu
	solucion	= []#Guarda las distancias
	ruta		= []#Guarda el nombre de la Calle
	siguiente 	= 0

	while (listaCalles[siguiente].nombre != hasta):
		if listaCalles[siguiente].vdd < listaCalles[siguiente].vdi and listaCalles[siguiente + 1].nombre != 'Salida':
			solucion.append(int(listaCalles[siguiente].vdd))
			ruta.append(listaCalles[siguiente].nombre)
			siguiente = buscarIndice(listaCalles[siguiente].derecha)
			if listaCalles[siguiente].vdi < listaCalles[siguiente].vdd and listaCalles[siguiente + 1].nombre != 'Salida':
				solucion.append(int(listaCalles[siguiente].vdi))
				ruta.append(listaCalles[siguiente].nombre)
				siguiente = buscarIndice(listaCalles[siguiente].izquierda)
			else:
				continue
		else:
			continue
	print "La ruta seria= %s" % (ruta)
	resul = sum(solucion)
	print "con una distancia de: %s Kms." % (resul)
	print


def listarCalles():
	"""Muestra el detalle de todas las calles"""
	print"\n"
	print "Listado de Calles".center(79, "*")

	for calle in listaCalles:
		print "Nombre de la Calle: %s\nCalle a la Derecha: %s\nCalle a la Izquierda: %s" % (calle.nombre, calle.derecha, calle.izquierda)
		print "Valor dd: %s\nValor di: %s" % (calle.vdd, calle.vdi)

		if calle.estado == True:
			print "Tabu"
			print
		else:
			print ""



def guardar():
	"""Guarda todo el contenido de la lista y reemplaza todo lo que esta en el archivo"""
	grabar = csv.writer(open('calles.csv', 'w'))
	for calle in listaCalles:
		grabar.writerow([calle.nombre, calle.derecha, calle.izquierda, calle.vdd, calle.vdi, calle.estado])



def buscarCalle():
	"""Busca una calle por nombre"""
	nombre 	= raw_input("Ingrese el nombre de la calle a buscar: ")
	for buscar in listaCalles:
		if nombre == buscar.nombre:
			print ""
			print "Resultado".center(79, "*")
			print "Nombre de la Calle: %s\nCalle a la Derecha: %s\nCalle a la Izquierda: %s" % (buscar.nombre, buscar.derecha, buscar.izquierda)
			print ""
			break


def menu():
	"""Menu principal"""
	abrir()
	while True:
		print 'MENU'.center(32, '=')
		print '1.- Busca una Ruta'
		print '2.- Busca Ruta mas Optima'
		print '3.- Muestra las Calles'
		print '4.- Busca una Calle'
		print '5.- Salir'

		op = input('Ingrese una Opcion: ')
		print

		if op == 1:
			buscarRuta('G', 'S')#Busca ruta entre 2 Calles
		if op == 2:
			buscarRutaOptima()#No implementado aun Sera "Tabu Search"
		if op == 3:
			listarCalles()#Muestra las Calles ingresadas
		if op == 4:
			buscarCalle()#Busca calle por su nombre
		if op == 5:
			guardar()
			break

#main
print "Resultado otroIndice ---> %s" % (otroIndice('G')) #Esto es para probar que valor devuelve la funcion bucarIndice()
print "Resultado mmmIndice ---> %s" % (mmmIndice('G'))
print "Resultado buscarIndice ---> %s" % (buscarIndice('G'))
print "Numerate ---> %s" % (enumerate(listaCalles))
menu()
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a