Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Biodude9456 en 1 Marzo 2016, 20:42 pm



Título: [SOLUCIONADO] Python-Cómo cambiar palabra almaceneada a minúscula?
Publicado por: Biodude9456 en 1 Marzo 2016, 20:42 pm
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;
Código
  1. def contra1():
  2. password = raw_input("Contrasena:  ")
  3. if password=="allahuakbar":
  4. print("Has iniciado sesion como administrador.")
  5. else:
  6. contra1()
  7.  
  8. def usuario():
  9. sesion = raw_input("Nombre de usuario:  ")
  10. sesion.lower()
  11. if sesion=="invitado":
  12. print("Has iniciado sesion como invitado.")
  13. elif sesion=="hakuna matata":
  14. contra1()
  15. else:
  16. usuario()
  17.  
  18. #Inicio
  19. 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 :(


Título: Re: Python-Cómo cambiar palabra almaceneada a minúscula?
Publicado por: MCKSys Argentina en 1 Marzo 2016, 20:53 pm
Sacando la info de aquí: https://docs.python.org/2/library/string.html (https://docs.python.org/2/library/string.html)

Código
  1. def contra1():
  2.    password = raw_input("Contrasena:  ")
  3.    if password.lower()=="allahuakbar":
  4.        print("Has iniciado sesion como administrador.")
  5.    else:
  6.        contra1()
  7.  
  8. def usuario():
  9.    sesion = raw_input("Nombre de usuario:  ")
  10.    #sesion.lower() #esto *devuelve* el string en minusculas, pero no lo estas asignando a nada
  11.    if sesion.lower()=="invitado":
  12.        print("Has iniciado sesion como invitado.")
  13.    elif sesion.lower()=="hakuna matata":
  14.        contra1()
  15.    else:
  16.        usuario()
  17.  
  18. #Inicio
  19. usuario()
  20.  

Aunque podrias mejorar ese codigo...

Saludos!

EDIT: Podrias hacer algo como lo que sigue, pero tendrias el mismo bucle infinito que antes:

Código
  1. def login():
  2.    sesion = raw_input("Nombre de usuario:  ")
  3.    seguir = True
  4.    while seguir:
  5.        if sesion.lower()=="invitado":
  6.            print("Has iniciado sesion como invitado.")
  7.            seguir = False # Termina el while externo
  8.        elif sesion.lower()=="hakuna matata":
  9.            seguir = False
  10.            seguir2 = True
  11.            while seguir2: #bucle infinito hasta que password == "allahuakbar". OJO!!!!!!!
  12.                password = raw_input("Contrasena:  ")
  13.                if password.lower()=="allahuakbar":
  14.                    print("Has iniciado sesion como administrador.")
  15.                    seguir2 = False # Termina el while interno
  16.  
  17. #Inicio
  18. login()
  19.  


Título: Re: Python-Cómo cambiar palabra almaceneada a minúscula?
Publicado por: madoko en 1 Marzo 2016, 21:09 pm
otra opcion es
sesionminuscula=sesion.lower()
en tu linea 10

necesitas almacenar el dato


Título: Re: Python-Cómo cambiar palabra almaceneada a minúscula?
Publicado por: tincopasan en 1 Marzo 2016, 21:57 pm
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 


Título: Re: Python-Cómo cambiar palabra almaceneada a minúscula?
Publicado por: Biodude9456 en 2 Marzo 2016, 08:16 am
Soy nuevo, no se a qué te refieres, yo voy aprendiendo con lo tutoriales que encuentro jajaja, por cierto, gracias por las respuestas.