@xoechz: Funktionen werden üblicherweise nach der Tätigkeit benannt die sie durchführen um sie von eher passiven Werten unterscheiden zu können. `eingabe` wäre ja beispielsweise ein passender Name für das Ergebnis einer Eingabe. Dafür kann man den Namen aber nicht mehr benutzen, weil die Funktion schon so heisst.
`berechnung()` wäre auch als `berechne()` inhaltlich nicht ganz zutreffend, denn die Funktion macht mehr als nur etwas zu berechnen. Die gibt auch etwas aus. Entweder man bennent die passender, oder man trennt die Berechnung von der Ausgabe. Eingabe, Verarbeitung, und Ausgabe sind gängige ”Trennlinien” zur Aufteilung von Code. Weil man dann alle drei Teilbereiche unabhängig voneinander testen kann und die auch leichter austauschbar werden. Wenn man beispielsweise aus einer Konsolen-Anwendung eine GUI-Anwendung machen will, dann ändert sich der Eingabe- und der Ausgabeteil, aber die Verarbeitung der Daten bleibt gleich.
``return`` ist keine Funktion, das sollte man also auch nicht so schreiben als wäre es eine. Da gehören keine Klammern um das ”Argument” was ja gar keines ist.
Man muss auch nicht alles an einen Namen binden.
Funktionen (und Methode) bekommen alles was sie ausser Konstanten benötigen als Argument(e) übergeben. Deine `berechnung()` verwendet einfach so aus heiterem Himmel `r`. Das sollte aber auch gar nicht gehen, weil Variablen auf Modulebene nichts zu suchen haben. Dann können nämlich unter anderem genau solche undurchsichtigen und fehleranfälligen Sachen passieren.
Namen sollten nicht kryptisch abgekürzt werden. Schon gar nicht mit nur einem Buchstaben. Wenn man `radius` meint, sollte man nicht nur `r` schreiben.
`print()` wandelt die Argumente bereits selbst in Zeichenketten um, das muss man nicht vorher selbst machen.
Anstelle der 3.14 würde man besser `math.pi` verwenden.
Code: Alles auswählen
#!/usr/bin/env python3
from math import pi as PI
def erfrage_radius():
return float(input("Radius: "))
def berechnen_und_ausgeben(radius):
print("Umfang:", 2 * radius * PI)
print("Fläche:", radius * radius * PI)
def main():
berechnen_und_ausgeben(erfrage_radius())
print("Ende.")
if __name__ == "__main__":
main()