[Python] Classe inattesa.

Roberto Barison roberto.barison a gmail.com
Ven 31 Gen 2020 14:47:54 CET


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.

-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20200131/026df997/attachment.html>
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  833 bytes
Descrizione: OpenPGP digital signature
URL:         <http://lists.python.it/pipermail/python/attachments/20200131/026df997/attachment.sig>


Maggiori informazioni sulla lista Python