Cómo rellenar una cadena con ceros en Python 3

Estoy intentando hacer length = 001 en Python 3, pero cada vez que bash imprimirlo, trunca el valor sin los ceros iniciales ( length = 1 ). ¿Cómo evitaría que esto suceda sin tener que convertir la length en una cadena antes de imprimirla?

Utilice el método auxiliar zfill() para rellenar a la izquierda cualquier cadena, entero o flotar con ceros.

Uso de la muestra:

 print str(1).zfill(3); # Expected output: 001 

Descripción:

Cuando se aplica a un valor, zfill() devuelve un valor rellenado a la izquierda con ceros cuando la longitud del valor de la cadena inicial es menor que la del valor del ancho aplicado, de lo contrario, el valor de la cadena inicial es.

Sintaxis:

 str(string).zfill(width) # Where string represents a string, an integer or a float, and # width, the desired length to left-pad. 

Los enteros de Python no tienen una longitud inherente o un número de dígitos significativos. Si desea que impriman de una manera específica, necesita convertirlos en una cadena. Hay varias formas de hacerlo que le permiten especificar cosas como caracteres de relleno y longitudes mínimas.

Para rellenar con ceros a un mínimo de tres caracteres, intente:

 length = 1 print(format(length, '03')) 

Desde Python 3.6 puedes usar fstring:

 >>> length = 1 >>> print(f'length = {length:03}') length = 001