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.
ich habe ein Programm geschrieben, was EUR in USD und umgekehrt berechnen soll.
Nun stimmt m.E. aber die Umrechnung nicht. Was genau habe ich bei der Berechnung übersehen oder falsch gemacht?
Er rechnet ja auch USD und EUR zusammen und gibt dann auch ein Betrag aus. Aber ich mein halt das ich bei der Berechnung was falsch gemacht habe.
Bitte um Hilfe.
Um die Suche nach dem Fehler zu beschleunigen, solltest du uns mal ein Beispiel zeigen, bei dem es schief geht. Ich seh hier ein paar potenzielle Fehlerquellen. Am besten zeigst du mal so ein Beispiel her.
class Geld(object):
__wechselkurs={'USD':0.85,
'EUR':1.00}
def __init__(self, waehrung, betrag):
self.waehrung=waehrung
self.betrag= round(betrag,2)
def getEuro(self):
if self.waehrung == self.__wechselkurs['EUR']:
[...]
Dort fragst du ab, ob self.waehrung gleich 1.0 ist und das ist sicher nicht das was du möchtest.
Noch eine Anmerkung: Die doppelten führenden Unterstriche sind typischerweise nicht erforderlich. Um etwas als privat zu kennzeichnen reicht ein Unterstrich.
Ergänzend zu /me: Diese ständigen ``if``-Unterscheidungen sind auch sehr schlechter Stil. So etwas lässt sich nur mühselig und fehlerträchtig erweitern.
class Geld(object):
__wechselkurs={'USD':0.85,
'EUR':1.00}
def getEuro(self):
if self.waehrung == self.__wechselkurs['EUR']:
return self.betrag*self.__wechselkurs[self.waehrung]
An dieser Stelle verstehe ich folgendes nicht:
self.waehrung ist logischerweise in der if Abfrage eine Zahl.
Dann müsste es doch in der darauf folgenden Zeile einfach mit dem self.__wechselkurs['EUR'] mulipliziert werden und nicht mit einem Verweis den ich nicht interpretieren kann. Da müsste doch so etwas ausgegeben werden:
@/me: also self.waehrung wird doch einmal in der if Abfrage mit einer Zahl verglichen ...
aber ich habe auch noch nicht verstanden worauf pysbf26 hinauswill.