Python String zfill() Method: A Complete Guide (with Examples)

Python zfill() method stretches a string by adding zeros at the beginning.

The zfill method adds zeros to the beginning of a string in Python

For instance, let’s add zeros to a string with zfill() until its length is 15:

sentence = "Hello world"

print(sentence.zfill(15))

Output:

0000Hello world

This string is now 15 in length due to the zero-filling.

If the length of the string is greater than what is passed into the zfill(), the method does nothing.

For example:

sentence = "Hello world"

print(sentence.zfill(5))

Output:

Hello world

How Does It Work

The zfill method in Python

Syntax of the zfill method:

string.zfill(n)

This method does not add n zeros to the beginning. Instead, it makes the string n in length by adding some number of zeros to it.

Also, the zfill() method does not modify the original string. Instead, it returns a new string with zeros filled at the beginning of it.

Python zfill() Strings with a Leading +/- Sign

If a string starts with the prefix of + or -, the zfill() method adds the zeros after the first occurrence of the prefix.

For example:

num_str1 = "-50"
num_str2 = "+100"

print(num_str1.zfill(10))
print(num_str2.zfill(10))

Output:

-000000050
+000000100

Or as another example:

word1 = "-test"
word2 = "+hello"

print(word1.zfill(10))
print(word2.zfill(10))

Output:

-00000test
+0000hello

Python zfill() Strings with Multiple Leading +/- Signs

If there is more than one leading + or - sign in the string, the zeros are filled in after the first occurrence.

For example:

num_str1 = "--50"
num_str2 = "++100"

print(num_str1.zfill(10))
print(num_str2.zfill(10))

Output:

-000000-50
+00000+100

Python Zfill Right Side of a String

By default, the zfill() method pads zeros at the beginning of the string (left side).

To zfill the string from the right in Python, you need to do a little trick:

Invert the string twice. Once before using the zfill() and once after.

For example, let’s zfill a string from the right:

word = "Hello"
print(word[::-1].zfill(10)[::-1])

Output:

Hello00000

Python zfill() Method Alternatives

Here are two alternatives to using zfill():

  1. The built-in format() method
  2. string.rjust() method

1. Format() Method

The format() method can be used to embed variables into a string.

This means it can be used like the zfill() method.

For example:

sentence = "Hello wolrd"

print("{:0>15}".format(sentence))
print("{:0<15}".format(sentence))

Output:

0000Hello world

2. String.rjust() Method

String.rjust() is a built-in string method. It stands for right-justified string. In other words, it adds a specific value to the left of the string until a specific string width is reached.

This method can be used to do the same as the zfill() method.

For example:

sentence = "Hello world"
print(sentence.rjust(15, '0'))

Output:

0000Hello world

Conclusion

Python’s built-in zfill() method pads a string by adding a number of zeros at the beginning of the string. It adds zeros until the desired string width is reached.

Thanks for reading. I hope you find it useful. Happy coding!

Further Reading