Errata corrige: “ritorna None” al posto di “ritorna True”
> Il giorno 31 gen 2020, alle ore 14:51, Giovanni Vittorio Spina > <vittorio.sp...@gmail.com> ha scritto: > > A occhio il return mi sembra che sia dentro al ciclo while, in questo caso > il break conclude il ciclo e poi manca il return e la funzione quindi ritorna > True. > Se invece l’inserimento fallisce, viene eseguita la print, ma n è fallita e > anche qui il return n dovrebbe causare un errore. > Io la funzione la scriverei più compatta come segue. > > def Numero(s): > While True: > try: return int(input(s)) > except Exception as e: print(“error: ”+str(e)) > > > Mi pare si legga meglio e sia meno soggetta ad errori > >> Il giorno 31 gen 2020, alle ore 14:41, Gabriele Battaglia <iz4...@libero.it> >> 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. >> -- >> Gabriele Battaglia, IZ4APU (Libero) >> Sent from TB on Windows 10, Genus Bononiae's computer. >> _______________________________________________ >> Python mailing list >> Python@lists.python.it >> https://lists.python.it/mailman/listinfo/python _______________________________________________ Python mailing list Python@lists.python.it https://lists.python.it/mailman/listinfo/python