Quote:
Originariamente inviato da ~FullSyst3m~
Tornando in topic, aggiungo una cosa che ho appena notato.
Partendo dal presupposto che quando si scrive un’istruzione return nell’idle al momento dell’esecuzione non ritorna nulla (si deve mettere un istruzione di stampa) mentre nella command line non ce n’è bisogno (e poi vorrei capire questa cosa),
|
Nella command line l'interprete è predisposto per stampare eventuali risultati delle espressioni.
Quindi se scrivi ad esempio 3 * 5 ti stamperà 15.
Quote:
ho notato questo:
Codice:
import math
def DistanzaTraDuePunti(x1,y1,x2,y2):
dx=x2-x1
dy=y2-y1
DistQuadrata=dx**2+dy**2
Risultato=math.sqrt(DistQuadrata)
print Risultato
return Risultato
def AreaCerchio(Raggio):
math.pi*Raggio**2
def AreaCerchio2(xc,yc,xp,yp):
Raggio=DistanzaTraDuePunti(xc,yc,xp,yp)
Risultato=AreaCerchio(Raggio)
print Risultato
return Risultato
print AreaCerchio(55)
AreaCerchio2(4,9,7,3)
1)AreaCerchio mi ritorna il valore None
|
Perché non torni nulla, appunto. In Python affinché una funzione ritorni un valore devi utilizzare sempre l'istruzione return. Quindi così:
Codice:
def AreaCerchio(Raggio):
return math.pi*Raggio**2
Quote:
2)Se chiamo la funzione AreaCerchio2, mi ritorna il risultato e poi il None
|
Con quel codice sbagliato deve tornarti None e stampartelo pure a video.
Quote:
3)Se tolgo il print da AreaCerchio2 mi ritorna il valore, ma il None sparisce
|
Perché viene omesso dalla command line.
Quote:
4)Se metto il print davanti alla chiamata di funzione di AreaCerchio2 mi ritorna il valore e due None
Why??
|
Il primo None lo stampa perché lo fa AreaCerchio2. Il secondo perché gliel'hai chiesto esplicitamente tu.
Questo perché tu stai usando Python dalla command line, che è una speciale modalità utile per "smanettare", provando al volo pezzi di codice.
Quote:
Comunque per fare un pò di ordine riquoto il mio primo post, togliendo i dubbi ai quali si è già trovato risposta
|
Troppo tardi, non avevo letto.
Ho risposto a tutto.
Quote:
In attesa di risposta, Valerio Staffeli, hwupgrade forum, a voi la linea
|