<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Ciao Gabriele,<br>
<br>
mi sembra che tu abbia indentato troppo il return!<br>
<br>
def Numero(s):
<br>
while True:
<br>
try:
<br>
n = int(input(s))
<br>
break
<br>
except:
<br>
print("Sono accettati esclusivamente valori numerici!")
<br>
<font color="#cc0000">return (n)
</font><br>
<br>
Per come ha scritto Numero, quando esci da while non esegue return<br>
<br>
Ciao<br>
Roberto<br>
<br>
<br>
<div class="moz-cite-prefix">Il 31/01/20 14:40, Gabriele Battaglia
ha scritto:<br>
</div>
<blockquote type="cite"
cite="mid:abafca56-c3c6-0db6-2bac-801d9f469ecb@libero.it">Ciao.
<br>
Sono recentemente passato a Python 3.8.1
<br>
Ho un comportamento che non mi spiego.
<br>
Assegno un valore numerico ad una variabile tramite una piccola
funzione che si assicura che l'utente inserisca numeri e non
lettere:
<br>
<br>
def Numero(s):
<br>
while True:
<br>
try:
<br>
n = int(input(s))
<br>
break
<br>
except:
<br>
print("Sono accettati esclusivamente valori
numerici!")
<br>
return (n)
<br>
<br>
i1 = Numero("Da: ")
<br>
<br>
Bene, fin qui dovrebbe essere elemntare. Poi ho bisogno di
sottrare una unità ad i1:
<br>
<br>
i1 -= 1
<br>
<br>
E ricevo un errore. L'interprete mi informa che l'operatore -= non
può essere usato sulla classe None ma solo sugli interi.
<br>
Ho inserito un print(type(i1)) prima dell'errore ed in effetti
appartiene alla classe None.
<br>
Ma com'è possibile?
<br>
<br>
Gabry.
<br>
</blockquote>
<br>
</body>
</html>