Выражение даёт значение
Результат выражения можно сохранить, передать функции или включить в большее выражение. В print(len("python")) сначала вычисляется длина 6, затем это число передаётся print().
Индексирование и f-строки также дают значения. Поэтому можно собрать готовое сообщение сразу, без переменной для каждого отдельного символа.
Задание источника
Для text = "Hello, Python!" выведите первый и последний символ в формате двух строк. Создайте только одну дополнительную переменную с готовым текстом перед печатью:
text = "Hello, Python!"
result = f"First: {text[0]}\nLast: {text[-1]}"
print(result)
Результат:
First: H
Last: !
Индекс 0 даёт H, индекс −1 — восклицательный знак. Между двумя подписями находится настоящий перевод строки, созданный \n.
Разбор последовательности вычислений
Сначала извлекаются оба символа и формируется строка. Затем она присваивается result. Последний вызов выводит уже готовое значение. Имена First и Last внутри кавычек — обычные текстовые подписи, не переменные и не функции Python.
Граница входных данных
Для заданной непустой строки оба индекса допустимы. Пустая строка вызвала бы IndexError. Условие не задаёт формат сводки для пустого текста, поэтому в минимальное решение не добавляется произвольная замена вроде вопросительного знака.
Выражение len(text) - 1 могло бы вычислить последний неотрицательный индекс. Отрицательная индексация короче, но обе записи требуют непустого входа. Составное выражение полезно, пока его смысл остаётся понятным; требование одной переменной здесь — учебное ограничение, не универсальное правило для больших программ.
Hexlet / Code Basics и участники · Исходный урок и решение · GNU AGPL v3. Задание сохранено; пределы входа обозначены.