Python-Problem

12Antworten
  1. #1
    Avatar von electrofreak
    electrofreak ist offline
    Themen Starter

    Title
    Benutzer
    seit
    31.01.2013
    Beiträge
    391

    Standard Python-Problem

    Hallo. Ich wollte einen Taschenrechner mit Python erstellen (benutze Python3). So, jetzt gibt es ein kleines Problem: Wenn ich beispielsweise 8+7 rechne, kommt 87 heraus. Kann mir jemand helfen?

    Die genauen Befehle hier:
    Code:
    zahl1 = input ("Gib mir bitte den ersten Summand: ")
    zahl2 = input ("Gib mir bitte den zweiten Summand: ")
    zahl3 = zahl1 + zahl2
    print (zahl1,"+",zahl2,"=",zahl3)
    Programmablauf:
    Gib mir bitte den ersten Summand: 8
    Gib mir bitte den zweiten Summand: 7
    8 + 7 = 87

  2. #2
    Avatar von Spyx
    Spyx ist offline

    Title
    Moderator
    seit
    21.08.2006
    Beiträge
    9.155

    Standard

    Er denkt, dass du Text (sogenannte Zeichenketten bzw. Strings) eingibst. Du musst die Eingaben also vorher in Zahlen umwandeln.
    Code:
    zahl3 = int(zahl1) + int(zahl2)

  3. #3
    Avatar von electrofreak
    electrofreak ist offline
    Themen Starter

    Title
    Benutzer
    seit
    31.01.2013
    Beiträge
    391

    Standard @Spyx

    Hi Spyx!

    Klappt im Moment auch nicht. Ich schreibe das beim Typen mal genau ab, da ich jetzt seine Version gedownloaded habe. Falls das nicht klappt, melde ich mich in diesem Thema weiterhin, es sei denn es hat nichts damit zu tun.

  4. #4
    Avatar von electrofreak
    electrofreak ist offline
    Themen Starter

    Title
    Benutzer
    seit
    31.01.2013
    Beiträge
    391

    Standard Klappt nach wie vor nicht

    So, habe wieder Python 3.3. Jetzt kommt das folgende Problem (immer noch der Taschenrechner):

    Der Quellcode:
    Code:
    zahl1=int("Summand: ")
    zahl2=int("Summand: ")
    zahl3 = zahl1+zahl2
    print (zahl1,"+",zahl2,"=",zahl3)
    Der Fehler:
    Code:
    Traceback (most recent call last):
      File "C:\Users\Max (E)\Desktop\1901\addition\addition editor.py", line 1, in <module>
        zahl1=int("Summand: ")
    ValueError: invalid literal for int() with base 10: 'Summand: '

  5. #5
    Avatar von Spyx
    Spyx ist offline

    Title
    Moderator
    seit
    21.08.2006
    Beiträge
    9.155

    Standard

    Jetzt versuchst du gerade die Zeichenkette Summand: in eine Zahl umzuwandeln. Und das schlägt natürlich fehl, da sie keine gültige Zahl ist. Du hast den Input-Befehl vergessen.

  6. #6
    Avatar von electrofreak
    electrofreak ist offline
    Themen Starter

    Title
    Benutzer
    seit
    31.01.2013
    Beiträge
    391

    Standard @Spyx

    Also:

    Zahl1 int_input ("Gib mir den ersten Summend: ")
    Zahl2 int _input ("Gib mir den zweiten Summend: ")
    Zahl3= Zahl1+Zahl2
    print (Zahl1,"+",Zahl2,"=",Zahl3

    Für kleine Rechtschreibfehler, sorry bin am Handy. Geht grade nur um den Code.

  7. #7
    Avatar von Spyx
    Spyx ist offline

    Title
    Moderator
    seit
    21.08.2006
    Beiträge
    9.155

    Standard

    Code:
    erster_summand = int(input("Gib den ersten Summand ein: "))
    zweiter_summand = int(input("Gib den zweiten Summand ein: "))
    summe = erster_summand + zweiter_summand
    print(erster_summand, "+", zweiter_summand, "=", summe)

  8. #8
    Avatar von electrofreak
    electrofreak ist offline
    Themen Starter

    Title
    Benutzer
    seit
    31.01.2013
    Beiträge
    391

    Standard Meine Güte

    Hi Spyx

    dein Code klappt perfekt. Jetzt sag mir, was bei meinem falsch ist. Immernoch klappt das nicht...

    Code:
    eins_summand = int (input("Gib mir den ersten Summand: ")
    zwei_summand = int (input("Gib mir den zweiten Summand: ")
    summe = eins_summand + zwei_summand
    print (eins_summand,"+",zwei_summand,"=",summe)
    Fehler soll sein:
    zwei_summand

  9. #9
    Avatar von Spyx
    Spyx ist offline

    Title
    Moderator
    seit
    21.08.2006
    Beiträge
    9.155

    Standard

    Dir fehlen immer die schließenden Klammern am Ende der Zeile. Du musst immer genau so viele öffnende wie schließende Klammern haben. Das Konzept dahinter ist wie folgt:
    Code:
    funktionsnamen(parameter1, parameter2, usw)
    Zwischen der öffnenden und der schließenden Klammer stehen die verschiedenen Parameter, die du der Funktion übergibst. Wenn du die Klammer nicht schließt, dann nimmt Python an, dass das was danach kommt, der nächste Parameter ist. Und das ist natürlich falsch.

  10. #10
    Avatar von electrofreak
    electrofreak ist offline
    Themen Starter

    Title
    Benutzer
    seit
    31.01.2013
    Beiträge
    391

    Standard @Spyx

    Hi!!

    Oh und ich wollte schon aufgeben.

    Danke jetzt werden die anderen Grundrechenarten wohl nicht schwer sein
    electrofreak

  11. #11
    Avatar von electrofreak
    electrofreak ist offline
    Themen Starter

    Title
    Benutzer
    seit
    31.01.2013
    Beiträge
    391

    Standard Warum funktioniert mein Menü nicht? Python

    Hallo eForum

    Mein Taschenrechner funktioniert nach wie vor nicht.

    Code:
    print ("1. Addition")
    print ("2. Subtraktion")
    print ("3. Multiplikation")
    print ("4. Division")
    auswahl = input("Deine Auswahl: ")
    while (auswahl == 1):
    while (auswahl != 4) & (auswahl != 3) & (auswahl != 2) & (auswahl != 1):
        auswahl = input("Du hast ein ungültiges Objekt eingegeben. Versuche es noch einmal: ")
    So:
    wenn ich 1 bei auswahl eingebe, kommt allerdings nicht die Addition, sondern der ganz unterste. Warum und was muss ich ändern?

    Danke
    electrofreak

  12. #12
    Avatar von Fabi
    Fabi ist offline

    Title
    Moderator
    seit
    20.10.2006
    Ort
    Hessen
    Beiträge
    8.272

    Standard

    Auch wenn du eine Zahl eingibst handelt es sich genau genommen um einen String (Zeichenkette). Du müsstest daher abfragen:

    Code:
    while (auswahl == "1"):
    Generell würde ich das aber eher mit if-Bedingungen oder eventuell auch mit einer switch-Anweisung lösen.

  13. #13
    Avatar von MacBemme
    MacBemme ist offline

    Title
    Moderator
    seit
    30.06.2009
    Ort
    Dresden
    Beiträge
    3.349

    Standard

    Nich 10 Threads wegen ein und demselben Thema...
    habs zusammengeführt
    LG

Ähnliche Themen

  1. Python 3.3.0 (Compiler)

    Von electrofreak im Forum Anwendersoftware
    Antworten: 29
    Letzter Beitrag: 10.04.2013, 21:02
  2. Python Goto?

    Von Krizzie98 im Forum Anwendersoftware
    Antworten: 2
    Letzter Beitrag: 10.04.2013, 16:11
  3. Python: Eingabe verwenden

    Von Krizzie98 im Forum Anwendersoftware
    Antworten: 3
    Letzter Beitrag: 26.02.2012, 14:47
  4. Antworten: 14
    Letzter Beitrag: 06.04.2010, 16:42
  5. Antworten: 1
    Letzter Beitrag: 04.02.2010, 18:59
Diese Seite benutzt Cookies Durch die weitere Nutzung der Seite stimmen Sie der Verwendung von Cookies zu. Infos zum Datenschutz