class ATM: def __init__(self, cards): self.cards = cards def enter_card(self): id_card = int(input('Please enter you card:')) current_card = self.check_availability(id_card) if not current_card: print("We don't have your card in our base") return False return self.enter_pin(current_card) def check_availability(self, id_card): for i in self.cards: if i.id_card == id_card: return i return False def enter_pin(self, card): pin = int(input('0 - to leave\n' 'Please enter you PIN:')) if pin == 0: return False else: if card.pin == pin: return self.atm_menu(card) else: print('Wrong PIN') return self.enter_pin(card) def atm_menu(self, card): command = 1 while command != 0: print('1 - Check your balance\n' '2 - Withdraw money\n' '3 - Top up you card\n' '4 - Transfer money\n' '0 - To leave' ) command = int(input('Type:')) if command == 1: card.balance_info() if command == 2: amount = int(input('How much money you want to withdraw:')) card.withdraw_money(amount) if command == 3: amount = int(input('Put money in:')) card.top_up(amount) if command == 4: money_taker_id = int(input('Type a card_id you want to transfer money:')) money_taker_card = self.check_availability(money_taker_id) if money_taker_card: amount = int(input('How much money you want to transfer:')) if card.transfer_minus(amount): money_taker_card.transfer_plus(amount) else: print("You don't have enough money to transfer)") else: print("We don't have this user in our base") return True