DamiRocK

Python: составное выражение для первого и последнего символа

Одной дополнительной переменной собираем двухстрочную сводку по Hello, Python!. Вложенные выражения, f-строки и ограничение для пустого входа.

Выражение даёт значение

Результат выражения можно сохранить, передать функции или включить в большее выражение. В 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. Задание сохранено; пределы входа обозначены.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.