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