def dados(lista): t = [] for i in range(len(jugadores)): turno = None while turno == None: turno = randint(1,len(jugadores)) if turno in t: turno = None else: t.append(turno) insertar(lista,Jugador(jugadores[i],turno),'turno') print(str(turno) + '.- sera la posicion de ' + jugadores[i]) print('') print('--- Jugadores por turnos ---') barrido_lista(lista) print('') print('--- Comienza el juego ---') aux = lista.inicio while aux != ' ': dado = (choice(dados)) sleep(1) print('Dado = ' + str(dado)) if dado == 5: break else: print('El jugador ha sacado ' + str(dado)) print('...Turno del siguiente jugador...') aux = aux.sig if aux == None: aux = lista.inicio print('El jugador ' + aux.info.nombre + ' ha ganado')
def eliminar_vocales(lista): aux = lista.inicio while aux is not None: if aux.info == 'a' or aux.info == 'e' or aux.info == 'i' or aux.info == 'o' or aux.info == 'u' or aux.info == 'A' or aux.info == 'I' or aux.info == 'E' or aux.info == 'O' or aux.info == 'U': eliminar(lista, aux.info) aux = aux.sig print('La lista sin vocales es : ') barrido_lista(lista)
def parciales(lista): print('Alumnos ordenados por apellido: ') for i in range(len(alumnos)): legajo = i+1 dato = Alumno(alumnos[i],apellidos[i],legajo) insertar(lista, dato, 'apellido') barrido_lista(lista) for i in range(tamanio_lista(lista)): i += 1 for j in range(3): pos = busqueda_lista(lista,i,'legajo') dato = Parcial(materias[j],randint(4,10),date(2020,randint(1,12),randint(1,30))) insertar(pos.sublista, dato, 'materia') barrido_sublista(lista) print(' ') aux = lista.inicio p = 0 while aux != None: aprobado = True cont = 0 prom = 0 pos = aux.sublista.inicio while pos != None: cont += 1 if pos.info.nota < 7: aprobado = False prom += pos.info.nota pos = pos.sig if aprobado == True: print(aux.info.nombre + ' ' + aux.info.apellido + ' aprobó todas las materias') if ((prom / cont) > 8.89): p += 1 print(aux.info.nombre + ' ' + aux.info.apellido + ' Tiene promedio mayor a 8,89, su promedio es: ' + str(round(prom/cont,2))) aux = aux.sig if (p < 1): print('Ningun alumno tiene promedio mayor a 8,89.') print('') print('Alumnos con apellido que comienza con L') aux = lista.inicio while aux != None: if aux.info.apellido[0] == 'L': print(aux.info.nombre + ' ' + aux.info.apellido + '; legajo ' + str(aux.info.legajo)) aux = aux.sig print('') print('Promedio general:') aux = lista.inicio while aux != None: suma_notas = 0 c = 0 pos = aux.sublista.inicio while pos != None: suma_notas += pos.info.nota c += 1 pos = pos.sig prom = (suma_notas / c) print('El promedio de el alumno ' + aux.info.nombre + ' ' + aux.info.apellido + ' es ' + str(round(prom,2))) aux = aux.sig
def concatenarlistas(lista1, lista2): conc = Lista() conc = lista1 aux = conc.inicio while aux.sig is not None: aux = aux.sig aux.sig = lista2.inicio print('Lista concantenada: ') barrido_lista(conc)
def eliminiar_nodo(comic): aux = comic.inicio while aux is not None: dato = aux.info if dato[0] == 'Linterna Verde': eliminar(comic, aux.info) aux = aux.sig print('Lista sin linterna verde: ' ) barrido_lista(comic)
def eliminar_primos(lista): aux = lista.inicio while aux is not None: cd= 0 for i in range (1, aux.info): if aux.info % i == 0: cd += 1 if cd < 2: eliminar(lista, aux.info) aux = aux.sig print('Lista sin primos: ') barrido_lista(lista)
def dividir_lista(lista): aux = lista.inicio lista_par = Lista() while aux is not None: if aux.info % 2 == 0 : insertar(lista_par, aux.info) eliminar(lista,aux.info) aux = aux.sig print('Lista par es :') barrido_lista(lista_par) print('la lista de impares es: ') barrido_lista(lista)
def elim_el(lista): print('LISTA:') barrido_lista(lista) aux = lista.inicio i = 0 while aux != None: if (i == tamanio_lista(lista)-1) : eliminar(lista,aux.info) print('') i+=1 aux = aux.sig print('Lista sin anteultimo nodo:') barrido_lista(lista)
def DVader(): legion = ['FL', ' TF', 'TK', 'CT', 'FN', 'FO'] tablaL = crear_tabla(10) tablaC = crear_tabla(1500) for i in range(1500): legion = choice(legion) cod = randint(1000, 5000) st = Stormtroopers(legion, cod) agregar_ta(tablaL, bernstein_st, st, 'legión') agregar_ta(tablaC, hash_division_st, st, 'código') print('Sormtroopers ordenados por legion: ') barrido_ta(tablaL) print('Stormtroopers ordenados por código: ') barrido_ta(tablaC) pos = hash_division(537, tablaC) if tablaC[pos]: print('Stormtrooper designados para una misión de exploración') barrido_lista(tablaC[pos]) print() pos = hash_division(781, tablaC) if tablaC[pos]: print('Stormrooper designados para una misión de asalto') barrido_lista(tablaC[pos]) print() posl = bernstein('FN', tablaL) if tablaL[posl]: print('Stormroopers de la Legión FN') barrido_lista(tablaL[posl]) print() posl = bernstein('CT', tablaL) if tablaL[posl]: print('Stormtroopers de la Legión CT') barrido_lista(tablaL[posl])
def pos_iesima(l, pos): nodo = Nodo_Lista() nodo.info = 1999 aux = lista.inicio if pos >= 0 and pos <= lista.tamanio: if pos < l.tamanio: for i in range(1, pos): aux = aux.sig nodo.sig = aux.sig aux.sig = nodo else: while aux.sig is not None: aux = aux.sig aux.sig = nodo barrido_lista(lista)
def lista_sin_repetidos(lista1, lista2): lista_sr = Lista() aux = lista1.inicio while aux is not None: if busqueda_lista(lista_sr, aux.info) is None: insertar(lista_sr, aux.info) aux = aux.sig aux = lista2.inicio while aux is not None: if busqueda_lista(lista_sr, aux.info) is None: insertar(lista_sr, aux.info) aux = aux.sig print('Lista concatenada sin repetidos:') barrido_lista(lista_sr) print('Interseccion de las listas: ', tamanio_lista(lista_sr))
def proyecto_sW(): proyecto = Lista() a_tiempo = Lista() fuera_de_tiempo = Lista() personal = ['Milagros', 'Fiamaa', 'Lujan', 'Raul', 'Pamela', ''] actividades = ['Recopilar informacion','Estudio de factibilidad','Planificacion','Analisar la informacion','Codificar el sistema','Probar el sistema','Instalacion Sw'] prom = 0 costo_total = 0 for i in range(len(personal)): costo = randint(0, 50000) tiempo_ejecucion = randint(1, 10) fecha_inicio = [ randint(1, 31), randint(1, 12),2020] fecha_estimada = [ randint(1, 31), randint(1, 12),2020] fechaF_efectiva = [ randint(1, 31), randint(1, 12),2020] persona_cargo = choice(personal) actividad = actividades[i] tareas = [costo,actividad, tiempo_ejecucion, fecha_inicio, fecha_estimada, fechaF_efectiva, persona_cargo] insertar(proyecto, tareas) print() print('Lista con actividades:') barrido_lista(proyecto) aux = proyecto.inicio print() while aux is not None: # A prom = prom + aux.info[2] # B costo_total = costo_total + aux.info[0] # C if aux.info[5]: print('Persona:',aux.info[6]) print('Actividades que realiza:',aux.info[1]) print('Costo de la actividad:',aux.info[0]) print('Tiempo de ejecucion:',aux.info[2]) print() if aux.info[2] < 7: insertar(a_tiempo,aux.info[1]) else: insertar(fuera_de_tiempo,aux.info[1]) aux = aux.sig # D fecha1 = [1,2,2020] fecha2 = [25,4,2020] print() print('Actividades entre '+ str(fecha1) + ' y '+ str(fecha2)) aux = proyecto.inicio while aux is not None: if fecha1 < aux.info[5] and fecha2 > aux.info[5]: print(aux.info[1]) aux = aux.sig print() print('Tareas que se realizaron a tiempo: ') barrido_lista(a_tiempo) print() print('Tareas que se realizaron fuera de tiempo: ') barrido_lista(fuera_de_tiempo)
def pokemones(lista): for i in range(len(entrenadores)): aux = Entrenador(entrenadores[i],randint(0,10),randint(0,100),randint(0,100),randint(1,10)) insertar(lista,aux,'t_ganados') barrido_lista(lista) print('') aux = lista.inicio while not aux == None: print(aux.info) print('---- Pokemones') cant = aux.info.cant_pok for j in range (cant): pok = choice(list(pokemon.keys())) dato = Pokemon(pok, pokemon[pok][0], pokemon[pok][1], randint(1,50)) print(dato) insertar(aux.sublista,dato,'nivel') aux = aux.sig print('') #b print('') print('<<<<< Entrenadores que han ganado MAS de 3 torneos Pokemon >>>>>') aux = lista.inicio c = 0 while not aux == None: if aux.info.t_ganados > 3 : print(aux.info) c += 1 aux = aux.sig print(' - Hay ' + str(c) + ' entrenadores que ganaron mas de 3 torneos Pokemon.') print('') # C torn = 0 ent = None aux = lista.inicio nv = 0 pok = None while not aux == None: if aux.info.t_ganados > torn: torn = aux.info.t_ganados max_torn = aux.info.nombre ent = aux.sublista.inicio while not ent == None: if nv < ent.info.nivel: nv = ent.info.nivel pok = ent.info.nombrepok ent = ent.sig aux = aux.sig print('- El entrenador que mas Torneos Pokemon ha ganado es: ' + max_torn + ', con ' + str(torn)+ ' Torneos ganados.') print('- Su pokemon de mayor nivel es: ' + pok + ' de nivel ' + str(nv)) print('') nom = input('ingrese Entrenador a mostrar sus datos y pokemones: ') pos = busqueda_lista(lista,nom,'nombre') if not pos == None: print(pos.info) print('_____Pokemones:') aux = pos.sublista.inicio while not aux == None: print(aux.info) aux = aux.sig print('') # e print('- ENTRENADORES CON PORCENTAJE DE VICTORIA MAYOR A 79% :') aux = lista.inicio x = False while aux is not None: bat_tot = aux.info.bat_ganadas + aux.info.bat_perdidas porcentaje = (aux.info.bat_ganadas * 100)/bat_tot if porcentaje > 79: x = True print(aux.info.nombre +' tiene un porcentaje de ' +str(round(porcentaje,2)) + '% batalladas ganadas.') aux = aux.sig if x == False: print('No hay Entrenadores con un porcentaje mayor a 79.') print() # f aux = lista.inicio while aux is not None: sub = aux.sublista.inicio while sub is not None: if (sub.info.tipo == 'fuego'): if (sub.info.subtipo == 'planta'): print(aux.info.nombre, ': tiene un pokemon tipo fuego y subtipo planta, ' + sub.info.nombrepok) if (sub.info.tipo == 'agua'): if (sub.info.subtipo == 'volador'): print(aux.info.nombre, ': tiene un pokemon tipo agua y subtipo volador, ' + sub.info.nombrepok) sub = sub.sig aux = aux.sig print('-') print('') # g nom = input('ingrese Entrenador a sacar promedio de nivel de sus Pokemones: ') pos = busqueda_lista(lista,nom,'nombre') if not pos == None: print(pos.info) niveles = 0 cant = 0 sub = pos.sublista.inicio while sub is not None: cant += 1 print(sub.info) niveles += sub.info.nivel sub = sub.sig prom = niveles / cant print('--- El promedio de nivel de sus pokemones es: '+ str(round(prom, 2))) print('') # H aux = lista.inicio cont = 0 pok = input(str('Ingrese el nombre del pokemon a buscar: ')) while aux is not None: pos = busqueda_lista(aux.sublista, pok, 'nombrepok') if pos is not None: cont += 1 print(aux.info.nombre +' tiene a ' + pok) aux = aux.sig print(str(cont) +' entrenadores tienen al pokemon '+ pok) print('') # J aux = lista.inicio while aux is not None: sub = aux.sublista.inicio while sub is not None: if (sub.info.nombrepok == 'Tyrantrum') or (sub.info.nombrepok == 'Terrakion') or (sub.info.nombrepok == 'Wingull'): print('El entrenador ' +aux.info.nombre + ', tiene al pokemon ' + sub.info.nombrepok) sub = sub.sig aux = aux.sig print('') # K pos = None n = None x = None while ent not in entrenadores: ent = input('Ingrese nombre del entrenador: ') pos = busqueda_lista(lista,ent,'nombre') while n not in pokemon: n = input('Ingrese nombre de pokemon a buscar: ') if (not pos == None) and (not n == None): print('') b = False nom = pos.sublista.inicio while not nom == None: if (nom.info.nombrepok == n): b = True break nom = nom.sig if b == False: print('El entrenador '+ pos.info.nombre + ' no tiene al pokemon buscado.') elif b == True: print('Entrenador y pokemon encontrados.') print('Mostrando sus datos...') sleep(1.5) print(pos.info) sleep(0.7) print(nom.info)
def github(lista): lista = Lista() user = Usuario('Roman') insertar(lista, user, 'nombre') user = Usuario('Regina') insertar(lista, user, 'nombre') user = Usuario('Tania') insertar(lista, user, 'nombre') user = Usuario('Jesus') insertar(lista, user, 'nombre') commit = Commit('test.py', '11-11-20 19:00', 'testeo de la applicacion', 46) pos = busqueda_lista(lista, 'Roman', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('data.py', '11-11-20 19:00', 'correccion error', 12) pos = busqueda_lista(lista, 'Roman', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('object.java', '11-11-20 19:00', 'modelado del objeto', -37) pos = busqueda_lista(lista, 'Regina', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('app.py', '11-11-20 19:00', 'basta chicos', 34) pos = busqueda_lista(lista, 'Tania', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('front.html', '11-11-20 19:00', 'update', 47) pos = busqueda_lista(lista, 'Jesus', 'nombre') insertar(pos.sublista, commit, 'archivo') commit = Commit('vista.css', '11-11-20 19:00', 'update', -2) pos = busqueda_lista(lista, 'Jesus', 'nombre') insertar(pos.sublista, commit, 'archivo') print('Lista de colaboradores: ') barrido_lista(lista) print() # a aux = lista.inicio mayor = 0 while aux is not None: if tamanio_lista(aux.sublista) > mayor: mayor = tamanio_lista(aux.sublista) aux = aux.sig aux = lista.inicio while aux is not None: if tamanio_lista(aux.sublista) == mayor: print('Colaborador con mayor cantidad de commits: ' + aux.info.nombre) print('Cantidad de commits: '+ str(mayor)) aux = aux.sig print() # b mayor = 0 usuario = '' aux = lista.inicio while aux is not None: pos = aux.sublista.inicio mayor_aux = 0 while pos is not None: mayor_aux += pos.info.cant_lineas pos = pos.sig if mayor_aux > mayor: mayor = mayor_aux usuario = aux.info.nombre aux = aux.sig print(usuario +', agrego la mayor cantidad de lineas: ' +str(mayor)) menor = 0 usuario_menor = '' aux = lista.inicio while aux is not None: pos = aux.sublista.inicio menor_aux = 0 while pos is not None: menor_aux += pos.info.cant_lineas pos =pos.sig if menor_aux < menor: menor = menor_aux usuario_menor = aux.info.nombre aux = aux.sig print(usuario_menor+ ' elimino la mayor cantidad de lineas: '+ str(menor)) print() # C aux = lista.inicio while aux is not None: pos = busqueda_lista(aux.sublista,'test.py','archivo') if pos is not None: print(aux.info.nombre + ', ha realizado cambios en test.py') aux = aux.sig # D print() aux = lista.inicio while aux is not None: pos = busqueda_lista(aux.sublista,0,'cant_lineas') if pos is not None: print(aux.info.nombre + ' ha realizado un commit con 0 lineas') aux = aux.sig print() # E aux = lista.inicio while aux is not None: pos = busqueda_lista(aux.sublista,'app.py','archivo') if pos is not None: print(aux.info.nombre + ', ha realizado cambios en app.py') barrido_sublista(aux.sublista) aux = aux.sig
def lista_peliculas(lista): for i in range(len(peliculas)): dato = Pelicula(peliculas[i],randint(1,10),randint(1970,2020),randint(100000,10000000)) insertar(lista,dato,'nombre') barrido_lista(lista) print('') # A pos = None while pos == None: pos = input('Ingrese un año de estreno: ') if pos not in '1234567890': pos = None aux = lista.inicio vacio = False while aux is not None: if pos == aux.info.estreno: print('- '+aux.info.nombre +' se estreno en el año: '+ str(aux.info.estreno)) vacio = True aux = aux.sig if vacio == False: print('No se estreno pelicula en ese año.') print('') # B mas_rec = 0 may_p = '' aux = lista.inicio while aux is not None: if aux.info.recaudacion > mas_rec: mas_rec = aux.info.recaudacion mayor_p = aux.info aux = aux.sig print('Datos de la pelicula que mas ha recaudado:') print(may_p) print('') # C print('Mayor valoracion:') aux = lista.inicio max_val = 0 while aux is not None: if aux.info.valoracion > max_val: max_val = aux.info.valoracion aux = aux.sig aux = lista.inicio while aux is not None: if aux.info.valoracion == max_val: print('- ' +aux.info.nombre +' tiene la valoracion mas alt con un puntaje es de ' + str(max_val) + ' puntos.') aux = aux.sig print('') # D print('Peliculas mostradas por criterio:') criterio = None lista_aux = Lista() print('CRITERIOS: nombre - valoracion - estreno - recaudacion : ') while criterio == None: criterio = input('Ingrese criterio por el que quiere mostrar: ') if (criterio != 'nombre') and (criterio != 'recaudacion') and (criterio != 'estreno') and (criterio != 'valoracion'): criterio = None print('Se ha producido un error: el criterio ha sido mal ingresado, vuelva a ingresar...') # ordenado por criterio print('') aux = lista.inicio while aux is not None: insertar(lista_aux, aux.info, criterio) aux = aux.sig print('Peliculas por ' + criterio +'...') sleep(2) barrido_lista(lista_aux)
def navesss(): lista_ventas = Lista() clientes = Lista() sin_clientes = Lista() nombre_clientes = Lista() informe = Lista() #A archivo = open('naves') linea = archivo.readline() while linea: linea = linea.replace('\n', '') linea = linea.split(';') linea[0] = linea[0].upper() linea[1] = linea[1].upper() linea[2] = float(linea[2]) linea[3] = linea[3].title() linea[4] = linea[4].title() insertar(lista_ventas, linea) linea = archivo.readline() print('Lista de ventas de naves') barrido_lista(lista_ventas) print() aux = lista_ventas.inicio cont = 0 ac = 0 devolver = 0 ingresoAT = 0 while aux is not None: #B if aux.info[4] == 'Desconocido': insertar(sin_clientes, aux.info) else: insertar(clientes,aux.info) pos = busqueda_lista(nombre_clientes, aux.info[4],4) #E if pos == None: insertar(nombre_clientes,aux.info[4]) #D cont += 1 ac = ac + aux.info[2] #F if aux.info[4] == 'Darth Vader': insertar(informe, aux.info) #H if aux.info[1] == 'AT-AT' or aux.info == 'AT-ST' or aux.info == 'AT-TE': ingresoAT = ingresoAT + aux.info[2] aux = aux.sig print('Total de ingresos de creditos galacticos: ') print(ac) print() print('Total de naves vendidas:') print(cont) print() print('Listado de clientes') barrido_lista(nombre_clientes) print() print('Informe de compras de Darth Vader') barrido_lista(informe) print() print('Clientes que han comprado naves construidas con material reciclado y monto a devoler:') aux2 = lista_ventas.inicio while aux2 is not None: #G if aux2.info[3] == 'Si': devolver = (aux2.info[2] * 15) / 100 print('Al cliente: '+ aux2.info[4] + ' se le devolvera, '+str(round(devolver,2))) aux2 = aux2.sig print() print('Ingreso genero la producción de naves cuyos modelos contengan la sigla “AT”.: '+str(round(ingresoAT,2)))
def barrido_ta(tabla): '''Muestra los elementos de una tabla abierta''' for indice in tabla: if indice is not None: barrido_lista(indice)
insertar(lista,dato,'planeta') aux = lista.inicio while not aux == None: cant = (randint(1,15)) lista_epis = [] for i in range(cant): epis = choice(episodios) if len(lista_epis) == 0: lista_epis.append(epis) insertar(aux.sublista,Episodios(epis),'episodio') if epis not in lista_epis: insertar(aux.sublista,Episodios(epis),'episodio') lista_epis.append(epis) aux = aux.sig print('Lista de personajes ordenada segun Planetas Natales: ') barrido_lista(lista) print() aux = lista.inicio # A print('Lista de personajes FEMENINOS') while aux != None: if aux.info.genero == 'F': print(aux.info) aux = aux.sig print() # B print('Lista de los personajes de especie Droide, que aparecieron en los primeros seis episodios de la saga:') aux = lista.inicio while not aux == None: pos = aux.sublista.inicio while not pos == None: