Why doesn't .strip() remove whitespaces? [duplicate]

I have a function that begins like this:

def solve_eq(string1):
    string1.strip(' ')
    return string1

I'm inputting the string '1 + 2 * 3 ** 4' but the return statement is not stripping the spaces at all and I can't figure out why. I've even tried .replace() with no luck.


Solution 1:

strip does not remove whitespace everywhere, only at the beginning and end. Try this:

def solve_eq(string1):
    return string1.replace(' ', '')

This can also be achieved using regex:

import re

a_string = re.sub(' +', '', a_string)

Solution 2:

strip doesn't change the original string since strings are immutable. Also, instead of string1.strip(' '), use string1.replace(' ', '') and set a return value to the new string or just return it.

Option 1:

def solve_eq(string1):
    string1 = string1.replace(' ', '')
    return string1

Option 2:

def solve_eq(string1):
    return string1.replace(' ', '')

Solution 3:

strip returns the stripped string; it does not modify the original string.