Estoy experimentando de poco en poco en python y pues he querido transformar una palabra que el usuario inserta a todo minúscula, creo que tengo que usar .lower pero no consigo hacer que funcione, el código;
def contra1():
password = raw_input("Contrasena: ")
if password=="allahuakbar":
print("Has iniciado sesion como administrador.")
else:
contra1()
def usuario():
sesion = raw_input("Nombre de usuario: ")
sesion.lower()
if sesion=="invitado":
print("Has iniciado sesion como invitado.")
elif sesion=="hakuna matata":
contra1()
else:
usuario()
#Inicio
usuario()
quiero que la variable sesion se cambie a minúscula, e igul con la password, pero tiene número asi que no se cómo hacerlo :(
Sacando la info de aquí: https://docs.python.org/2/library/string.html (https://docs.python.org/2/library/string.html)
def contra1():
password = raw_input("Contrasena: ")
if password.lower()=="allahuakbar":
print("Has iniciado sesion como administrador.")
else:
contra1()
def usuario():
sesion = raw_input("Nombre de usuario: ")
#sesion.lower() #esto *devuelve* el string en minusculas, pero no lo estas asignando a nada
if sesion.lower()=="invitado":
print("Has iniciado sesion como invitado.")
elif sesion.lower()=="hakuna matata":
contra1()
else:
usuario()
#Inicio
usuario()
Aunque podrias mejorar ese codigo...
Saludos!
EDIT: Podrias hacer algo como lo que sigue, pero tendrias el mismo bucle infinito que antes:
def login():
sesion = raw_input("Nombre de usuario: ")
seguir = True
while seguir:
if sesion.lower()=="invitado":
print("Has iniciado sesion como invitado.")
seguir = False # Termina el while externo
elif sesion.lower()=="hakuna matata":
seguir = False
seguir2 = True
while seguir2: #bucle infinito hasta que password == "allahuakbar". OJO!!!!!!!
password = raw_input("Contrasena: ")
if password.lower()=="allahuakbar":
print("Has iniciado sesion como administrador.")
seguir2 = False # Termina el while interno
#Inicio
login()
otra opcion es
sesionminuscula=sesion.lower()
en tu linea 10
necesitas almacenar el dato
coincido con madoko, ahora no entiendo dos cosas:
1)¿por qué me usas la sintaxis de python 2.x y 3.x usa la que corresponda a cada uno, por ejemplo el raw_input (2.x) y el print con parentesis es 3.x, es mejor no usarlas en 2.x
2)¿para qué usas recursividad? si puede evitarse facilmente con un while
Soy nuevo, no se a qué te refieres, yo voy aprendiendo con lo tutoriales que encuentro jajaja, por cierto, gracias por las respuestas.