Создание небольшого, простого программного обеспечения, похожего на банкомат. Я сделал функции для различных действий доступными. Однако в выводе моя глобальная переменная «баланс» не обновляется. Ниже приведен соответствующий фрагмент кода.
После некоторого тестирования я понял, что значение понимается как изменяющееся внутри функции, так как при внесении значения я могу вывести сумму, превышающую начальный баланс. Это означает, что переменная обновляется как минимум для функций.
global menu
balance = float(input("Please enter your current balance: "))
menu = "Current balance is: {}\n Press 1 to withdraw\n Press 2 to deposit\n Press 3 to exit".format(balance)
def display():
global choice
global balance
print(menu)
choice = input("Please select a number: ")
return balance
def deposit():
global balance
global choice
amount_dep = float(input("Please enter the amount you'd like to deposit: "))
balance += amount_dep
return "Your current balance is{}".format(balance)
def withdraw():
global balance
global choice
amount_with = float(input("Please enter the amount you'd like to withdraw: "))
if amount_with > balance:
print("Sorry, but your balance is less than the amount you'd like to withdraw.")
else:
balance -= amount_with
return "Your current balance is{}".format(balance)
while finished == False:
display()
global choice
if choice == '1':
withdraw()
elif choice == '2':
deposit()
elif choice == '3':
finished = True
print("Thank you for using our service.")
else:
print("You entered an invalid number, please retry")
Таким образом, все выходные данные являются регулярными, за исключением значения сальдо.