(Python 3.5) 2 veces un input

Iniciado por BigKaz, 14 Diciembre 2016, 03:54 AM

0 Miembros y 1 Visitante están viendo este tema.

BigKaz

Hola, tengo un error en este codigo.
Código (python) [Seleccionar]
while True:
com = input("Esperando cambio de hora o entrada de administrador, !!buen juego!!: ")
if com == ("admin"):                                                                
limpiar()
menum2()

Funcion menum2:
Código (python) [Seleccionar]
def menum2():
global nm1,ap1,nm2,ap2,nm3,ap3,nm4,ap4 #Declara todas las variables mencionadas a global
print("""MODO ADMINISTRACION TOTAL ACTIVADO:
  Ver MESA 1: vm1
  Ver MESA 2: vm2
  Reiniciar: reinicio
  Ajustar J1 de primera mesa: aj1
  Ajustar J2 de primera mesa: aj2
  Ajustar J1 de segunda mesa: aj3
  Ajustar J2 de segunda mesa: aj4
  Esperar: esperar
  Salir: salir""")
respuad = input("admin: ")
limpiar()
if respuad == ("vm1"):
print (nm1,ap1,"|",nm2,ap2)
input("Presione enter: ")
limpiar()
menum2()
elif respuad == ("vm2"):
print (nm3,ap3,"|",nm4,ap4)
input("Presione enter: ")
limpiar()
menum2()
elif respuad == ("reinicio"):
programa()
elif respuad == ("aj1"):
nm1 = input("PRIMERA MESA: Ingresa nombre de 1er jugador: ")
while (len(nm1)>20) or (not (nm1.isalpha()) or (len(nm1)<=2)):
nm1 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
limpiar()
ap1 = input("PRIMERA MESA: Ingresa apellido de 1er jugador: ")
while (len(ap1)>20) or (not (ap1.isalpha()) or (len(ap1)<=2)):
ap1 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
limpiar()
input("Presione enter: ")
limpiar()
menum2()
elif respuad == ("aj2"):
nm2 = input("PRIMERA MESA: Ingresa nombre de 2do jugador: ")
while (len(nm2)>20) or (not (nm2.isalpha()) or (len(nm2)<=2)):
nm2 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
limpiar()
ap2 = input("PRIMERA MESA: Ingresa apellido de 2do jugador: ")
while (len(ap2)>20) or (not (ap2.isalpha()) or (len(ap2)<=2)):
ap2 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
limpiar()
input("Presione enter: ")
limpiar()
menum2()
elif respuad == ("aj3"):
nm3 = input("SEGUNDA MESA: Ingresa nombre de 1er jugador: ")
while (len(nm3)>20) or (not (nm3.isalpha()) or (len(nm3)<=2)):
nm3 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
limpiar()
ap3 = input("Segunda MESA: Ingresa apellido de 1er jugador: ")
while (len(ap3)>20) or (not (ap3.isalpha()) or (len(ap3)<=2)):
ap3 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
limpiar()
input("Presione enter: ")
limpiar()
menum2()
elif respuad == ("aj4"):
nm4 = input("SEGUNDA MESA: Ingresa nombre de 2do jugador: ")
while (len(nm4)>20) or (not (nm4.isalpha()) or (len(nm4)<=2)):
nm4 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
limpiar()
ap4 = input("SEGUNDA MESA: Ingresa apellido de 2do jugador: ")
while (len(ap4)>20) or (not (ap4.isalpha()) or (len(ap4)<=2)):
ap4 = (input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: "))
limpiar()
input("Presione enter: ")
limpiar()
menum2()
elif respuad == ("esperar"):
limpiar()
com = input("Esperando cambio de hora o entrada de administrador, !!buen juego!!: ")
if com == ("admin"):
limpiar()
menum2()
elif respuad == ("salir"):
quit()
else:
input("Comando invalido, presione enter: ")
limpiar()
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 (python) [Seleccionar]
Esperando cambio de hora o entrada de administrador, !!buen juego!!: admin #No pasa nada
Esperando cambio de hora o entrada de administrador, !!buen juego!!: admin #Esta vez si me lleva al menu admin

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ú.

engel lex

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  :-\
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

BigKaz

Es que antes estaba convencido de que cada expresion necesitaba un parentesis xDDD

No se porque pero se soluciono magicamente

engel lex

Cita de: BigKaz en 14 Diciembre 2016, 04:05 AM
No se porque pero se soluciono magicamente

se llama mal de técnico XD
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.