Utilizzare try/except (per di più generico) in questo caso non è molto bello.
Molto più elegante un:
Oppure, se proprio volessi utilizzare try/except:codice:while 1: val = raw_input(msg) if isinstance(val, int): return val else: print "error"
Utilizzare un "except" generico (ovvero senza specificare che tipo di eccezione ci si aspetta) non è buona abitudine.codice:while 1: val = raw_input(msg) try: int(val) except ValueError: print "error" else: return val