Изменение символа в строке по заданному индексу

Присваивание a[5] = 'b' вызовет TypeError, поскольку строки неизменяемы. Значение a останется 'Hello world!', если исключение будет перехвачено; без обработки выполнение остановится.

Короткий ответ

Что ответить на собеседовании

Присваивание a[5] = 'b' вызовет TypeError, поскольку строки неизменяемы. Значение a останется 'Hello world!', если исключение будет перехвачено; без обработки выполнение остановится.

Подробный разбор

Ответ с пояснениями

Условие

Рассмотрите, что происходит, когда пытаются изменить символ строки, используя индексацию. Нужно объяснить, как изменится (или не изменится) переменная после такой операции.

a = "Hello world!"
a[5] = "b"
# чему станет a?

Ответ

Присваивание a[5] = 'b' вызовет TypeError, поскольку строки неизменяемы. Значение a останется 'Hello world!', если исключение будет перехвачено; без обработки выполнение остановится.

Создать изменённую строку можно так:

a = 'Hello world!'
a = a[:5] + 'b' + a[6:]
print(a)  # Hellobworld!

Индекс 5 обозначает пробел между словами. Срезы и конкатенация создают новое значение, после чего имя a перепривязывается к нему. Для большого числа замен можно использовать промежуточный список символов и один join в конце, но это уже другая стратегия редактирования.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее