Сначала выводятся a, a и abdcrA. Затем s ** 2 вызывает TypeError, потому что список нельзя возвести в степень; выполнение скрипта прерывается.
Python: срез строки и возведение списка в степень
Сначала выводятся a, a и abdcrA. Затем s ** 2 вызывает TypeError, потому что список нельзя возвести в степень; выполнение скрипта прерывается.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
что выводит
s = 'Abracadabra' print(s[5][0][0]) b = 'a' print(b[0][0])
print(s[::-2]) #Arcd s = [1, 2, 3] print(s ** 2)
def foo(*args, **kwargs): print(args) print(kwargs)
Ответ
Сначала выводятся a, a и abdcrA. Затем s ** 2 вызывает TypeError, потому что список нельзя возвести в степень; выполнение скрипта прерывается.
В строке Abracadabra символ с индексом 5 — a. Индексирование односимвольной строки по нулю снова возвращает этот символ. Срез [::-2] идёт от конца с шагом −2 и даёт abdcrA; комментарий в исходнике неверен.
После присваивания s = [1, 2, 3] выражение s ** 2 не поддерживается. Определение foo ниже ошибки не будет выполнено при обычном запуске всего скрипта. Даже отдельно само определение функции ничего не печатает: для этого нужен вызов.