Python: Переменные и конкатенация
Ранее мы уже склеивали строки напрямую, используя конкатенацию. Теперь сделаем то же самое, но с использованием переменных. Хорошая новость: синтаксис остается тем же. Просто подставляются значения переменных.
Склеиваем две строки напрямую
what = 'Kings' + 'road'
print(what) # => KingsroadЗдесь все просто: две строки соединяются в одну. Так работает конкатенация: оператор + складывает строки, создавая новую строку.
Склеиваем строку и переменную
Если в переменной first лежит строка "Kings", мы можем спокойно склеить ее с другой строкой:
first = 'Kings'
what = first + 'road'
print(what) # => KingsroadPython подставит значение переменной, выполнит операцию и создаст итоговую строку.
Склеиваем две переменные
Точно так же можно объединить значения двух переменных, если обе содержат строки:
first = 'Kings'
last = 'road'
what = first + last
print(what) # => KingsroadМожно добавлять и пробелы:
full = first + " " + last
print(full) # => Kings roadwhat = 'Kings'
who = 'road'
what + ' ' + who
└─┬──┘ └──┬─┘
'Kings' + ' ' + 'road'
└────────┬─────────┘
'Kings road'А что если переменная содержит число?
Попробуем так:
age = 42
# print("Age: " + age) # Ошибка!Программа выдаст ошибку: нельзя складывать строку и число. Чтобы склеить строку с числом, нужно преобразовать число в строку:
age = 42
print('Age: ' + str(age)) # Age: 42То же самое касается переменных с результатами вычислений:
price = 50 * 1.25 * 6.91 # => 431.875
print('Price in yuans: ' + str(price)) # Price in yuans: 431.875Функция str() превращает любое значение (число, результат вычисления, булево и т.д.) в строку. Подробнее про функции мы поговорим в будущих уроках.
Задание
Интернет-магазин отправляет покупателю письмо после оформления заказа. Письмо генерируется автоматически на основе данных о клиенте.
Напишите программу, которая генерирует приветствие и тело письма, используя уже готовые переменные, и выводит строки на экран.
Для приветствия используйте переменные first_name и greeting, запятую и восклицательный знак. Для тела письма используйте переменные intro и info — второе предложение должно быть на новой строке.
Результат на экране:
Здравствуйте, Анна!
Спасибо за ваш заказ.
Ожидаемая дата доставки — 3 рабочих дня.Выполните задание, используя только два print().
Полезное
Подумайте, с какой строкой и в каком порядке нужно склеивать переменные, чтобы получить такой двухстрочный вывод тела письма.
Помните, что можно создать строку, которая содержит только управляющую последовательность
\n. Вы можете конкатенировать эту строку с переменными для правильного форматирования текста.
Python: Переменные и конкатенация
Ранее мы уже склеивали строки напрямую, используя конкатенацию. Теперь сделаем то же самое, но с использованием переменных. Хорошая новость: синтаксис остается тем же. Просто подставляются значения переменных.
Склеиваем две строки напрямую
what = 'Kings' + 'road'
print(what) # => KingsroadЗдесь все просто: две строки соединяются в одну. Так работает конкатенация: оператор + складывает строки, создавая новую строку.
Склеиваем строку и переменную
Если в переменной first лежит строка "Kings", мы можем спокойно склеить ее с другой строкой:
first = 'Kings'
what = first + 'road'
print(what) # => KingsroadPython подставит значение переменной, выполнит операцию и создаст итоговую строку.
Склеиваем две переменные
Точно так же можно объединить значения двух переменных, если обе содержат строки:
first = 'Kings'
last = 'road'
what = first + last
print(what) # => KingsroadМожно добавлять и пробелы:
full = first + " " + last
print(full) # => Kings roadwhat = 'Kings'
who = 'road'
what + ' ' + who
└─┬──┘ └──┬─┘
'Kings' + ' ' + 'road'
└────────┬─────────┘
'Kings road'А что если переменная содержит число?
Попробуем так:
age = 42
# print("Age: " + age) # Ошибка!Программа выдаст ошибку: нельзя складывать строку и число. Чтобы склеить строку с числом, нужно преобразовать число в строку:
age = 42
print('Age: ' + str(age)) # Age: 42То же самое касается переменных с результатами вычислений:
price = 50 * 1.25 * 6.91 # => 431.875
print('Price in yuans: ' + str(price)) # Price in yuans: 431.875Функция str() превращает любое значение (число, результат вычисления, булево и т.д.) в строку. Подробнее про функции мы поговорим в будущих уроках.
Задание
Интернет-магазин отправляет покупателю письмо после оформления заказа. Письмо генерируется автоматически на основе данных о клиенте.
Напишите программу, которая генерирует приветствие и тело письма, используя уже готовые переменные, и выводит строки на экран.
Для приветствия используйте переменные first_name и greeting, запятую и восклицательный знак. Для тела письма используйте переменные intro и info — второе предложение должно быть на новой строке.
Результат на экране:
Здравствуйте, Анна!
Спасибо за ваш заказ.
Ожидаемая дата доставки — 3 рабочих дня.Выполните задание, используя только два print().
Полезное
Подумайте, с какой строкой и в каком порядке нужно склеивать переменные, чтобы получить такой двухстрочный вывод тела письма.
Помните, что можно создать строку, которая содержит только управляющую последовательность
\n. Вы можете конкатенировать эту строку с переменными для правильного форматирования текста.
Ваше упражнение проверяется по этим тестам
import importlib
def test(capsys):
expected = """Здравствуйте, Анна!
Спасибо за ваш заказ.
Ожидаемая дата доставки — 3 рабочих дня."""
expect_output(capsys, expected)
def expect_output(capsys, expected):
importlib.import_module('solution')
out, _err = capsys.readouterr()
actual = out.strip('\n')
with capsys.disabled():
print('\n')
print(out)
assert actual == expectedРешение учителя откроется через:
20:00
