Method 1 sometimes gives wrong solution because it has a bug:

>     def solution(X, Y, D):
>         if (X == Y):
>             jumps = 0
>         elif Y-X % D == 0:
>             jumps = (Y-X)/D
>         else:
>             jumps = ((Y-X)/D) + 1
>         return jumps

In the `elif` there, `Y-X` should have been within brackets, because `%` has higher precedence than `-` operator. In other words, `Y - X % D` is not the same as `(Y - X) % D`.

Other than that, they are practically equivalent. I would clean up the formatting and remove some obvious temporary variables, like this:

    def solution(X, Y, D):
        jumps = (Y - X) / D
        if (Y - X) % D > 0:
            return jumps + 1
        return jumps