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

Rispondere a