```
I got my code to work, but my original code was:
if type(num) == int or float:
etc...
my question is, why does Python need:
if type(num) == int or type(num) == float:
Just the way the syntax is?
```

# Review: Built-in Functions

**bteodosiu**#1

**ionatan**#2

The syntax allows both of them, but if you want to compare `float`

to the type of `num`

, then you'll have to write the code for doing that.

If you treat `float`

as if it were a boolean, then it will be considered truthy:

`print bool(float)`

`True`

Some values are falsy, typically those representing lack of value or emptiness. Like an empty list/string, or None

**jpwat**#3

I have this, and cant figure out the error.

I've used all spaces, no tabs

distance_from_zero(distance):

return distance

if type(distance) == int or type(distance) == float:

return abs(distance)

else:

return "Nope"

**jpwat**#4

the forum isn't recognizing my spaces, but there should be 1 space before the if and else and 2 spaces before the returns

**bteodosiu**#5

Are you defining distance_from_zero(distance):

didn't know if you forgot to include def before that.

**bteodosiu**#7

ok, why do you have return distance after def distance_from_zero(distance):

try removing return distance line and run it.

**2012987r**#8

can someone help me understand why this code works:

def distance_from_zero(N):

if type(N) == int or type(N) == float:

return abs(N)

else:

return "Nope"

and this code does not:

def distance_from_zero(N):

if type(N) == str:

return "Nope"

else:

return abs(N)

The error message I get in this version is: "Your function seems to fail on input True when it returned '1' instead of 'Nope'"

**dtkahn1**#9

Thanks ionatan! Had the same question!

In case this helps other noobs like me – if I am understanding ionatan correctly – the line

if type(num) == int or float:

is being evaluated as

if (type(num) == int) or (bool(float):

and so

if type(num) == int

is being evaluated correctly

but

or float

is being evaluated as a independent boolean

and since bool(float) is been evaluated as inherently "truthy"

bool(float) will always == True

and so what you're actually writing with

if type(num) == int or float:

is

if type(num) == int or True:

which will always evaluate to True.