I have to run a for loop in blender, but screen is not being updated import bpy


 from time import sleep
 x = 1
 for x in range(10):
...     print("Done")
...     sleep(1)


If run this script, the blender hangs for a while and restores again with 10 Messages 'Done'

But what I need is it should print the string 'Done' one by one. but it hangs for a while and prints all the 10 strings named Done altogether at once.

Same thing happens with bpy.ops.transform.translate()()
This is how scripts are intended to be run in Blender. You should not attempt to update the interface while running a script - that can cause problems with other processes in Blender. 

If you need some functionality that runs in Blender while the rest of Blender is functioning at the same time you should make a modal operator. There are a few examples included with Blender that you can reach from the Text Editor's header menu Templates - > Python -> Operator Modal... :