Finde den Fehler nicht >.<

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
astrionn
User
Beiträge: 43
Registriert: Freitag 28. Februar 2014, 19:20

SOOO ich mal wieder ^^ diesmal schon ein wenig tiefer in die Materie eingestiegen habe einen eigenen Taschenrechner zusammengebastelt der sogar funktioniert. Danach dachte ich ich mach mal was komplizierteres und wollte diese Pythagoras-Geschichte als Programm verfassen bin damit auch recht weit gekommen doch scheint sich ein Fehler in der if-schleife zu befinden da sich wenn man inf ==2 setzt das ganze wieder von vorne anfängt auch wenn ich nur 1mal rechnen möchte ... kann mir jemand helfen :)?

Code: Alles auswählen

import math
print("Wie viele Rechnungen möchten sie durchführen ?")
e = int(input())
count = 0
while count < e :
    count = count + 1
    print("Bitte geben sie an welche Informationen sie das rechtwinklige Dreieck betreffend haben!")
    print("1=Beide Katheten")
    print("2= eine Kathete und die Hypotenuse")
    inf = int(input())
    if inf == 1 :
        print("Bitte geben sie die Länge der Kathete a an!")
        a = int(input())
        print("Bitte geben sie die Länge der Kathete b an!")
        b = int(input())

        aa = (a*a)
        bb = (b*b)

        ab = ( aa+bb )

        c = math.sqrt(ab)
        print ("Die Länge der Hypotenuse beträgt :" ,c )
    elif inf == 2 :
        print("Bitte geben sie die Länge der Kathete an!")
        d = int(input())
        print ("Bitte geben sie die Länge der Hypotenuse an")
        e =int(input())

        dd = (d*d)
        ee = (e*e)

        de = (ee - dd)

        f = math.sqrt(de)
        print ("Die Länge der fehlenden Kathete beträgt :" , f)



print ("Bitte betätigen sie die Enter-Taste um die Applikation zu schließen!")
end = input()
Anfänger in den Kinderschuhen aber bestrebt besser zu werden ():O
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Die fällt schon auf, dass du ``e`` doppelt benutzt, zweimal für unterschiedliche Sachen?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
anogayales
User
Beiträge: 456
Registriert: Mittwoch 15. April 2009, 14:11

astrionn hat geschrieben:... bin damit auch recht weit gekommen doch scheint sich ein Fehler in der if-schleife ...
:shock:

Sorry, dass ich diese Person sein muss. http://www.if-schleife.de/ Den Fehler haben hier schon etliche Leute gemacht ;)

Grüße,
anogayales
astrionn
User
Beiträge: 43
Registriert: Freitag 28. Februar 2014, 19:20

Danke ich werde es mit einer anderen var versuchen erstmal und danke für den konstruktiven Hinweis in Punkto if-Schleife das hat mir sehr viel weiter geholfen -.-

~~~~~~~~~~~~~~~~~~~~~~~
jep das mit der doppelten variable wars vielen dank
Anfänger in den Kinderschuhen aber bestrebt besser zu werden ():O
BlackJack

@astrionn: Eine gute Gelegenheit über bessere Namen nachzudenken und nicht so nichtssagende, einbuchstabige Namen zu verwenden. :-)
astrionn
User
Beiträge: 43
Registriert: Freitag 28. Februar 2014, 19:20

Ja würde ich in komplexeren programmen auch von selbst machen ich hätte wirklich nicht gedacht das ein so kleines Programm schon Probleme hervorruft ^^ kann mir evtl jemand sagen was z.b. 8**4 bedeutet? Ich kann eigentlich ganz gut mathe aber mir ist diese Schreibweise unbekannt ich habe mit dem Gedanken gespielt das evtl dir vierte Potenz von 8 sein könnte bin mir aber nicht sicher
Anfänger in den Kinderschuhen aber bestrebt besser zu werden ():O
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@astrionn: Wenn Du Dir nicht sicher bist, dann probier es doch einfach aus und lass Dir verschiedene Ergebnisse ausgeben.
BlackJack

@astrionn: Der Gedanke war richtig, das ist 8⁴. Bei solchen Fragen hilft die Python-Dokumentation. Oben rechts ist üblicherweise ein Link zum Index. Da dann `Symbols` anklicken und beim Eintrag `**` auf `operator` und man kommt zu einer Tabelle mit den Operatoren.
astrionn
User
Beiträge: 43
Registriert: Freitag 28. Februar 2014, 19:20

