It's always a string.
You can use explicit type casting to convert the string into the requird data type unless any exception(generally ValueError) is raised.
i = int(input("Enter an integer: "))
>>>Enter an integer: Abc
# This kind of string can't be converted into an integer
>>>Enter a number: 7
# This string can be converted into an integer
In my humble opinion, I think that the initial type which you have entered your data is string, because when you wants to type a Integer, you put before the data to enter, so the type of data which you needs.
In other languages stronger typed you must specify the data type which you enter, so the computer can reserve memory size to this variable.
I think it's the reason because python doesn't ask for the data type.
The Python input function reads a line as text, so the type is string, but you can easily transform it with the methods int, float, etc.
text = input("Enter some text")
num = int(input("Enter any integer"))