Seite 2 von 2
Re: Satz des Pytagoras
Verfasst: Donnerstag 10. September 2015, 20:13
von Sirius3
@Space: noch ein paar Anmerkungen: Sternchenimporte solltest Du vermeiden, weil damit nicht klar ist, was da alles in den Namensraum importiert wird. Variablennamen sollten aussagekräftig sein, x ist das nicht. Statt Ints will man vielleicht auch Kommazahlen eingeben. Bei x=1 passiert etwas ungewolltes.
Re: Satz des Pytagoras
Verfasst: Donnerstag 10. September 2015, 20:19
von Space
Also sollte ich lieber mit floats arbeiten?
Und wie funktioniert das mit den import das hab ich noch nicht ganz so gecheckt?
Re: Satz des Pytagoras
Verfasst: Donnerstag 10. September 2015, 20:49
von Sirius3
@Space: da das Ergebnis der Wurzelfunktion sowieso ein float ist, ja.
Re: Satz des Pytagoras
Verfasst: Donnerstag 10. September 2015, 22:13
von Kebap
Space hat geschrieben:man kann schließlich nicht genug wissen

Wenn du deinen Code hier rein kopierst (gute Idee) dann klick oben auf den "Code" Button, dann sieht er besser aus.

Re: Satz des Pytagoras
Verfasst: Donnerstag 10. September 2015, 23:00
von cofi
Nicht nur besser, sondern ueberhaupt erst lesbar, da ohne keine Einrueckung erhalten bleibt.
Re: Satz des Pytagoras
Verfasst: Freitag 11. September 2015, 06:16
von MagBen
Space hat geschrieben:Und wie funktioniert das mit den import das hab ich noch nicht ganz so gecheckt?
Es gibt in Python Funktionen und Klassen, die kannst Du ohne
import benutzen, z.B.
range oder
list, die sind wie das Mäppchen und sein Inhalt, das hast Du immer auf dem Tisch liegen. Alles zusammen gibt es in Python sehr sehr viele Funktionen und Klassen (tausende), deshalb werden die meisten davon in Bibliotheken organisiert. Wenn Du Mathe hast, dann hast Du das Mathebuch auf dem Tisch und wenn Du Englisch hast, dann hast Du das Englischbuch auf dem Tisch.
bedeuted,Du hast das Python Mathebuch auf dem Tisch.
Das Buch auf dem Tisch zu haben, reicht aber nicht aus, Du musst es auch an der richtigen Stelle aufschlagen:
bedeuted, Du hast die Seite mit der Wurzelfunktion (square root) aufgeschlagen und darfst sie deshalb benutzen.
Re: Satz des Pytagoras
Verfasst: Freitag 11. September 2015, 12:39
von Space
Achso cool
danke für die Tipps jetzt kapier ich das auch
Sag mal hat jemand noch etwas zu dem ich mich im programm schreiben üben könnte?

Re: Satz des Pytagoras
Verfasst: Freitag 11. September 2015, 12:42
von Hyperion
Probiere mal die Such-Funktion! Da sollte es zig Threads geben, bei denen Anfänger nach simplen Aufgaben fragen. Da findest Du bestimmt einiges

