3 svar
59 visningar
Cyron 2 – Fd. Medlem
Postad: 26 nov 2021 22:00 Redigerad: 26 nov 2021 22:03

Subtrahera en variabel med alla values i en dictionary

Hej!

Jag har försökt länge nu med att subtrahera min variabel "start_budget" med mina values i en dictionary "utgifter".

Det konstiga är att när jag kör programmet en gång, funkar det suveränt. Den kalkylerar budgeten helt rätt utifrån utgiften som finns i min dictionary. Problemet uppkommer när jag har mer än ett värde i min dictionary, då blir kalkylationerna helt fel.

Säg att jag sätter budgeten på 1000. Sedan lägger jag till en utgift i min dictionary "Hyra": "500"

I loopen nedan kan jag ändra "Hyra": "500" till "Hyra": "x" vilket fungerar jättebra när jag endast har ett värde i min dict - Då blir "start_budget" rätt. När jag har "Hyra": "500 och "Hund": "100" (Budget: 600) och sedan byter ut "Hund": "100" till värdet 200 - Då blir kalkylationen helt fel, det borde ge mig Budget: 300 men istället får jag Budget: 100.

Har kollat i dict och alla värden där är rätt. Hyra 500, Hund, 200 = 700 vilket borde lämna mig med 300 men budgeten sätts på 100 istället.

 

Det som ligger i fokus och som jag vill få rätt på är: 


start_budget += start_budget - sum(int(v) for k, v in utgifter.items())

Här är hela loopen: 

    while True:
        try:
            ändra_belopp = int(input(f"Ange ett nytt maxbelopp: "))

            if ändra_belopp >= 0:
                utgifter[utgift_lista[ändra - 1]] = ändra_belopp
                start_budget += start_budget - sum(int(v) for k, v in utgifter.items())
                rensa()
                huvudloop()

        except ValueError:
            print("")
Laguna Online 30484
Postad: 26 nov 2021 22:12

Jag förstår inte helt hur budgetberäkningen ska gå till, men jag tycker det ser konstigt ut med start_budget += start_budget - nånting.

Jag skulle kunna tänka mig att

start_budget = start_budget - nånting 

är rätt.

Cyron 2 – Fd. Medlem
Postad: 26 nov 2021 22:17

Förstår mig inte heller på detta.

Ponera att budgeten är 10 (kr)

budget = 10

jag har en dictionary med alla mina utgifter, jag vill att alla values i denna dictionary ska läggas ihop till ett int värde och sedan subtrahera 10 med värdena.

 

start_budget = start_budget - sum(int(v) for k, v in utgifter.items()) funkar ej då budgeten inte stämmer överens med summan i värdena.

Laguna Online 30484
Postad: 26 nov 2021 22:22

Det är bäst att stoppa in spårutskrifter av allting före och efter den där raden, så du ser vad som händer 

Svara
Close