Berechnung von Fläche und Umfang des Dreiecks mit Python?
Hey Leute, ich habe Probleme mit der Ausgabe der Fläche und Umfang eines Dreiecks gegeben, die Seiten mit der Heron-Formel. Hier ist mein code:
def main():
a = int(input('Enter first side: '))
b = int(input('Enter second side: '))
c = int(input('Enter third side: '))
def area():
# calculate the sides
s = (a + b + c) / 2
# calculate the area
area = (s*(s-a)*(s-b)*(s-c)) ** 0.5
return area
area()
def perimeter():
# Calculate the perimeter
perim = a + b + c
return perim
perimeter()
print( 'Area is: ',format(area,'.1f'))
print( 'Perimeter is: ',format(perim,',.1f'))
main()
Ich erhalte viele Fehler wie
- TypeError: nicht-leere format-string übergeben werden-Objekt.format
- NameError: name 'perim' ist nicht definiert
Die Art, wie ich bin, dies zu tun ist, indem Sie die Seiten in der main-Funktion und rufen dann die zweite und dann die Ausgabe der Antworten mit einer Dezimalstelle.
Kann mir jemand sagen was ich falsch mache?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weisen Sie das zurückgegebene Werte und stellen Sie die drei Seitenlängen global. Ehrlich, Sie sollten mehr über die Geltungsbereich der Variablen, die die Ebenen, in denen Variablen definiert sind. Darüber hinaus, Ihre Variablen-Namen sollten nicht überschreiben Ihrer Funktion von Namen. Auf diese Weise können Sie verwenden diese kleinen Funktionen, die später überall in Ihrem Skript einfach durch Aufruf und die übergabe von drei Parametern.
Beispiel:
Sollte dies ein sauberer Weg, dies zu tun und Sie nur rufen Sie eine Funktion aus dem Haupt-thread. Vermeiden Sie Globale Variablen zu deklarieren und eine ganze Menge von der Verwirrung, die Sie haben (keine straftat) in Ihrem ursprünglichen code.
Weisen Sie das zurückgegebene Werte und stellen Sie die drei Seitenlängen global. Ehrlich, Sie sollten mehr über die Geltungsbereich der Variablen, die die Ebenen, in denen Variablen definiert sind. Darüber hinaus, Ihre Variablen-Namen sollten nicht überschreiben Ihre Funktion Namen.
a = area()
würde dies nicht zu einem problem werden, daa
bereits vorhanden ist?TypeError : stellen Sie sicher, markieren Formatierung Parameter, die mit einem paar von geschweiften Klammern.
NameError : möchten Sie vielleicht zu Lesen über "variable scopes".