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

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.
Antworten
Benutzeravatar
Dr.Miles
User
Beiträge: 38
Registriert: Montag 15. Dezember 2008, 08:33
Wohnort: Mannheim
Kontaktdaten:

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!
www.i2p2.de <--- sehr interressantes Anonymisierungsprojekt.
www.schaeuble-wegtreten.de <--- Petition gegen Schäuble
Birne94
User
Beiträge: 90
Registriert: Freitag 28. November 2008, 15:18
Kontaktdaten:

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
Zuletzt geändert von Birne94 am Mittwoch 24. Dezember 2008, 10:47, insgesamt 1-mal geändert.
Benutzeravatar
Dr.Miles
User
Beiträge: 38
Registriert: Montag 15. Dezember 2008, 08:33
Wohnort: Mannheim
Kontaktdaten:

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?
www.i2p2.de <--- sehr interressantes Anonymisierungsprojekt.
www.schaeuble-wegtreten.de <--- Petition gegen Schäuble
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Eine der Zahlen am Divisionsoperator muss natürlich ein Float sein wie Birne94 schon gezeigt hat...
Darii
User
Beiträge: 1177
Registriert: Donnerstag 29. November 2007, 17:02

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 ;)
Antworten