def modif_sw(arbol): file = abrir('starwars') busc = input('Ingrese nombre del personaje a modificar: ') val = busqueda_arbol(arbol, busc) if val is not None: print('1) Nombre') print('2) Altura') print('3) Peso') mod = input('Elija campo a modificar: ') sw = leer(file, pos) if mod == '1': nom = input('Ingrese el nuevo nombre: ') dato = Personaje(nom, sw.altura, sw.peso) modificar(file, pos, dato) sw = leer(file, pos) arbol = insertar_nodo(arbol, sw.nombre, pos) elif mod == '2': alt = int(input('Ingrese la nueva altura: ')) dato = Personaje(sw.nombre, alt, sw.peso) modificar(file, pos, dato) sw = leer(file, pos) arbol = insertar_nodo(arbol, sw.nombre, pos) elif mod == '3': peso = int(input('Ingrese el nuevo peso: ')) dato = Personaje(sw.nombre, sw.altura, peso) modificar(file, pos, dato) sw = leer(file, pos) arbol = insertar_nodo(arbol, sw.nombre, pos) else: print('ERROR') else: print('El personaje no existe') cerrar(file)
def inorden_peso(raiz, archivo): if raiz is not None: inorden_peso(raiz.izq, archivo) sw = leer(archivo, raiz.nrr) if sw.peso <= 75: print(raiz.info, '-', sw.peso) inorden_peso(raiz.der, archivo)
def inorden_altura(raiz, archivo): if raiz is not None: inorden_altura(raiz.izq, archivo) sw = leer(archivo, raiz.nrr) if sw.altura >= 1: print(raiz.info, '-', sw.altura) inorden_altura(raiz.der, archivo)
def inorden_personajesw(raiz, archivo): if raiz is not None: inorden_personajesw(raiz.izq, archivo) personaje = leer(archivo, raiz.nrr) if personaje[1] and personaje[2] and personaje[3]: print(raiz.info, '-', personaje[1], personaje[2], personaje[3]) inorden_personajesw(raiz.der, archivo)
def busqueda_proximidad_archivo(raiz, buscado, archivo): if raiz is not None: if raiz.info[0:len(buscado)] == buscado: libro = leer(archivo, raiz.nrr) print(libro.isbn, libro.cant, libro.titulo, libro.autores) busqueda_proximidad_archivo(raiz.izq, buscado, archivo) busqueda_proximidad_archivo(raiz.der, buscado, archivo)
def inorden_ayguion(raiz, archivo): if raiz is not None: inorden_ayguion(raiz.izq, archivo) jedi = leer(archivo, raiz.nrr) if jedi[0][0].find('a') > -1 or jedi[0].find('-') > -1: print(raiz.info, '-', jedi[2]) inorden_ayguion(raiz.der, archivo)
def inorden_especie(raiz, archivo): if raiz is not None: inorden_especie(raiz.izq, archivo) jedi = leer(archivo, raiz.nrr) if jedi[2].find('togruta') > -1 or jedi[2].find('cerean') > -1: print(raiz.info, '-', jedi[2]) inorden_especie(raiz.der, archivo)
def inorden_lightsaber(raiz, archivo): if raiz is not None: inorden_lightsaber(raiz.izq, archivo) jedi = leer(archivo, raiz.nrr) if jedi[4].find('green') > -1: print(raiz.info, '-', jedi[4]) inorden_lightsaber(raiz.der, archivo)
def inorden_jedimaster(raiz, archivo): if raiz is not None: inorden_jedimaster(raiz.izq, archivo) jedi = leer(archivo, raiz.nrr) if jedi[1].find('jedi master') > -1: print(raiz.info, '-', jedi[1]) inorden_jedimaster(raiz.der, archivo)
def inorden_nombrank(raiz, archivo): if raiz is not None: inorden_nombrank(raiz.izq, archivo) jedi = leer(archivo, raiz.nrr) if jedi[1]: print(raiz.info, '-', jedi[1]) inorden_nombrank(raiz.der, archivo)
def busqueda_archivo(raiz, cantidad, archivo): if raiz is not None: libro = leer(archivo, raiz.nrr) if libro.cant > cantidad: print(libro.isbn, libro.cant, libro.titulo, libro.autores) busqueda_archivo(raiz.izq, cantidad, archivo) busqueda_archivo(raiz.der, cantidad, archivo)
def inorden_poke_numero(raiz, archivo): if raiz is not None: inorden_poke_numero(raiz.izq, archivo) poke = leer(archivo, raiz.nrr) if poke.numero: print(raiz.info, '-', poke.nombre) inorden_poke_numero(raiz.der, archivo)
def inorden_debilidad(raiz, archivo, clave): if raiz is not None: inorden_debilidad(raiz.izq, archivo, clave) poke = leer(archivo, raiz.nrr) if poke.debilidad.find(clave) > -1: print(raiz.info, 'presenta debilidad al tipo', clave, '-', poke.debilidad) inorden_debilidad(raiz.der, archivo, clave)
def inorden_tipo(raiz, archivo): if raiz is not None: inorden_tipo(raiz.izq, archivo) poke = leer(archivo, raiz.nrr) if poke.tipo.find('agua') > -1 or poke.tipo.find( 'fuego') > -1 or poke.tipo.find( 'planta') > -1 or poke.tipo.find('electrico') > -1: print(raiz.info, 'es de tipo', poke.tipo) inorden_tipo(raiz.der, archivo)
def indiceDiosesToNario(archivo): '''Retorna un arbol nario del archivo (con formato específico) pasado. Cada nodo.info contiene un array''' raiz = None pos = 0 raiz = insertarCampoNario(raiz, None, ["INDICE", "-", "-"]) largo_archivo = len(archivo) ultimo_titulo1 = None ultimo_titulo2 = None while pos < largo_archivo: line = leer(archivo, pos) line = line.replace("\n", "") line_sin_numeros = line[line.find(" "):] datos_dios = line_sin_numeros.split(";") nombre = datos_dios[0].replace(" ", "") descripcion = datos_dios[1] madre = datos_dios[2] info = [nombre, descripcion, madre] if esTitulo1(line): raiz = insertarCampoNario(raiz, raiz.info, info, 0) ultimo_titulo1 = info if esTitulo2(line): info_del_padre = ultimo_titulo1 raiz = insertarCampoNario(raiz, info_del_padre, info, 0) ultimo_titulo2 = info if esTitulo3(line): info_del_padre = ultimo_titulo2 raiz = insertarCampoNario(raiz, info_del_padre, info, 0) pos += 1 line = leer(archivo, pos) return raiz
def extraerDataPersonajes(ruta): '''Devuelve array con los datos y la posición de cada personaje almacenado en el archivo''' archivo = abrir(ruta) array = [] pos = 0 while pos < len(archivo): data_personaje = [leer(archivo, pos), pos] array.append(data_personaje) pos += 1 return array
def indiceDirectorioToNario(archivo): '''Retorna un arbol nario del archivo (con formato específico) pasado. Cada nodo.info contiene un array''' arbol = None pos = 0 arbol = insertarNario(arbol, None, "INDICE") largo_archivo = len(archivo) ultimo_titulo1 = None ultimo_titulo2 = None while pos < largo_archivo: line = leer(archivo, pos) line = line.replace("\n", "") nombre = "/" + line[line.find(" "):] nombre = nombre.replace(" ", "") condicion = esNombreDeArchivo(nombre) info = [nombre, condicion] if esTitulo1(line): arbol = insertarNario(arbol, "INDICE", info) ultimo_titulo1 = info if esTitulo2(line): padre = ultimo_titulo1 arbol = insertarNario(arbol, padre, info) ultimo_titulo2 = info if esTitulo3(line): padre = ultimo_titulo2 arbol = insertarNario(arbol, padre, info) pos += 1 line = leer(archivo, pos) return arbol
def busquedaNroPoke(ruta_file, raiz, nro_buscado): '''Devuelve pokemon que haya encontrado con nro de pokedex solicitado''' pokemon = None encontrado = busquedaCampo(raiz, nro_buscado, 0) if encontrado: indice = encontrado.info[1] archivo = abrir(ruta_file) pokemon = leer(archivo, indice) cerrar(archivo) return pokemon
def consultaPersonaje(arbol, buscado, ruta_archivo): archivo = abrir(ruta_archivo) indice = obtenerIndice(arbol, buscado) if indice == -1: print("El personaje buscado no se encuentra") else: personaje = leer(archivo, indice) print("Nombre:", personaje.nombre) print("Altura:", personaje.altura) print("Peso:", personaje.peso) print()
def listaBusquedaTipoArbol(ruta, arbol, tipo): '''Devuelve lista de pokemons del tipo especificado, traidos desde el archivo''' lista = [] indices_pokemon_tipo = [] busqTipos(arbol, tipo, indices_pokemon_tipo) archivo = abrir(ruta) for indice in indices_pokemon_tipo: lista.append(leer(archivo, indice)) cerrar(archivo) return lista
def listadoIndicesPeso(arbol, archivo): if arbol is not None: listadoIndicesPeso(arbol.izq, archivo) indice = obtenerIndice(arbol, arbol.info[0]) if indice != -1: personaje = leer(archivo, indice) if (personaje.estado) and (personaje.peso < 75): print("Nombre:", personaje.nombre) print("Altura:", personaje.altura) print("Peso:", personaje.peso) print() listadoIndicesPeso(arbol.der, archivo)
def listaPokemonsNombre(ruta_file, raiz, nombre_buscado): '''Devuelve lista de pokemons que haya encontrado por proximidad''' indices_poke_a_obtener_data = [] # En el arbol por nombre, se busca por proximidad, y se devuelve los indices de quienes coincidan obtenerIndicesPorNombre(raiz, nombre_buscado, indices_poke_a_obtener_data) # Por cada indice, se busca en el archivo y trae el objeto Pokemon del susodicho datos_pokemons = [] archivo = abrir(ruta_file) for indice in indices_poke_a_obtener_data: datos_pokemons.append(leer(archivo, indice)) cerrar(archivo) return datos_pokemons
def bajaPersonaje(arbol, ruta_archivo): '''La la baja (lógica) de un personaje''' archivo = abrir(ruta_archivo) buscado = input("Nombre del personaje buscado: ") indice = obtenerIndice(arbol, buscado) if indice == -1: print("Personaje no encontrado") else: personaje = leer(archivo, indice) personaje.estado = False modificar(archivo, personaje, indice) cerrar(archivo) print("Personaje dado de baja") arbol = generarArbolPersonajesNombre(ruta_archivo) return arbol
def modificarPersonaje(arbol, ruta_archivo): '''Busca un personaje, de encontrarlo, permite su modificación''' archivo = abrir(ruta_archivo) buscado = input("Nombre del personaje buscado: ") indice = obtenerIndice(arbol, buscado) if indice == -1: print("Personaje no encontrado") else: personaje = leer(archivo, indice) print("1- Nombre:", personaje.nombre) print("2- Altura:", personaje.altura) print("3- Peso:", personaje.peso) opcion = input("Seleccione campo a modificar: ") print() if (opcion in ["1", "2", "3"]): nuevo_valor = input("Nuevo valor: ") if opcion == "1": personaje.nombre = nuevo_valor elif opcion == "2": personaje.altura = float(nuevo_valor) elif opcion == "3": personaje.peso = float(nuevo_valor) modificar(archivo, personaje, indice) cerrar(archivo) arbol = generarArbolPersonajesNombre(ruta_archivo) print("Personaje Guardado") else: print("Opcion seleccionada incorrecta") return arbol
datos = [['Darth Vader', 1.85, 93], ['Chewbacca', 2.04, 113], ['C-3PO', 1.67, 72], ['Yoda', 0.9, 47], ['Boba Fett', 1.83, 78], ['Han Solo', 1.77, 83], ['Jabba el Hutt', 3.9, 531], ['Darth Maul', 1.78, 74]] # se guarda datos en archivo file = abrir('starwars') for dato in datos: x = Personaje(dato[0], dato[1], dato[2]) guardar(file, x) # a # se inserta nombres en arbol pos = 0 while pos < len(datos): personaje = leer(file, pos) arbol = insertar_nodo(arbol, personaje.nombre, pos) #print(personaje.nombre, 'anadido en la posicion:', pos) pos += 1 cerrar(file) print('Arbol de personajes:') por_nivel(arbol) print() # b print('1) Alta') print('2) Baja') print('3) Modificacion') print('4) Salir') control = input('Que desea hacer: ')
def inorden_name(raiz, archivo, jedis): if raiz is not None: inorden_name(raiz.izq, archivo, jedis) jedi = leer(archivo, raiz.nrr) jedis.append(jedi) inorden_name(raiz.der, archivo, jedis)
# guardar(file, l1) # l1 = Libro('890', 'algoritmos', 'nuevo', 'uader', 230) # guardar(file, l1) # l1 = Libro('012', 'pyhton', 'nuevo', 'uader', 1000) # guardar(file, l1) # l1 = Libro('033', 'datos', 'nuevo', 'uader', 890) # guardar(file, l1) arbol_isbn = None arbol_titulo = None arbol_autores = None # a b y c pos = 0 while pos < len(file): libro = leer(file, pos) print(libro.isbn, libro.cant, libro.titulo) arbol_isbn = insertar_nodo(arbol_isbn, libro.isbn, pos) arbol_titulo = insertar_nodo(arbol_titulo, libro.titulo, pos) for autor in libro.autores.split(';'): arbol_autores = insertar_nodo(arbol_autores, autor, pos) pos += 1 cerrar(file) print('') pos = busqueda_arbol(arbol_isbn, '567') if pos is not None: file = abrir('libros') libro = leer(file, pos.nrr) cerrar(file) print(libro.isbn, libro.cant, libro.titulo, libro.autores)
self.nombre = nombre self.especie = especie self.año_nacimiento = año_nacimiento self.color_sable = color_sable self.ranking = ranking self.maestro = maestro # a arbol_nombre = None arbol_ranking = None arbol_especie = None file = abrir('jedis') pos = 0 while pos < len(file): jedi = leer(file, pos) arbol_nombre = insertar_nodo(arbol_nombre, jedi[0], pos) arbol_ranking = insertar_nodo(arbol_ranking, jedi[1], pos) arbol_especie = insertar_nodo(arbol_especie , jedi[2], pos) pos += 1 cerrar(file) # lee archivo jedis print('NOMBRE | RANKING | ESPECIE | MAESTRO | COLOR DE SABLE | ORIGEN | AÑO DE NACIMIENTO | ALTURA') arch = abrir('jedis') for i in range(0, len(arch)): print(leer(arch, i)) cerrar(arch) print() # b
['Weepinbell', 70, 'planta/veneno', 'fuego/volador/hielo']] arbol = None arbol_nombre = None arbol_numero = None arbol_tipo = None file = abrir('pokemon') for poke in datos: x = Pokemon(poke[0], poke[1], poke[2], poke[3]) guardar(file, x) # a pos = 0 while pos < len(datos): poke = leer(file, pos) arbol = insertar_nodo( arbol, [poke.nombre, poke.numero, poke.tipo, poke.debilidad], pos) arbol_nombre = insertar_nodo(arbol_nombre, poke.nombre, pos) arbol_numero = insertar_nodo(arbol_numero, poke.numero, pos) arbol_tipo = insertar_nodo(arbol_tipo, poke.tipo, pos) pos += 1 cerrar(file) # b busc = input('Busqueda por nombre del pokemon. Ingrese: ') busqueda_proximidad(arbol_nombre, busc) print() # c, d y e file = abrir('pokemon')