Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: BigKaz en 14 Diciembre 2016, 03:54 am



Título: (Python 3.5) 2 veces un input
Publicado por: BigKaz en 14 Diciembre 2016, 03:54 am
Hola, tengo un error en este codigo.
Código
  1. while True:
  2. com = input("Esperando cambio de hora o entrada de administrador, !!buen juego!!: ")
  3. if com == ("admin"):                                                                
  4. limpiar()
  5. menum2()
Funcion menum2:
Código
  1. def menum2():
  2. global nm1,ap1,nm2,ap2,nm3,ap3,nm4,ap4 #Declara todas las variables mencionadas a global
  3. print("""MODO ADMINISTRACION TOTAL ACTIVADO:
  4.   Ver MESA 1: vm1
  5.   Ver MESA 2: vm2
  6.   Reiniciar: reinicio
  7.   Ajustar J1 de primera mesa: aj1
  8.   Ajustar J2 de primera mesa: aj2
  9.   Ajustar J1 de segunda mesa: aj3
  10.   Ajustar J2 de segunda mesa: aj4
  11.   Esperar: esperar
  12.   Salir: salir""")
  13. respuad = input("admin: ")
  14. limpiar()
  15. if respuad == ("vm1"):
  16. print (nm1,ap1,"|",nm2,ap2)
  17. input("Presione enter: ")
  18. limpiar()
  19. menum2()
  20. elif respuad == ("vm2"):
  21. print (nm3,ap3,"|",nm4,ap4)
  22. input("Presione enter: ")
  23. limpiar()
  24. menum2()
  25. elif respuad == ("reinicio"):
  26. programa()
  27. elif respuad == ("aj1"):
  28. nm1 = input("PRIMERA MESA: Ingresa nombre de 1er jugador: ")
  29. while (len(nm1)>20) or (not (nm1.isalpha()) or (len(nm1)<=2)):
  30. nm1 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
  31. limpiar()
  32. ap1 = input("PRIMERA MESA: Ingresa apellido de 1er jugador: ")
  33. while (len(ap1)>20) or (not (ap1.isalpha()) or (len(ap1)<=2)):
  34. ap1 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
  35. limpiar()
  36. input("Presione enter: ")
  37. limpiar()
  38. menum2()
  39. elif respuad == ("aj2"):
  40. nm2 = input("PRIMERA MESA: Ingresa nombre de 2do jugador: ")
  41. while (len(nm2)>20) or (not (nm2.isalpha()) or (len(nm2)<=2)):
  42. nm2 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
  43. limpiar()
  44. ap2 = input("PRIMERA MESA: Ingresa apellido de 2do jugador: ")
  45. while (len(ap2)>20) or (not (ap2.isalpha()) or (len(ap2)<=2)):
  46. ap2 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
  47. limpiar()
  48. input("Presione enter: ")
  49. limpiar()
  50. menum2()
  51. elif respuad == ("aj3"):
  52. nm3 = input("SEGUNDA MESA: Ingresa nombre de 1er jugador: ")
  53. while (len(nm3)>20) or (not (nm3.isalpha()) or (len(nm3)<=2)):
  54. nm3 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
  55. limpiar()
  56. ap3 = input("Segunda MESA: Ingresa apellido de 1er jugador: ")
  57. while (len(ap3)>20) or (not (ap3.isalpha()) or (len(ap3)<=2)):
  58. ap3 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
  59. limpiar()
  60. input("Presione enter: ")
  61. limpiar()
  62. menum2()
  63. elif respuad == ("aj4"):
  64. nm4 = input("SEGUNDA MESA: Ingresa nombre de 2do jugador: ")
  65. while (len(nm4)>20) or (not (nm4.isalpha()) or (len(nm4)<=2)):
  66. nm4 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
  67. limpiar()
  68. ap4 = input("SEGUNDA MESA: Ingresa apellido de 2do jugador: ")
  69. while (len(ap4)>20) or (not (ap4.isalpha()) or (len(ap4)<=2)):
  70. ap4 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
  71. limpiar()
  72. input("Presione enter: ")
  73. limpiar()
  74. menum2()
  75. elif respuad == ("esperar"):
  76. limpiar()
  77. com = input("Esperando cambio de hora o entrada de administrador, !!buen juego!!: ")
  78. if com == ("admin"):
  79. limpiar()
  80. menum2()
  81. elif respuad == ("salir"):
  82. quit()
  83. else:
  84. input("Comando invalido, presione enter: ")
  85. limpiar()
  86. menum2()
Al llegar a "Esperando cambio de administrador, buen juego" y poner "admin", no pasa nada y me lo vuelve a mostrar y cuando pongo "admin" esta vez si lo acepta.

Ejemplo:
Código
  1. Esperando cambio de hora o entrada de administrador, !!buen juego!!: admin #No pasa nada
  2. Esperando cambio de hora o entrada de administrador, !!buen juego!!: admin #Esta vez si me lleva al menu admin
  3.  
Porque pasa esto y como lo arreglo?

EDIT: No se porque a python le dan ganas de trollearme, pero no hice nada en el codigo y al poner admin se activaba el menú.


Título: Re: (Python 3.5) 2 veces un input
Publicado por: engel lex en 14 Diciembre 2016, 04:02 am
pruebo la primera sección de tu código y todo bien...

por qué pones parentesis en todos los strings de los if? es innecesario y hace el codigo confuso, en este codigo si hay un exceso y realmente grande de parentesis que solo dificultan la lectura  :-\


Título: Re: (Python 3.5) 2 veces un input
Publicado por: BigKaz en 14 Diciembre 2016, 04:05 am
Es que antes estaba convencido de que cada expresion necesitaba un parentesis xDDD

No se porque pero se soluciono magicamente


Título: Re: (Python 3.5) 2 veces un input
Publicado por: engel lex en 14 Diciembre 2016, 04:13 am
No se porque pero se soluciono magicamente

se llama mal de técnico XD