Segun entiendo, input() no es unicamente para enteros, sino que analiza la expresion que se le pasa como argumento, y devuelve el tipo correspondiente.
Un saludo!
Código (python) [Seleccionar]
print type(input(">"))
>2
<type 'int'>
Código (python) [Seleccionar]
print type(input(">"))
>"Hola"
<type 'str'>
Código (python) [Seleccionar]
print type(input(">"))
>True
<type 'bool'>
Un saludo!