Seite 1 von 1

Summe?

Verfasst: Samstag 10. November 2012, 22:51
von Wettkönig
Hi, ich hab folgendes Problem. Ich soll ein Programm schreiben, dass mich auffordert nacheinander zwei Zahlen anzugeben und dann die Summe berechnet und anzeigt.Bloß es klappt einfach nicht.Ich zeig euch jetzt mal mein Programm hoffe ihr könnt mir helfen :K

Code: Alles auswählen

zahl1 = input("Gib zahl1 an:")
zahl2 = input("Gib zahl2 an:")
summe= zahl1+zahl2

Re: Summe?

Verfasst: Samstag 10. November 2012, 23:05
von mutetella
Leider sind die Infos sehr dürftig, man kann also nur raten, was nicht klappt.
Nun, entweder Du "siehst" das Ergebnis nicht auf dem Bildschirm oder Du hättest jetzt einfach mal ein anderes Ergebnis erwartet.

mutetella

Re: Summe?

Verfasst: Samstag 10. November 2012, 23:19
von nomnom
Hallo!

Ich nehme einfach mal an, dass du Python 3 benutzt. :)

Dann muss man erst einmal das Ergebnis von "input()" zu einem "int" konvertieren, also einer ganzen Zahl. So wie du das machst, ist das einfach nur die zweite Zahl an die erste angehängt, weil "input()" immer einen String zurückliefert, und du damit Python anweist, die Strings aneinanderzuketten.

Wenn du Python 2 benutzt, dann solltest du vermutlich "raw_input()" benutzen und die Ergebnisse zu einem "int" konvertieren und ganz wichtig: das Ergebnis ausgeben.

Code: Alles auswählen

a = int("42") # Beispiel um zu zeigen, wie man Strings in ints umwandelt
print(a) # bei Python 2 ohne Klammern

Re: Summe?

Verfasst: Sonntag 11. November 2012, 01:10
von StefanLawl
nomnom hat geschrieben: Dann muss man erst einmal das Ergebnis von "input()" zu einem "int" konvertieren, also einer ganzen Zahl. So wie du das machst, ist das einfach nur die zweite Zahl an die erste angehängt, weil "input()" immer einen String zurückliefert, und du damit Python anweist, die Strings aneinanderzuketten.
Stimmt nicht ganz, raw_input() gibt immer einen String zurück, input() allerdings nicht.

Code: Alles auswählen

>>> a = input('1. Zahl: ')
1. Zahl: 5
>>> print a + 9
14
>>> 
>>> 
>>> a = raw_input('1. Zahl: ')
1. Zahl: 5
>>> print a + 9
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot concatenate 'str' and 'int' objects
>>> 
Das Problem bei input() ist (wenn man es als Problem sehen will), dass man auch Funktionen damit aufrufen kann.

Code: Alles auswählen

>>> def multiply(a,b):
...   print a*b
... 
>>> command = input('Eingabe: ')
Eingabe: multiply(5,6)
30
>>> command = raw_input('Eingabe: ')
Eingabe: multiply(5,6)
>>> 
>>> print command
multiply(5,6)

Re: Summe?

Verfasst: Sonntag 11. November 2012, 01:14
von EyDu
@StefanLawl: Hast du den Beitrag von nomnom gelesen?
nomnom hat geschrieben:Ich nehme einfach mal an, dass du Python 3 benutzt. :)
nomnom hat geschrieben:Wenn du Python 2 benutzt, dann solltest du vermutlich "raw_input()" benutzen und die Ergebnisse zu einem "int" konvertieren

Re: Summe?

Verfasst: Sonntag 11. November 2012, 01:17
von StefanLawl
EyDu hat geschrieben:@StefanLawl: Hast du den Beitrag von nomnom gelesen?
Ja :)

Re: Summe?

Verfasst: Sonntag 11. November 2012, 02:43
von /me
StefanLawl hat geschrieben:
EyDu hat geschrieben:@StefanLawl: Hast du den Beitrag von nomnom gelesen?
Ja :)
Aber nicht verstanden?

Re: Summe?

Verfasst: Sonntag 11. November 2012, 19:18
von Wettkönig
nomnom hat geschrieben:Hallo!

Ich nehme einfach mal an, dass du Python 3 benutzt. :)

Dann muss man erst einmal das Ergebnis von "input()" zu einem "int" konvertieren, also einer ganzen Zahl. So wie du das machst, ist das einfach nur die zweite Zahl an die erste angehängt, weil "input()" immer einen String zurückliefert, und du damit Python anweist, die Strings aneinanderzuketten.

Wenn du Python 2 benutzt, dann solltest du vermutlich "raw_input()" benutzen und die Ergebnisse zu einem "int" konvertieren und ganz wichtig: das Ergebnis ausgeben.

Code: Alles auswählen

a = int("42") # Beispiel um zu zeigen, wie man Strings in ints umwandelt
print(a) # bei Python 2 ohne Klammern
Nun, das hilft aber auch nicht weiter und ja ich benutze P3.

Re: Summe?

Verfasst: Sonntag 11. November 2012, 19:32
von mutetella
@Wettkönig
Nun ja, Dein Problem scheint zu sein, dass Du erstens kein Ergebnis siehst und zweitens ein anderes erwarten würdest, wenn Du es denn sehen könntest... :D

Code: Alles auswählen

>>> zahl1 = input('1. Zahl: ') #gib z. B. 34 ein
>>> zahl2 = input('2. Zahl: ') #und hier z. B. 12
>>> ergebnis = zahl1 + zahl2
>>> print(ergebnis)
3412
>>> type(ergebnis)
<class 'str'>
>>> zahl1 = int(input('1. Zahl: '))
>>> zahl2 = int(input('2. Zahl: '))
>>> ergebnis = zahl1 + zahl2
>>> print(ergebnis)
46
>>> type(ergebnis)
<class 'int'>
Jetzt klarer?

mutetella