Remove leading zeros from a Number given as a string using Python

In this article, we will learn how to remove leading zeros from a number given as a string using Python. Leading zeros are unnecessary zeros at the beginning of a number that don't affect its mathematical value.

We'll explore three effective methods: using lstrip(), regular expressions, and the int() function. Each approach has its own advantages depending on your specific use case.

Method 1: Using lstrip() Function

The lstrip() method removes specified characters from the beginning of a string. This is the most straightforward approach for removing leading zeros ?

def remove_leading_zeros(input_string):
    # Remove leading zeros using lstrip()
    result = input_string.lstrip('0')
    # Return '0' if all characters were zeros
    return result if result else '0'

# Test with different strings
test_strings = ["0002056", "00000", "256", "0050"]

for string in test_strings:
    result = remove_leading_zeros(string)
    print(f"'{string}' ? '{result}'")
'0002056' ? '2056'
'00000' ? '0'
'256' ? '256'
'0050' ? '50'

Method 2: Using Regular Expressions

Regular expressions provide powerful pattern matching. We use the pattern ^0+(?!$) to match leading zeros but preserve a single zero if the entire string is zeros ?

import re

def remove_leading_zeros_regex(input_string):
    # Pattern: ^0+ matches one or more zeros at start
    # (?!$) negative lookahead ensures we don't match if string is only zeros
    pattern = "^0+(?!$)"
    result = re.sub(pattern, "", input_string)
    return result

# Test with different strings
test_strings = ["0002056", "00000", "256", "0050"]

for string in test_strings:
    result = remove_leading_zeros_regex(string)
    print(f"'{string}' ? '{result}'")
'0002056' ? '2056'
'00000' ? '00000'
'256' ? '256'
'0050' ? '50'

Method 3: Using int() Function

Converting to integer automatically removes leading zeros, but returns a number instead of a string ?

def remove_leading_zeros_int(input_string):
    # Convert to integer (removes leading zeros) then back to string
    try:
        result = str(int(input_string))
        return result
    except ValueError:
        return "Invalid number"

# Test with different strings
test_strings = ["0002056", "00000", "256", "0050"]

for string in test_strings:
    result = remove_leading_zeros_int(string)
    print(f"'{string}' ? '{result}'")
'0002056' ? '2056'
'00000' ? '0'
'256' ? '256'
'0050' ? '50'

Comparison

Method Handles All Zeros Performance Best For
lstrip() Yes (with check) Fastest Simple string processing
Regular Expression Yes Moderate Complex patterns
int() Yes Fast When you need numeric output

Conclusion

Use lstrip('0') for simple and efficient removal of leading zeros from strings. Choose int() conversion when you need numeric output, and regular expressions for more complex pattern matching scenarios.

Updated on: 2026-03-27T00:07:48+05:30

12K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements