Python Wurzel ziehen - sqrt(a) is not defined?
Ich muss einen Wurzelzieher in Python erstellen ich habe schon vieles versucht.
In dem ersten Bild sieht man den Text wo ich auch eigentlich sicher bin dass es klappen muss.
Doch wie man im zweiten Bild sieht klappt es eben nicht, so wie ich es verstehe versteht Python nichts unter dem Befehl sqrt. Der steht aber im Script aus Informatik fürs Wurzelziehen, als Beispiel ist auch c=sqrt(a) angegeben, deswegen verstehe ich nicht wieso das nicht geht.
Ich kann es normal öffnen und die Zahl eingeben wonach in Zeile 3 gefragt wird, aber wenn ich dann Enter drücke schließt sich Python bzw. bekomme ich nachdem ich rechtklick-->Edit with IDLE-->F5 gemacht habe die Fehlermeldung (Bild 2).
Kann mir jemand mal sagen was ich da hinschreiben muss was falsch ist??


3 Antworten
Ich hab 0 ahnung von Python aber das sieht sehr danach aus, das die Bibliothek math nicht eingebunden wurde, sodass das Programm keine Ahnung hat, was du mit den math-funktionen meinst.
Ja hast du richtig Vermutet. Ich habe das Problem wie du es sagst, die mathe Bibelothek habe ich nicht importiert und mit math.sqrt(a) ging es dann.
Trotzdem danke :)
Ich kenne zwar Python nicht, aber in vielen Programmiersprachen sind Befehle nichts anderes als Unterprogramme (auch Subroutinen genannt). Sie unterscheiden sich von selbstgemachten Unterprogrammen dadurch, dass sie in einer mitgelieferten Bibliothek vorhanden sind. Zu Deinem Problem: In Deiner Bibliothek gibt es kein sqrt-Unterprogramm. Du müsstest Deine Python-Bibliothek um so einen Befehl erweitern. Entweder werden solche Erweiterungen angeboten oder man schreibt selbst ein Unterprogramm fürs Wurzelziehen. ich habe das mal gemacht, ging ganz einfach, weiß aber heute nur noch, dass das mit der Formel (a + b) zum Quadrat zu tun hatte und in einer Schleife lief, die mit jedem Durchlauf eine beliebige vorgegebene Zahl dem Ergebnis näherbrachte. Wenn die Zahl in der vorgegebenen Größenordnung sich nicht mehr verändert hat, war das dann das gewünschte Ergebnis. Die Zahl der Durchläufe war erstaunlich gering, so um die 8.
http://docs.python.org/2/library/math.html
Mal so probiert:?
math.sqrt(x)
Richtig, zuerst musst du mittels
import math
das Modul erstmal importieren. Wenn du sqrt() benutzen willst, kannst du direkt
from math import sqrt
benutzen.
b = math.sqrt(a) NameError: name 'math' is not defined
Klappt immer noch nicht, selbes Problem...