@jrebollo: Hello, Jrebollo!
The problem with your code is that you're comparing two things: the type of the input from the user and the type of value float, such will cause the condition to be True and so your program will try to get the absolute value from the input from the user.
Whenever we use input or raw_input, we are bringing back a string value and storing such into a variable, that's the usual thing to do, why would we ask the user to input something and not store it, right?
Right after that line, where you get the input, you use the function type and try to find out what type is your input. If you do it the way it is will be a string and such is not equal to int but since the logical operator we are using is OR, it means we need at least one of our statements to be True so our condition will be evaluated as True and the execution of my program will execute the lines of code inside of it.
In your case you're comparing something that is far from being an integer to something that will always be float, you're trying to compare the type of input with another type of value and such will always be evaluated as True.
After all of this, you'll tell your compiler to bring back the absolute value of your input and since it's a string, the error will be caused!
Try to fix that by asking if the type of num is also a float, same way you did for integer checking.
Hope it helps!
Note: when I executed your code, I got the following error message: "TypeError: bad operand type for abs(): 'str'". Are you sure that's what you got from it ?