I have a function that decrements a whole number parameter represented by a string. For instance, if I pass in the string “100”, it should return “99.”
def dec(s):
i = len(s) - 1
myString = ""
while (i >= 0):
if s[i] == '0':
s[i] = '9'
i -= 1
else:
s[i] = chr(int(s[i]) - 1)
break
return s
However, Python issues this error.
s[i] = '9'
TypeError: 'str' object does not support item assignment
I am assuming that s[i] cannot be treated as an lvalue. What is a solution around this?
You can’t. In Python, strings are immutable — once created, they can’t be changed.
You have two options without changing your function entirely.
Convert the string to a list and back:
Create a new string each time you want to make a change: