Do string methods permanently change the string they’re used on?



Unless you assign the variable to be itself with a string method modifying it, then it will remain the same. Using a string method simply performs the action (upper, lower, etc.) and then moves on to the next line without changing the actual string stored in memory. For example, if you print parrot.upper( ) and then print parrot on the next line, you’ll see it’s lowercase again! However, if we actually assign to parrot the uppercase version of itself, it will make a change to the actual string stored in the variable: parrot = parrot.upper( ) followed by print parrot will show you the uppercased string.

FAQ: Learn Python – Strings & Console Output – lower()