vielen dank
Anfänger in den Kinderschuhen aber bestrebt besser zu werden ():O
jqz4n
User
Beiträge: 21
Registriert: Sonntag 2. Februar 2014, 19:26

Außerdem kann man die Berechnugn der Hypotenuse auch von math.hypot() erledigen lassen.
BlackJack

@astrionn: Für die äussere Schleife würde sich ``for`` anbieten, denn Du weisst ja vor Eintritt in die Schleife wie oft die Schleife durchlaufen werden soll.
astrionn
User
Beiträge: 43
Registriert: Freitag 28. Februar 2014, 19:20

danke @blackjack das ist sehr gut ! wusste nicht wie ich das sonst machen soll
Anfänger in den Kinderschuhen aber bestrebt besser zu werden ():O
bb1898
User
Beiträge: 200
Registriert: Mittwoch 12. Juli 2006, 14:28

BlackJack hat geschrieben:@astrionn: Für die äussere Schleife würde sich ``for`` anbieten, denn Du weisst ja vor Eintritt in die Schleife wie oft die Schleife durchlaufen werden soll.
Und dann wäre sogar die doppelte Verwendung von "e" unschädlich (wenn auch nicht gerade nützlich), weil das "Abgrenz-e" nur vor der Schleife gebraucht wird. Die Einzelbuchstaben sind halt innerhalb der Mathematik so flächendeckend üblich, natürlich will man die auch in einem mathematischen Programm verwenden.
astrionn
User
Beiträge: 43
Registriert: Freitag 28. Februar 2014, 19:20

also ich bin jetzt noch nicht so weit was schleifen angeht klappt das so ?

Code: Alles auswählen

for ( count < g :)
    count = count + 1
    print("Bitte geben sie an welche Informationen sie das rechtwinklige Dreieck betreffend haben!")
    print("1=Beide Katheten")
    print("2= eine Kathete und die Hypotenuse")
    inf = int(input())
    if inf == 1 :
das jetzt als Auszug von meinem davorigen Quellcode
Zuletzt geändert von astrionn am Montag 3. März 2014, 18:10, insgesamt 1-mal geändert.
Anfänger in den Kinderschuhen aber bestrebt besser zu werden ():O
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Nein, die for-Schleife hat nicht mal annähernd korrekte Syntax.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
astrionn
User
Beiträge: 43
Registriert: Freitag 28. Februar 2014, 19:20

okay dann mache ich das später wenn ich das erst irgendwo gelesen habe ^^
Anfänger in den Kinderschuhen aber bestrebt besser zu werden ():O
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

astrionn hat geschrieben:okay dann mache ich das später wenn ich das erst irgendwo gelesen habe ^^
Du brauchst gar nicht "irgendwo" lesen. Es hindert dich niemand daran, das Tutorial durchzugehen. Schleifen mit for kommen darin sogar recht früh vor.
astrionn
User
Beiträge: 43
Registriert: Freitag 28. Februar 2014, 19:20

ich meinte damit in dem Umfang indem ich mich damit befasse kam es nicht vor bisher und ich werde wohl schon irgendwann etwas davon hören im Rahmen meiner Selbstbildung und dann schau ich malwieder da nach , weil ich es jetzt halt nicht verstehe und es zu weit vorgegriffen scheint.
Anfänger in den Kinderschuhen aber bestrebt besser zu werden ():O
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

for-Schleifen sind nicht zu weit vorgegriffen. Das sind absolute Grundlagen und die werden spätestens in Kapitel zwei behandelt. Ok, vielleicht auch in Kapitel 3, nach der Einleitung und if-Statements.
Das Leben ist wie ein Tennisball.
astrionn
User
Beiträge: 43
Registriert: Freitag 28. Februar 2014, 19:20

okay ich beuge mich ... ich wollte mal fragen ob jemand etwas ähnliches wie codeacadamy kennt was aber python 3.x benutzt nicht 2.x wie bei codeacadamy ? sollte schon kostenlos sein

[ Soll ich dafür evtl ein neuen Thread öffnen?]
Anfänger in den Kinderschuhen aber bestrebt besser zu werden ():O
Antworten