Re: Satz des Pytagoras
Verfasst: Freitag 11. September 2015, 12:46
von Space
Ist es so besser
Code: Alles auswählen
from math import sqrt
x = float(input('Was ist auszurechnen? Hypotenuse(1) oder Kathete(2)'))
if x == 1:
a = float(input('Nenne die erste Kathete.'))
b = float(input('Nenne die zweite Kathete.'))
c = sqrt(a**2 + b**2)
print('Die Hypotenuse ist', c)
if x == 2:
a = float(input('Nenne die Hypotenuse.'))
b = float(input('Nenne die vorhandene Kathete.'))
c = sqrt(a**2 - b**2)
print('Die Gesuchte Kathete ist', c)
else:
print('Bitte gib für die Hypotenuse 1 und für die Kathete zwei ein!')
Und be math import* wird die ganze mathe bibliotek geöffnet?
Und wenn ich jetzt noch hinten eine schleife dranhängen möchte das wenn man nicht 1 oder 2 geantwortet hat das ganze nach der Antwort an
den anfang zurück springt wie muss ich das machen?
Re: Satz des Pytagoras
Verfasst: Freitag 11. September 2015, 13:07
von Sirius3
@Space: man würde vorne eine Schleife einbauen. x ist kein aussagekräftiger Name. Eingerückt wird mit 4 Leerzeichen pro Ebene und wenn Du x = 1 eingibst, kommt nicht das Ergebnis, das Du Dir wünschst.
Re: Satz des Pytagoras
Verfasst: Samstag 4. Juni 2016, 08:01
von 010010
Code: Alles auswählen
## Der Satz des Pytagoras
import math
print("Bitte geben Sie für den gesuchten Wert 0 ein!")
a = eval(input("a="))
b = eval(input("b="))
c = eval(input("c="))
if c==0:
c = math.sqrt((a*a)+(b*b))
print(c)
if a==0:
a = math.sqrt((c*c)-(b*b))
print(a)
if b==0:
b = math.sqrt((c*c)-(a*a))
print(b)
Der Beitrag ist schon ein 3/4 Jahr alt, aber er hat mir so gut gefallen das ich meinen Code mal ebent eingegeben hab. Dort kann man alle drei Kanten des Dreiecks berechnen indem man für den gesuchten Wert einfach nur Null eingibt. Bei Python 3.5.1 ist es im Tewrminal leider so das man immer etwas eingeben muss.
Re: Satz des Pytagoras
Verfasst: Samstag 4. Juni 2016, 08:30
von Sirius3
@010010: »eval« sollte man nicht benutzen. Wenn Du Zahleneingaben erlaubst, kannst Du den eingegebenen String per »int« bzw. hier »float« in eine Zahl umwandeln. Das Prüfen auf einen leeren String ist auch ganz einfach. Der Fall a=0 oder b=0 läßt sich leicht zusammenfassen. Per Konvention werden immer 4 Leerzeichen pro Ebene benutzt, nicht 3.
Code: Alles auswählen
print("Bitte geben Sie für den gesuchten nichts ein!")
a = input("a=")
b = input("b=")
c = input("c=")
if not c:
a = float(a)
b = float(b)
result = (a**2 + b**2) ** 0.5
elif not a or not b:
a = float(a or b)
c = float(c)
result = (c**2 - a**2) ** 0.5
print("Die fehlende Seite ist {0:.3f}".format(result))
Jetzt fehlt noch etwas Fehlerbehandlung. Was passiert wenn keine Zahl eingegeben wird? Was passiert wenn c zu kurz ist? Dazu schreiben wir eine Funktion, die die Eingabe verarbeitet und prüft. Und da man am besten jeden Code in eine Funktion schreibt, auch gleich noch eine main-Funktion:
Code: Alles auswählen
def input_float_or_none(prompt):
while True:
result = input(prompt)
if not result:
return None
try:
return float(result)
except ValueError:
print("Bitte eine Zahl oder nichts eingeben!")
def main():
print("Bitte geben Sie für den gesuchten nichts ein!")
a = input_float_or_none("a=")
b = input_float_or_none("b=")
c = input_float_or_none("c=")
if bool(a) + bool(b) + bool(c) < 2:
print("Mehr als eine Seite ist leer!")
elif not c:
result = (a**2 + b**2) ** 0.5
elif not a or not b:
try:
result = (c**2 - (a or b)**2) ** 0.5
except ValueError:
print("Seite c zu kurz!")
return
else:
print("Mindestens eine Seite sollte leer bleiben!")
print("Die fehlende Seite ist {0:.3f}".format(result))
if __name__ == '__main__':
main()
Re: Satz des Pytagoras
Verfasst: Samstag 4. Juni 2016, 08:59
von BlackJack
Man könnte vielleicht noch prüfen das eingegebene Zahlen positiv sind. Benutzer kommen manchmal auf komische Ideen.
