Bruttopreis berechnen

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
Klapperschlange96
User
Beiträge: 2
Registriert: Donnerstag 10. Februar 2022, 17:53

Hallo ihr Lieben,

Anfängerproblem:
nettoPreis=random.randint(1, 100)
Wie berechne ich daraus den Bruttopreis?
bruttoPreis=berechneBrutto(nettoPreis)
def berechneBrutto(netto):
return netto + (netto * (19 / 100))
funktioniert leider nicht.

Vielen Dank im Voraus!
Benutzeravatar
noisefloor
User
Beiträge: 4196
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

bitte den Code in einen Codeblock setzen, nicht als Zitat einfügen. Den Codeblock bekommst du, indem du im vollständigen Editor auf die </> Schaltfläche klickst. Dann ist der Code besser lesbar und die Einrückungen bleiben erhalten.

Was heißt "funktioniert nicht" - das ist keine brauchbare Fehlermeldung. Kommt ein Ergebnis raus, das aber falsch ist? Bekommst du eine Fehlermeldung? Wenn ja, bitte komplett im Codeblock posten. Ist dein Rechner beim Ausführen des Codes explodiert?

Gruß, noisfloor
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Was bedeutet funktioniert nicht? Gibt es eine Fehlermeldung? Wenn ja welche?
Variablennamen und Funktionen schreibt man übrigens komplett klein, also nettopreis berechne_brutto.
Klapperschlange96
User
Beiträge: 2
Registriert: Donnerstag 10. Februar 2022, 17:53

Danke für eure Rückmeldungungen! Ich werde versuchen eure Hinweise umzusetzen.

Im Controller ist mein Produkt folgendermasen hinterlegt:

Code: Alles auswählen

    Produkte.append(Produkt(ID=ID, Name=Name, Beschreibung=Beschreibung, nettoPreis=nettoPreis, bruttoPreis=bruttoPreis,
                            Kategorie=kategorie, Lagerbestand=Lagerbestand))
Und in der View:

Code: Alles auswählen

    meinProdukt = Produkt(ID=random.randint(1, 999999), Name="RandomName{}".format(i),
                          Beschreibung="Ich bin eine randomBeschreibung {}".format(i),
                          nettoPreis=random.randint(1, 100), bruttoPreis=random.randint(100, 120),
                          Lagerbestand=random.randint(1, 1000), Kategorie="Kategorie {}".format(i))
    Produkte.append(meinProdukt)
Das der BruttoPreis sich auch zufällig errechnet ist ja Quatsch. Habe jetzt probiert es mit der oben genannten Funktion zu ändern, aber das hat leider nicht geklappt. :roll:
Habt ihr einen Ansatz für mich?
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Und schon wieder zeigst Du Code ohne jeglichen Kontext. Was willst Du erreichen? Was klappt denn nicht?
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Brutto- und Nettopreis unabhängig voneinander zufällig bestimmen scheint mir keine so sinnvolle Idee zu sein. 🤔
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Benutzeravatar
sparrow
User
Beiträge: 4540
Registriert: Freitag 17. April 2009, 10:28

@Klapperschlange96: Was ist denn "View" und "Controller"? Hier wurde ja bereits geschrieben, dass die Schreibweise deiner Namen gegen die üblichen Python Konventionen verstößt. Das Macht es sehr schwer zu erkennen, mit was für Objekten du da überhaupt arbeitest.

Falls Produkt eine Klasse ist - das kann man bei deiner Schreibweise nicht unterscheiden -, ist es falsch bei denen Netto- und Bruttopreis als Attribute zu speichern. Deshalb landest du auch bei deinem Problem.
Speicher stattdessen den Nettopreis und den MwSt-Satz. Dann braucht Produkt noch ein property, das aus den beiden Feldern den Bruttopreis bei Bedarf errechnet und zurück gibt.

Noch einmal zur Namensgebung:
In Python werden alle Namen klein_mit_unterstrich geschrieben.
Ausgenommen sind die Namen von Klassen (PascalCase), aber nicht die Namen der Instanzen, und die Namen von Konstanten (KOMPLETT_GROSS).
Warum? Weil die Konvention dabeo hilft zu erkennen, um was es sich bei etwas handelt.
Benutzeravatar
__blackjack__
User
Beiträge: 14078
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@sparrow: Ich würde das ja nicht zwingend als falsch bezeichnen, denn das ist ja gerade das nette an Properties: Man kann auch Netto und Brutto speichern und dann den Mehrwertsteuersatz als Property definieren.

@Klapperschlange96: Noch was zur Namensgebung: `mein` ist genau wie `my` ein in 99,999% der Fälle nichtssagender, überflüssiger Namenszusatz den man sich sparen sollte. Wenn es nicht auch `unserProdukt` oder `derenProdukt` oder ähnliches gibt, gegen den das `meinProdukt` sich abgrenzen würde, heisst das einfach nur `produkt` ohne irgendwelche Zusätze.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten