try:
nm1 = input("MESA 1: Ingresa nombre de 1er jugador: ")
except KeyboardInterrupt:
while True:
try:
limpiar()
nm1 = input("MESA 1: Ingresa nombre de 1er jugador: ")
break
except KeyboardInterrupt:
continue
while len(nm1)>20 or not nm1.isalpha() or len(nm1)<=2:
try:
nm1 = input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: ")
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()
break
except KeyboardInterrupt:
limpiar()
continue
limpiar()
try:
ap1 = input("MESA 1: Ingresa apellido de 1er jugador: ")
except KeyboardInterrupt:
while True:
try:
limpiar()
ap1 = input("MESA 1: Ingresa apellido de 1er jugador: ")
break
except KeyboardInterrupt:
continue
while len(ap1)>20 or not ap1.isalpha() or len(ap1)<=2:
try:
ap1 = input("Demasiados car. (min 3 y max 20) o car. invalido, ingrese otra vez: ")
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()
break
except KeyboardInterrupt:
limpiar()
continue
Tengo un problema al intentar poner el apellido del jugador 1, por ejemplo:
MESA 1: Ingresa nombre de 1er jugador: elhacker
MESA 1: Ingresa apellido de 1er jugador: """Pulso Ctrl+C para invocar a la excepcion KeyboardInterrupt. Deberia mostrar lo
mismo y consultarme el apellido del primer jugador pero..."""
MESA 1: Ingresa nombre de 1er jugador: """Aqui como que se devuelve y me pregunta el nombre del 1er jugador pero esta asignando
mi entrada a la del apellido del jugador 1, deberia preguntarme el apellido."""
Alguien sabe cual es el error y como lo soluciono??
Gracias.
PD: En las etiquetas geshi se ve el indentando mas largo, le hize copy-paste a mi codigo y quedo asi. En mi editor el indentando esta bien
la verdad que este código me parece muy repetitivo y nada claro, para el usuario o el programador, hice basicamente lo mismo pero de otra forma simple y para mi gusto más legible.
#-*- coding: utf -8- -*-
def verifica(nn):
valida= False
if len(nn) <=2:
print("Debe tener más de 2 caracteres")
elif len(nn) > 20:
print("Debe tener un máximo de 20 caracteres")
elif not nn.isalpha():
print("Hay algún caracter inválido")
else:
valida = True
return valida
nombre= False
while not nombre:
try:
nm1 = input("MESA 1: Ingresa nombre de 1er jugador: ")
if verifica(nm1):
nombre=True
except KeyboardInterrupt:
continue
apellido= False
while not apellido:
try:
ap1 = input("MESA 1: Ingresa apellido de 1er jugador: ")
if verifica(ap1):
apellido=True
except KeyboardInterrupt:
continue
otra cosa no creas que el CTRL-C funciona igual en todos los sistemas