Software Engineering

How to Remove Trailing Zeroes in Python


The challenge

Numbers ending with zeros are boring.

They might be fun in your world, but not here.

Get rid of them. Only the ending ones.

1450 -> 145
960000 -> 96
1050 -> 105
-1050 -> -105

The solution in Python code

Option 1:

def no_boring_zeros(n):
    n = str(n)
    for i in range(len(n)-1, 0, -1):
        if n[i]=="0":
            n = n[:-1:]
        else:
            return int(n)
    return int(n)

Option 2:

def no_boring_zeros(n):
    try:
        return int(str(n).rstrip('0'))
    except ValueError:
        return 0

Option 3:

def no_boring_zeros(n):
  return int(str(n).rstrip("0")) if n else n

Test cases to validate our solution

import test
from solution import no_boring_zeros

@test.describe("Fixed Tests")
def fixed_tests():
    @test.it('Basic Test Cases')
    def basic_test_cases():
        test.assert_equals(no_boring_zeros(1450), 145)
        test.assert_equals(no_boring_zeros(960000), 96)
        test.assert_equals(no_boring_zeros(1050), 105)
        test.assert_equals(no_boring_zeros(-1050), -105)
        test.assert_equals(no_boring_zeros(0), 0)
        test.assert_equals(no_boring_zeros(2016), 2016)