Ciao Gabriele, mi sembra che tu abbia indentato troppo il return!
def Numero(s): while True: try: n = int(input(s)) break except: print("Sono accettati esclusivamente valori numerici!") return (n) Per come ha scritto Numero, quando esci da while non esegue return Ciao Roberto Il 31/01/20 14:40, Gabriele Battaglia ha scritto: > Ciao. > Sono recentemente passato a Python 3.8.1 > Ho un comportamento che non mi spiego. > Assegno un valore numerico ad una variabile tramite una piccola > funzione che si assicura che l'utente inserisca numeri e non lettere: > > def Numero(s): > while True: > try: > n = int(input(s)) > break > except: > print("Sono accettati esclusivamente valori numerici!") > return (n) > > i1 = Numero("Da: ") > > Bene, fin qui dovrebbe essere elemntare. Poi ho bisogno di sottrare > una unità ad i1: > > i1 -= 1 > > E ricevo un errore. L'interprete mi informa che l'operatore -= non può > essere usato sulla classe None ma solo sugli interi. > Ho inserito un print(type(i1)) prima dell'errore ed in effetti > appartiene alla classe None. > Ma com'è possibile? > > Gabry.
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python