Hallo,
das ist mein erster Eintrag in diesem Forum. Ich habe vor einigen Wochen mit Python angefangen und bin auf ein Problem gestoßen:
In meinem Code habe ich eine Variable, welche eine Zahl enthält, die ich zuerst umkehren will mit * -1 und anschließend in eine Formel einbauen will.
So sieht der Code momentan aus:
Wert_1 = Wert_1 * -1
Lösung_b= math.sqrt(math.pow(Wert_1, 2) + math.pow(Wert_2, 2))
print("Die Länge der Seite b beträgt:")
print(Lösung_b)
(Ich habe den restlichen Code weggelassen, weil bis dahin alles funktioniert hat.)
Jetzt ist aber das Problem, dass anscheinend der Wert zwar tatsächlich mit * -1 multipliziert wird, jedoch scheint dies in der Rechnung nicht beachtet zu werden. Denn die Lösung wäre richtig, wenn das Vorzeichen von Wert_1 positiv wäre.
Also meine Frage ist: Wie bekomme ich es hin, dass der Wert umgekehrt wird und der umgekehrte Wert dann in der Rechnung beachtet wird.
Vielen Dank und LG
Variable mit umgekehrtem Vorzeichen funktioniert nicht
-
- User
- Beiträge: 9
- Registriert: Donnerstag 8. Juli 2021, 17:27
Es geht um den Satz des Pythagoras. Wenn man Seite a und c gegeben hat und b berechnen möchte, müssen -a und c in einer Wurzel jeweils quadriert und dann addiert werden. b = sqrt(-a^2 + c^2)
Da kommt nunmal nicht dasselbe raus wenn a beispielsweise 12 und nicht -12 ist.
Da kommt nunmal nicht dasselbe raus wenn a beispielsweise 12 und nicht -12 ist.
@meisenheinrich: Das ist jetzt aber was anderes, als du im Code geschrieben hast. Da kommt also noch ein dritter (und vierter?) Fall dazu: Was ist der Unterschied zwischen x², (-x)², -x² und -(x²)? Welches davon willst du haben und was hast du im Code stehen?
-
- User
- Beiträge: 9
- Registriert: Donnerstag 8. Juli 2021, 17:27
Ich verstehe ehrlich gesagt die Frage nicht.
if Gesucht == "c":
Lösung_c = math.sqrt(math.pow(Wert_1, 2) + math.pow(Wert_2, 2))
print("Die Länge der Seite c beträgt:")
print(Lösung_c)
elif Gesucht == "b":
Wert_1 = Wert_1 * -1
Lösung_b= math.sqrt(math.pow(Wert_1, 2) + math.pow(Wert_2, 2))
print("Die Länge der Seite b beträgt:")
print(Lösung_b)
Das ist der Code. Bei dem oberen funktioniert es fehlerfrei (da muss der erste Wert auch nicht umgekehrt werden), aber beim zweiten kommt dummerweise dasselbe raus wie beim ersten.
if Gesucht == "c":
Lösung_c = math.sqrt(math.pow(Wert_1, 2) + math.pow(Wert_2, 2))
print("Die Länge der Seite c beträgt:")
print(Lösung_c)
elif Gesucht == "b":
Wert_1 = Wert_1 * -1
Lösung_b= math.sqrt(math.pow(Wert_1, 2) + math.pow(Wert_2, 2))
print("Die Länge der Seite b beträgt:")
print(Lösung_b)
Das ist der Code. Bei dem oberen funktioniert es fehlerfrei (da muss der erste Wert auch nicht umgekehrt werden), aber beim zweiten kommt dummerweise dasselbe raus wie beim ersten.
Variablennamen schreibt man komplett klein.
Statt math.pow benutzt man ** und statt math.sqrt benutze ich **0.5
Und wie narpfel schon schieb gibt es einen Unterschied zwischen (-x)**2 und -x**2. Es kommt auf die Reihenfolge der Mathematischen Operationen an.
Wenn Du es einfach so schreibst, wie in Deiner Formel, dann passt es schon:
Statt math.pow benutzt man ** und statt math.sqrt benutze ich **0.5
Und wie narpfel schon schieb gibt es einen Unterschied zwischen (-x)**2 und -x**2. Es kommt auf die Reihenfolge der Mathematischen Operationen an.
Wenn Du es einfach so schreibst, wie in Deiner Formel, dann passt es schon:
Code: Alles auswählen
lösung_b = (wert_c ** 2 - wert_a ** 2) ** 0.5
print("Die Länge der Seite b beträgt:", lösung_b)
-
- User
- Beiträge: 9
- Registriert: Donnerstag 8. Juli 2021, 17:27
Vielen Dank @Sirius3. Jetzt funktioniert's!