Unfortunately your approach won't work. Comma separated values in the print statement don't allow for new pieces of logic; they just tell python to print space separated strings. For this you need to play around with the print statement parameters a little bit.
The code is:
import time
i = 1
while i < 4:
dots = '.'*i
print("\r{}".format(dots), flush=True, end='')
time.sleep(1)
i += 1
You don't necessarily need the while loop, but to understand what's happening in the print statement.
You must include the "\r", which is carriage return, at the start of the string. This tells Python after printing to return the cursor to the start of the line, for the next time it needs to print.
In the parameters for the print function, use "end=''", which tells python to end with empty string. By default the print statement ends with a newline, which is unwanted behaviour.
Finally, "flush=True" tells Python to delete anything in front of what needs to be printed. This is necessary because you will have used carriage return to go to the start.