Что нельзя изменить
Строка Python неизменяема. Присваивание name[0] = "B" недопустимо, даже если name существует. Можно создать другую строку и связать с ней то же имя: name = "B" + name[1:]. В этом случае меняется связь переменной, а не содержимое исходной строки.
Два исходных урока об одном свойстве объединены здесь с сохранением обоих упражнений.
Первое упражнение: собрать слово
Из имён Spencer, Kristina и Martina возьмите второй символ первой строки, третий третьей, затем третий, седьмой и пятый второй строки:
one = "Spencer"
two = "Kristina"
three = "Martina"
print(f"{one[1]}{three[2]}{two[2]}{two[6]}{two[4]}")
Результат — print. Строки one, two и three не изменились: индексирование и форматирование создали новое значение.
Второе упражнение: очистить имя
first_name = " Grigor \n"
first_name = first_name.strip()
print(first_name)
Будет напечатано Grigor. Метод без аргументов удаляет краевые пробельные символы, включая перевод строки, но не убирает пробелы внутри имени.
Почему один вызов недостаточен
Если написать только first_name.strip(), результат вычислится, но имя first_name останется связанным с прежней строкой. Его нужно использовать: сохранить, передать другой функции или сразу вывести.
Не все методы любого объекта возвращают строку и не все объекты неизменяемы. Здесь обсуждаются именно преобразования строк strip(), upper() и аналогичные операции. Метод count(), например, возвращает число. Поведение следует определять по конкретному методу, а не только по синтаксису точки.
Hexlet / Code Basics и участники · Неизменяемость значений, Результаты методов · GNU AGPL v3. Два урока объединены; упражнения сохранены.