Процедурные вопросы - PullRequest
       23

Процедурные вопросы

0 голосов
/ 28 октября 2019

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

мой код здесь:

checking = 10000
savings = 10000
user_ammount_w = 0
user_currency_w = ""
def withdraw_saving (amount, country):
    global checking
    if country == "HKD":
        if checking >= amount:
            checking = checking - amount
            print("The amount of money left in your checking is", checking)
        else:
            print("Your request of", "$"+ str(amount), country, "is greater than the amount in your 
            checking account this withdraw will not work")

user_choice = input("Welcome to the ATM. Type 1 for withdrawing")
    if user_choice == "1":
        user_currency_w= input("Which currency would you like to withdraw from. For testing purposes 
        its only HKD")
        user_amount_w= int(input("How much money do you want to withdraw"))
        withdraw_saving (user_ammount_w, user_currency_w)

1 Ответ

0 голосов
/ 28 октября 2019

Когда вы снова вызываете свою функцию рекурсивно, вы все равно передаете сумму, которая будет вычтена, равной 0, когда вы передаете user_ammount_w, который вы глобально задали как 0. вместо этого я подозреваю, что вы хотите передать user_amount_w, которое является именем переменной, которое вы использовали для ввода пользовательского ввода.

checking = 10000
savings = 10000
user_ammount_w = 0   #<----this is the value you passing to your function
user_currency_w = ""
def withdraw_saving (amount, country):
    global checking
    if country == "HKD":
        if checking >= amount:
            checking = checking - amount
            print("The amount of money left in your checking is", checking)
        else:
            print("Your request of", "$"+ str(amount), country, "is greater than the amount in your checking account this withdraw will not work")

    user_choice = input("Welcome to the ATM. Type 1 for withdrawing")
    if user_choice == "1":
        user_currency_w= input("Which currency would you like to withdraw from. For testing purposes its only HKD")
        user_amount_w= int(input("How much money do you want to withdraw")) #<--you never pass this value.
        withdraw_saving (user_ammount_w, user_currency_w)

withdraw_saving(20, 'HKD')

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

...