Баланс в списке данных не уменьшается, когда должен

#python

#python

Вопрос:

Я хочу производить платежи за электроэнергию, уменьшая баланс в списке данных счетами в списке электроэнергии.

 data = [{"norek":"932012042", "name":"Ahmad Sujagad",    "balance":5000000},
        {"norek":"932012052", "name":"Basuki Pepeh",     "balance":4000000},
        {"norek":"932012099", "name":"Bambang Gentolet", "balance":3500000}]

data_ele =[{"noseri":"7932392", "name":"Ahmad Sujagad",    "bill":320000},
           {"noseri":"7932384", "name":"Basuki Pepeh",     "bill":250000},
           {"noseri":"7932345", "name":"Bambang Gentolet", "bill":180000}]
 

Когда я выполняю транзакции, баланс уменьшается, но когда я выбираю вариант 1, почему он не уменьшается?

 print("1.Electricn2.Water")
option = int(input("Please Select Menu :"))
if option == 1:
    print("total bill : ",dlist['bill'])
    bayar = input("Are You Sure You're Paying? (Y/T)")
    if bayar == "Y" or bayar == "y":
        print("No Seri : ",dlist['noseri'],"n","name :",dlist['name'])
        print("your remaining balance  :",duser['balance']-dlist['bill'])
    elif bayar == "T" or bayar == "t":
        print("Payment Cancelled")
 

Консоль:

 Please Select Menu :1
total bill :  320000
Are You Sure You're Paying? (Y/T)y
No Seri :  7932392 
name : Ahmad Sujagad

your remaining balance  : 4680000
 

когда я возвращаюсь к первому варианту, баланс не уменьшается:

 if option == 1:
    print("your remaining balance :",duser['balance'])
 

Консоль:

 Please Select Menu :1
your remaining balance : 5000000
 

Ответ №1:

В следующей строке:

 print("your remaining balance  :",duser['balance']-dlist['bill'])
 

… вы только показываете результат, но не обновляете баланс. Замените эту строку на:

 duser['balance'] -= dlist['bill']  #  update!
print("your remaining balance  :", duser['balance'])  # show new balance