A super gentle start to the festive season with a problem that is, essentially, apply a simple function to a short list of inputs and find the sum. It was almost more complicated to convert the input file into a usable format:

inputs = map(int, input.split())

Once we have a list of integer values, the function is a piece of cake, especially when the "rounding down" requirement after division is a freebie:

def fuel(n):
    return n / 3 - 2
    
print(sum([fuel(i) for i in inputs]))

The second start adds in a small twist: the values we've just calculated also requires fuel, and their fuel requires fuel, until we reach negligible values. Clearly we're being asked to get recursive:

def fuel2(n):
    extra = fuel(n)
    if extra < 1:
        return 0
    else:
        return extra + fuel2(extra)

And that's it, first 4% of AOC2019 in the bag (or Santa's sack)!

ETA: Just for fun, let's do that in Elixir too.

defmodule Day1 do
  
  defmacro is_free(mass) do
    quote do: (div(unquote(mass), 3) - 2) < 1
  end

  def fuel(mass), do: div(mass, 3) - 2

  def recursive_fuel(mass) when is_free(mass), do: 0
  def recursive_fuel(mass), do: fuel(mass) + recursive_fuel(fuel(mass))

end