Write a BankAccount class.
BankAccount(100) opens with a balance of 100; BankAccount() opens at 0.
deposit(amount) adds to the balance. withdraw(amount) subtracts. Both return the new balance and both raise ValueError for an amount of zero or less.
withdraw also raises ValueError when the account does not hold enough - the balance must never go below zero. That rule is the whole reason this is a class rather than a number.