Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Biodude9456 en 6 Marzo 2016, 00:11 am



Título: Python - Listas ayuda
Publicado por: Biodude9456 en 6 Marzo 2016, 00:11 am
Tengo este código;
Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. from time import sleep
  5. administradores = ["patata","justin"]
  6. contraseñas = ["777","charizard"]
  7.  
  8. start_admin = False
  9. def login():
  10.    sesion=input("Nombre de usuario:  ")
  11.    seguir = True
  12.    while seguir:
  13.        if sesion.lower()=="invitado":
  14.            print("Has iniciado sesion como invitado.")
  15.            seguir = False # Termina el while externo
  16.        elif sesion.lower() in administradores:
  17.            seguir = False
  18.            seguir2 = True
  19.            while seguir2:
  20.                password = input("Contraseña:  ")
  21.                if password in contraseñas:
  22.                    print("Has iniciado sesion como administrador.")
  23.                    print()
  24.                    seguir2 = False
  25.                    global start_admin
  26.                    start_admin = True
  27.                    sleep(0.5)
  28.                    continue
Y me gustaría saber cómo podría identificar la posición en la que esta el usuario que el usuario escriba (valga la redundancia), para que luego sepa de que posición tengo que cojer la contraseña, no se si me explico, un saludo!   :P


Título: Re: Python - Listas ayuda
Publicado por: Biodude9456 en 6 Marzo 2016, 02:57 am
Me respondo a mi mismo(zoi ezpezial).
Código
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. from time import sleep
  5. administradores = ["patata","justin"]
  6. contraseñas = ["777","charizard"]
  7.  
  8. start_admin = False
  9. def login():
  10.    sesion = input("Nombre de usuario:  ")
  11.    seguir = True
  12.    while seguir:
  13.        if sesion.lower()=="invitado":
  14.            print("Has iniciado sesion como invitado.")
  15.            seguir = False # Termina el while externo
  16.        elif sesion.lower() in administradores:
  17.            seguir = False
  18.            seguir2 = True
  19.            position_user = administradores.index(sesion)
  20.            while seguir2:
  21.                password = input("Contraseña:  ")
  22.                if password==contraseñas[position_user]:
  23.                    print("Has iniciado sesion como administrador.")
  24.                    print()
  25.                    seguir2 = False # Termina el while interno
  26.                    global start_admin
  27.                    start_admin = True
  28.                    sleep(0.5)
  29.                    continue
Así lo conseguí :)


Título: Re: Python - Listas ayuda
Publicado por: tincopasan en 6 Marzo 2016, 05:15 am
me parece muy bien que lo hayas resuelto! ahora ten presente que index devuelve la primera aparición en la listas, es decir que hay que tener cuidado si hay dos administradores con el mismo nombre por ejemplo.