import math def litres_per_hour(litres, hours): if not math.isfinite(litres) or not math.isfinite(hours) or litres < 0 or hours <= 0: raise ValueError("nonnegative litres and positive finite hours required") return litres / hours assert litres_per_hour(21., 3.) == 7. try: litres_per_hour(21., 0.) except ValueError: print("Rate 7.0 L/hour; zero hours rejected") else: raise AssertionError("zero hours accepted")