Kodewick
Start learning →
Basic←→0 / 80

Bus card

#060BasicClassesConditions5 min

A bus card holds balance. Finish ride(fare): if there's enough money, take the fare off and return True; if not, take nothing and return False. ride_count tries each ride and gives (rides taken, money left).

Examples
ride_count(10, [2, 2, 3])→(3, 3)
ride_count(5, [3, 3])→(1, 2)
main.py
class BusCard:
    def __init__(self, balance):
        self.balance = balance

    def ride(self, fare):
        # your code here: if there's enough, take off the fare and return True
        return False


def ride_count(balance, fares):
    card = BusCard(balance)
    rides = 0
    for fare in fares:
        if card.ride(fare):
            rides += 1
    return (rides, card.balance)
Ctrl + Enter runs too
Result

Run tries the examples. When they look right, Submit.