String Methods
split, join, strip, replace and the case methods - and the fact that none of them change the string they are called on.
Overview
Nothing is modified in place
name = "ana"
name.upper() # result discarded
print(name) # still "ana"
Strings are immutable, so a method that "changes" one actually returns a new one. If you do not keep the result, nothing happened. The fix is to rebind:
name = name.upper()
This is the single most common string mistake, and it fails silently — no error, just the old value.
string_methods.py
split_join.py
Worth knowing
split() with no argument splits on any run of whitespace; split(' ') does not.join is called on the separator: ", ".join(parts).strip("ab") removes any of those characters, not the string "ab". Use removesuffix for that.