Когда вы снова вызываете свою функцию рекурсивно, вы все равно передаете сумму, которая будет вычтена, равной 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')
Однако использование глобальных переменных не является хорошей идеей, и, вероятно, есть лучший способспроектировать это.