Seite 1 von 1

12 + 3 -1 /2 * 7 = 15?

Verfasst: Mittwoch 24. Dezember 2008, 10:36
von Dr.Miles
Hallo,
habe gerade ein bisschen mit dem Interpreter rumgespielt und 12 + 3 -1 /2 * 7 eingegeben. Python gibt mir dort 15 aus, ein Freund ich und der Taschenrechner sagen 11,5. Mir faellt auch gerade keine Regel ein, die Python zu diesem Ergebnis bringt...
Wir rechnen so:
(Punkt vor Strich:
1/2 (=0,5) *7 = 3,5
12 + 3 (= 15) - 3,5
11,5

Is wahrscheinlich was ganz einfaches, aber wir haben keine Ahnung....

Code: Alles auswählen

>>> 12 + 3 - 1 / 2 * 7
15
>>>

Vielen Dank für die Antwort im voraus!

Verfasst: Mittwoch 24. Dezember 2008, 10:38
von Birne94
nja.

Code: Alles auswählen

12 + 3 - 1 / 2. * 7
Wenn du nur ints dividierst, kommt am ende auch nur ein Int raus^^
Also musste aus der 2 ein float werden (2.0)


@unten: imo richtig

Verfasst: Mittwoch 24. Dezember 2008, 10:46
von Dr.Miles
Hallo, danke fuer deine Antwort, hatte schon:

Code: Alles auswählen

>>> 12.0 + 3 - 1 / 2 * 7
15.0
>>>
probiert, dachte er wandelt da automatisch alle um, aber da rechnet er zuerst die 1/2 und da gabs ja noch keine Konvertierung die wird ja erst vorgenommen, wenn mit der 12.0 gerechnet wird, richtig?

Verfasst: Mittwoch 24. Dezember 2008, 11:34
von DasIch
Eine der Zahlen am Divisionsoperator muss natürlich ein Float sein wie Birne94 schon gezeigt hat...

Verfasst: Mittwoch 24. Dezember 2008, 12:29
von Darii
Wobei man hierbei noch anmerken sollte, dass sich dieses Verhalten bei Python 3 geändert hat. Dort ergibt 1/2 dann auch 0.5. Das voherige Verhalten erreichst du dann mit 1//2. Wenn du das schon vorher(ab 2.5 glaube ich) braucht, bietet sich ein

Code: Alles auswählen

from __future__ import division
an.

btw: Kannst noch froh sein, dass da bei Python nicht 49 rauskommt ;)