4 ways to add variables or values into Python strings
![]()
Sometimes, there’s a need to include a variable or non-string datatypes into a string literal.
1. The comma
The most common way is to separate strings and variables with a comma as shown below.
This does not give a lot of ability to customize the output and still have everything look good. We also need to take note that each comma separation is a `space` in the output string.
We can do better.
2. The % operator
This is an old school method but you’ll still see it quite frequently. In fact, I use it a lot too.
This gives us more flexibility but there are 2 major limitations.
1. You can’t include any datatype such as list, datetime etc
2. %s is for string, %d for int and %f for float. You must not mistake one for another.
With the example above, there’s no error because the datatypes were convertible.
Therefore, python automatically cast the necessary datatype unto the input.
However, there are some floats e.g `infinity` that can’t be converted to int.
When there are more than one arguments for the % operator, it has to be a tuple. And lastly, you can specify the length of a float as shown below (dot followed by the number of decimal places).
3. The string format method
Python string has a format method which let’s you insert any datatype. It is very similar to % operator (with `%s` or `%d` or `%f` replaced with `<>`), but better.
The format method is better because
1. You don’t have to be sure about the datatype.
2. You can insert any datatype.
3. You can repeatedly use a value by indexing.
The last index example also illustrates that the values in the format method can be expressed as a list of key=value pairs.
4. f strings
Another attractive option is the formatted string literal (f-string).
The main advantage is that it lets you readily know where a value is, and I just think it looks . But the downsides are
1. It requires python>=3.6. You have to be certain of that to avoid an error.
2. You can’t include a backslash in the expression part (inside `<>`).
3. Point 2 also means that you can’t include `”` without getting a SyntaxError.
# Функция input() — ввод данных
За ввод в программу данных с клавиатуры в Python отвечает функция input() . Когда вызывается эта функция, программа останавливает свое выполнение и ждет, когда пользователь введет текст. После этого, когда он нажмет Enter, функция input() заберет введенный текст и передаст его программе, которая уже будет обрабатывать его согласно своим алгоритмам.
Если в интерактивном режиме ввести команду input() , то ничего интересного вы не увидите. Компьютер будет ждать, когда вы что-нибудь введете и нажмете Enter или просто нажмете Enter . Если вы что-то ввели, это сразу же отобразиться на экране:
Функция input() передает введенные данные в программу. Их можно присвоить переменной. В этом случае интерпретатор не выводит строку сразу же:
В данном случае строка сохраняется в переменной answer, и при желании мы можем вывести ее значение на экран.
Куда интересней использовать функцию input() в скриптах – отдельно взятых файлах с кодом. Рассмотрим такую программу:
При запуске программы, компьютер ждет, когда будет введена сначала одна строка, потом вторая. Они будут присвоены переменным nameUser и user_city . После этого значения этих переменных выводятся на экран с помощью форматированного вывода:
Вышеприведенный скрипт далек от совершенства. Откуда пользователю знать, что хочет от него программа? Чтобы не вводить в замешательство многозадачного биоробота, для функции input() предусмотрен специальный параметр-приглашение. Это приглашение выводится на экран при вызове input() . Усовершенствованная программа может выглядеть так:
Результат выполнения получиться следующий:
Обратите внимание, что в программу поступает строка. Даже если ввести число, функция input() все равно вернет его строковое представление. Но что делать, если надо получить число? Ответ: использовать функции преобразования типов:
Результат выполнения может быть следующий:
В данном случае с помощью функций int() или float() строковые значения переменных number_1 и number_2 преобразуются соответственно в целое число или дробное число. После этого новые численные значения присваиваются тем же переменным.
# Упражнения
Напишите программу, которая запрашивала бы у пользователя:
- его имя (например, «What is your name?»)
- возраст («How old are you?»)
- место жительства («Where do you live?»)
После этого выводила бы три строки:
Значения имя , возраст , место_жительства — произвольные, вводимые пользователем.
Напишите программу, которая предлагала бы пользователю ввести три числа, а затем решить пример составленный из введенных чисел. Потом выводила бы на экран правильный ответ и ответ пользователя. Пример должен вычисляться. Подумайте, нужно ли здесь преобразовывать строку в число.
Результат выполнения может быть следующий:
Другой пример выполнения этой же программы:
Запросите у пользователя четыре числа. Отдельно сложите первые два, отдельно вторые два числа и выведите суммы. Разделите первую сумму на вторую и выведите результат на экран.
Ввод и вывод данных в Python
Для вывода данных в Python используется функция print(), а для получения пользовательского ввода — функция input().
Вывод в Python
В Python мы можем просто использовать функцию print() для вывода данных. Например:
Здесь функция print() выводит строку, заключенную в одинарные кавычки.
Синтаксис функции print():
Функция print() может иметь 5 параметров:
object — значение(я) для вывода;
sep (от «separator», необязательно) — позволяет разделить несколько объектов для вывода внутри функции print();
end (необязательно) — позволяет добавлять специальные значения, например, новая строка ‘\n’ или отступ ‘\t’ ;
file (необязательно) — позволяет указать место для вывода данных. По умолчанию используется значение sys.stdout (экран).
flush (необязательно) — логическое значение, указывающее, сбрасывается ли вывод или буферизуется. По умолчанию используется значение False .
Пример №1: Функция print() с одним параметром
Good Morning!
It is rainy today
Здесь функция print() имеет только 1 параметр — объект для вывода. Поскольку параметр end не указан, то используется значение по умолчанию ‘\n’ . Таким образом, мы получаем вывод в двух разных строках.
Пример №2: Функция print() с параметром end
Good Morning! It is rainy today
Обратите внимание, что мы добавили параметр end= ‘ ‘ в функцию print(). Следовательно, мы получаем вывод в одной строке, разделенной пробелом.
Пример №3: Функция print() с параметром sep
New Year. 2023. See you soon!
Здесь в функции print() используется сразу несколько элементов для вывода, разделенных запятой. Обратите внимание, что мы также добавили необязательный параметр sep= ‘. ‘ , который позволил вывести элементы через точку (а не через запятую).
Пример №4: Вывод переменных и литералов в Python
Функция print() также может использоваться для вывода переменных. Например: