Betragsfunktion in Python funktioniert nicht?
Guten Tag!
Ich habe bald im Rahmen meines Mathematik Studiums einen einwöchigen Kurs in Python. Ich habe mich schonmal selber n bisschen informiert und mir das ganze installiert. Ich bin also noch KOMPLETTER ANFÄNGER. Ich habe aber Erfahrungen mit Matlab und habe dort auch schon einige Numerische Verfahren geschrieben. Ich schreibe hier nun mit diesem IDLE Programm... Ich wollte zunächst einfach mal die Betragsfunktion selber schreiben und dann denn User abfragen, auf welche Zahl er gerne die Funktion anwenden möchte und dann das entsprechende Ergebnis ausgeben.
def abs(x):
return x if x>=0 else -x
string="Eingabe von x: "
x=intput(string)
print(abs(x))
Nun bekomme ich aber eine Fehlermeldung... Und zwar sagt er mir, dass das Zeichen > nicht erkannt wurde...??? Wieso das denn??
TypeError: '>' not supported between instances of 'str' and 'int'
Das steht da... kann mir da jemand weiterhelfen?
Danke und LG
4 Antworten
Er sagt nicht, dass das Zeichen nicht erkannt wird, sondern dass es in dieser Kombination zwischen String und Integer nicht erlaubt ist.
input gibt einen String, den musst du erst zu einer Zahl (Integer oder Float) casten
Mit Strings kann man nicht rechnen.
Python ist ungeeinget für Anfänger. Das ist ja ein gutes Beispiel, weil du Variablen nicht mit einem bestimmten Typ deklarierst. Dann wäre dir bewusst, mit welchen Datentypen du arbeitest.
Wandle den String in eine Zahl um, bevor du damit rechnest.
print(abs(int(x)))
Du kannst nicht den Betrag von einem String (Zeichenfolge) nehmen, sondern es muss eine Zahl (int als Ganzzahl) sein.
Dein x ist als Integervariable definiert, dein Input aber als Stringvariable. Das geht nicht.
Super Danke wusste nicht, dass input einen String gibt, deswegen war ich verwundert
Gute Danke ich wusste nicht, dass input einen String gibt...