Domanda Risolto problemi col comando return, python

Stato
Discussione chiusa ad ulteriori risposte.

markito

Utente Iron
3 Marzo 2021
23
7
2
19
Salve a tutti, scrivo per capire cosa non va nel mio programma:
Codice:
import math

def area(ray):

    a = math.pi * ray**2



def distanza(x1, y1, x2, y2):

    dx = x2 - x1

    dy = y2 - y1

    dsquadr = dx**2 + dy**2

    risultato = math.sqrt(dsquadr)

    return risultato



def area_cerchio(xc, yc, xp, yp):

    return area(distanza(xc,yc,xp,yp))

  

a = area_cerchio(1,2,4,6) + 1

tralasciando che le varie funzioni potessero essere scritte in maniera più concisa (stavo provando lo sviluppo incrementale e non ho ancora rivisto il progrmma), non capisco perchè la funzione ''area_cerchio(xc, yc, xp, yp)'' mi restituisca un risultato NoneType; infatti quando provo ad eseguire il programma aggiungendo l'assegnazione ''a = area_cerchio(1,2,4,6) + 1'' appunto per provare la funzione mi restituisce l' output:

Codice:
Traceback (most recent call last):
  File "main.py", line 16, in <module>
    a = area_cerchio(1,2,4,6) + 1
TypeError: unsupported operand type(s) for +: 'NoneType' and 'int'

nonostante io in ''area_cerchio(xc, yc, xp, yp)'' abbia usato il comando return.
spiegazioni?
grazie in anticipo
 
Ciao, in pratica la funzione area non ritorna alcun valore. Invece dovrebbe:

Python:
def area(ray):
    a = math.pi * ray**2
    return a
 
Stato
Discussione chiusa ad ulteriori risposte.