====Adding Logic to Equations=== In our [[creating a model in python|example]], we created a very simple model telling us how many seconds of water we have stored in our tank. ===Handling Divide-By-Zero=== If you're doing anything with rates and speeds, you'll likely come up across a divide-by-zero error at some point. These can cascade and cause chaos with your model, so it's always a good idea to handle these. Luckily, Python allows you to use in-line conditions, so you can put logic into your functions. We can change the code.... lambda: Volume.num() / Outflow.num(), [Outflow,Volume] to something that returns 86400 (a full day in seconds) when there's no flow out of the tank. lambda: 86400 if Outflow.num() == 0 else Volume.num() / Outflow.num() An 'easy' way of avoiding divide-by-zero is by wrapping the variable in **max(//value//,0.1)**, which ensures that the value will always greater than 0. However, in some cases this can be dangerous - certain equipment (such as pumps) can be run in reverse, where they generate negative values. Using //max// would prevent these negative values from being used in your calculations. How about we [[connect our model to data]]?