Hilfe! 5 / 2 = 2 Wieso??

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.
Py
User
Beiträge: 2
Registriert: Freitag 15. September 2006, 13:54

Hilfe! 5 / 2 = 2 Wieso??

Beitragvon Py » Montag 18. September 2006, 09:23

Hallo,

ich bin ganz neu hier und bin gerade dabei mir Python beizubringen.
Ich möchte ein kleines Programm schreiben, bei dem ich 2 Zahlen eingeben kann und diese dann addiert, subtrahiert, multiplieziert und dividiert werden.

Also zum Beispiel so:

Bitte erste Zahl eingeben: _
Bitte zweite Zahle eingeben: _

Wenn ich zum Beispiel 5 und 2 eingebe berechnet das Programm:
5 + 2 = 7
5 - 2 = 3
5 * 2 = 10
5 / 2 = 2

die Zahlen werden als Integer eingegeben um damit zu rechnen.

Wie bekomme ich aus den Integer Zahlen "float" oder "double" hin? Das muss doch funktionieren, dass 5 / 2 = 2.5 rauskommt.

Danke schonmal im Voraus für eure Hilfe!

Grüße Py
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Montag 18. September 2006, 09:29

Code: Alles auswählen

>>> 5.0/2
2.5
>>> 5/2.0
2.5
>>> 5/2
2
>>>
Nirven
User
Beiträge: 130
Registriert: Mittwoch 10. Mai 2006, 08:18
Wohnort: Bremerhaven

Beitragvon Nirven » Montag 18. September 2006, 09:32

Mit

Code: Alles auswählen

float(x)

wandelst du x in ein Float um. Damit funktioniert die Rechnung

Code: Alles auswählen

>>> x = 5
>>> y = 2
>>> x/y
2
>>> float(x)/y
2.5
>>>
Py
User
Beiträge: 2
Registriert: Freitag 15. September 2006, 13:54

Beitragvon Py » Montag 18. September 2006, 10:31

Super, vielen Dank!!
Die Zahl wird vom Benutzer nun als Float eingegeben ohne dass dieser etwas davon merkt.

Code: Alles auswählen

a = float (raw_input("Bitte Zahl 1 eingeben: "))
b = float (raw_input("Bitte Zahl 2 eingeben: "))


Es hat geklappt !!

Danke! :D
BlackJack

Beitragvon BlackJack » Montag 18. September 2006, 19:49

Ansonsten kann man an den Anfang des Moduls auch die folgende Zeile eingeben:

Code: Alles auswählen

from __future__ import division


Dann ist das Ergebnis von der normalen Division immer eine Fliesskommazahl. Wenn man ganzzahlige Division haben möchte muss man `//` benutzen.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Dienstag 19. September 2006, 09:56

btw. wir sollten das Thema mal dringent in die FAQ schreiben!

Wobei, da haben wir schon was:
[wiki]Neue Features[/wiki]

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Dienstag 19. September 2006, 20:59

jens hat geschrieben:Wobei, da haben wir schon was:
[wiki]Neue Features[/wiki]

Ja, gut dass du mich daran erinnerst, da habe ich einen Absatz zu den neuen Konditionalen Ausdrücken geschrieben, wäre gut wenn das mal jemand testet, der Python 2.5 hat. Korrekturleser sind natürlich auch erwünscht.

Und zur Feier des "Matrixes vs. Matrizen, Stiel vs Stil, Standart vs Standard, Groß- vs. Kleinschreibung"-Tages: "Dringend" schreibt man mit "D". SCNR :wink:
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder