You need to include the type f
(for float) to control the number of digits after the decimal place:
>>> '{:.10f}'.format(100/3)
'33.3333333333'
Without specifying the type, Python falls back to the general number type and the number is rounded to the specified number of significant digits. From the documentation:
The precision is a decimal number indicating how many digits should be displayed after the decimal point for a floating point value formatted with 'f' and 'F', or before and after the decimal point for a floating point value formatted with 'g' or 'G'.