Others have answered with a few different ways to achieve your requirement, however, none explained why the output of your code is the length of the input string.
for loops have a loop variable that is assigned values from the object that is being iterated over. In the case of the object being a string, the for loop will iterate in order over each character in the string, assigning the character to the loop variable e.g.
>>> for i in "Hi there":
... print i
...
H
i
t
h
e
r
e
So you can see that i is assigned in turn a character from the string "Hi there". The same thing is happening in your code: ultrias is the loop variable and is being assigned consecutive characters from the string "Hi i am 17, did you know I am 17".
ultrias = "am 17"
response = "Hi i am 17, did you know I am 17"
num = 0
for ultrias in response:
print(ultrias)
num += 1
print (num)
The output will be:
H
i
i
a
m
1
7
.
.
.
3
Also note that the value of ultrias after the loop has terminated is the last value assigned it by the loop - not "am 17" but "7".
171in17171? One or two ?