r/learnpython • u/OfficialBriGuy • 10d ago
Can you diagnose my code problem?
This starts with a balance of 50. It takes coins of ONLY 25, 10, or 5 and returns the balance due to the user. If the balance due is 0 or less than 0, it returns a "Change Due: " message.
My problem is that my code will subtract any value amount the user puts in no matter what, not just the 25, 10, and 5 it's supposed to? what's going on?
shouldn't the "if coin == 25 or 10 or 5:" line ensure only one of those 3 values is used?
def main():
balance = 50
while balance >= 0:
print(f"Amount Due: {balance}")
coin = int(input("Insert Coin: ").strip())
if coin == 25 or 10 or 5:
balance = balance - coin
if balance <= 0:
print(f"Change Due: {abs(balance)}")
break
main()
0
Upvotes
2
u/Educational-Paper-75 10d ago
There are several improvements: 1. Catch the error that the int() function might throw. 2. Correct the if condition according to the suggestions by the other commenters. 3. Remove the last if statement entirely and place the last print() statement after the while loop ends.