1) By convention you don't use _ in method names - example of proper method name:
calculateDistanceFromZero()
2) By convention you don't use 1 letter names for variable (unless it's a one-time use variable and not a script-wise variable, in that case it's allowed (can't remember correctly)) - example of proper variable naming:
distance_from_zero(length):
3) Don't know if this is in the convention, but grouping compares in IF is a good way to clear the code, so example:
if (d != int) or (d != float):
4) You must have only 1 return statement at the END of your code block. The way you did is a bad way.
5) When returning something from a method it should be of the same type for every case, not like it is now (a string if it's like this and some number if it's like that)
6) Why dafuq are you calling the method from itself? I dunno, it might be locking up in an infinite loop. If not then it sure is a bad way to return something.
So anyway, this block is trash and not acceptable. Sorry.
Proper way to do it would be like this:
def calculateDistanceFromZero(length):
newLen = abs(length)
if (newLen != int) or (newLen != float):
newLen = "This isn't an integer or a float!" # yeah yeah...
return newLen