Beispiel #1
0
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')
Beispiel #2
0
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)
Beispiel #3
0
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
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
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)
Beispiel #8
0
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)
Beispiel #9
0
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])
Beispiel #10
0
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)
Beispiel #11
0
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))
Beispiel #12
0
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)
Beispiel #13
0
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)
Beispiel #14
0
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
Beispiel #15
0
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)
Beispiel #16
0
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)))
Beispiel #17
0
def barrido_ta(tabla):
    '''Muestra los elementos de una tabla abierta'''
    for indice in tabla:
        if indice is not None:
            barrido_lista(indice)
Beispiel #18
0
    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: