How can I concatenate a string and a number in Python? [duplicate]
I was trying to concatenate a string and a number in Python. It gave me an error when I tried this:
Why am I not able to do this?
How can I concatenate a string and a number in Python?
7 Answers 7
Python is strongly typed. There are no implicit type conversions.
You have to do one of these:
If it worked the way you expected it to (resulting in «abc9» ), what would «9» + 9 deliver? 18 or «99» ?
To remove this ambiguity, you are required to make explicit what you want to convert in this case:
Since Python is a strongly typed language, concatenating a string and an integer, as you may do in Perl, makes no sense, because there’s no defined way to "add" strings and numbers to each other.
Explicit is better than implicit.
. says "The Zen of Python", so you have to concatenate two string objects. You can do this by creating a string from the integer using the built-in str() function:
Perhaps better still, use str.format() :
The Zen also says:
There should be one— and preferably only one —obvious way to do it.
Python. Средства преобразования строк и одиночных символов.
Средства преобразования строк и одиночных символов. Функции int() , str() , repr() , float() , ord() , chr()
Содержание
- 1. Функция int() . Преобразование в целое число
- 2. Функция str() . Преобразование в строку
- 3. Функция repr() . Преобразование в строку как литерал
- 4. Какое отличие между функциями repr() и str() ?
- 5. Функция float() . Преобразование в число с плавающей запятой
- 6. Функции ord() и chr() . Преобразование кодов символов
- 7. Можно ли в Python сложить строку с числом?
- Связанные темы
Поиск на других ресурсах:
1. Функция int() . Преобразование в целое число
Функция int() есть конструктором класса int . Эта функция возвращает целочисленный объект, который может быть образован из:
- целого числа или объекта;
- числа или объекта с плавающей запятой;
- строки символов или строчного объекта, содержащего последовательность цифр.
Функция может вызваться одним из двух способов:
- int() – в этом случае функция возвращает значение 0;
- int(x, base) – в этом случае обрабатывается объект x . Значение base определяет систему исчисления, в которую нужно конвертировать объект x . По умолчанию base = 10. Если явным образом задана система исчисления, то тип объекта x должен быть строчным, другие типы в этом случае запрещаются.
Пример.
2. Функция str() . Преобразование в строку
Функция str() есть конструктором класса str . Функция возвращает объект в виде строки. Функция используется для конвертирования из одного типа (например числового) в строчный тип.
Функция имеет две реализации:
- str() – без параметров. В этом случае функция возвращает пустую строку;
- str(x) – с параметром x . Параметр x есть объектом некоторого типа. Данный вызов может также содержать еще два дополнительных параметра, которые определяют систему кодирования (по умолчанию система кодирования устанавливается utf-8) и схему обработки ошибок (по умолчанию установлена схема вызова исключения типа UnicodeError).
Результат функции str() может использоваться для вывода в функции print() .
Пример.
3. Функция repr() . Преобразование в строку как литерал
Функция repr() реализует преобразование в строку таким образом, если бы эта строка была литералом в программном коде.
Функция repr() может быть применена к:
- целым числам;
- числам с плавающей запятой;
- строкам символов.
Пример 1. Конвертировать целое число в строку, которая представлена литералом.
Пример 2. Конвертировать в строку число с плавающей запятой.
Пример 3. Конвертировать строку символов в другую строку так если бы она была литералом.
Пример 4. Конвертирование кортежа.
4. Какое отличие между функциями repr() и str() ?
В языке Python функции repr() и str() преобразуют произвольные объекты в их строчное представление.
Разница между функциями проявляется в том, как они конвертируют строку.
Функция repr() возвращает представление строчного объекта в виде строки программного кода, которую можно выполнить чтобы воссоздать этот объект. Иными словами, функция repr() возвращает строку в виде строки. При использовании такого объекта в функции print() будут выведены ограничивающие строку кавычки (строка во вложенных кавычках).
В свою очередь, функция str() используется для конвертирования строки в строку без ее преобразования в предшествующую форму. При использовании результата функции str() в функции print() будет выведена обычная строка в одинарных кавычках.
Например.
Как видно из вышеприведенного кода, функция repr() возвращает строку как литерал
а функция str() возвращает обычную строку
5. Функция float() . Преобразование в число с плавающей запятой
Функция float() возвращает число с плавающей запятой, которое может быть образовано от другого числа или от строки. Функция может вызываться одним из двух способов:
- float() – без параметра. В этом случае возвращается значение 0.0;
- float(x) – где параметр x задает число или строку, которую нужно конвертировать.
В качестве входного параметра или исходного результата функция может использовать грамматические символы:
- «Infinity» или «inf» – обозначают бесконечность. Бесконечность может быть отрицательной: «-Infinity» или «-inf» ;
- «nan» – обозначает неопределенность.
Пример.
6. Функции ord() и chr() . Преобразование кодов символов
Функции ord() и chr() используются для одиночных символов. Эти функции являются инверсными друг к другу.
Функция chr() позволяет получать символ на основе его кода. Функция ord() позволяет получить код на основе представления символа.
Общая форма вызова функции chr() следующая
где c – символьное представление символа с Unicode-кодом i .
Общая форма вызова функции ord()
где i – код символа c .
Пример.
7. Можно ли в Python сложить строку с числом?
Нет, нельзя. Если нужно сложить число в форме строки, то для этого используется соответствующая функция преобразования. Если нужно сложить две строки (конкатенация строк), то число конвертируется в строку с помощью соответствующей функции.
How To Concatenate String and Int in Python

Python supports string concatenation using the + operator. In most other programming languages, if we concatenate a string with an integer (or any other primitive data types), the language takes care of converting them to a string and then concatenates it.
However, in Python, if you try to concatenate a string with an integer using the + operator, you will get a runtime error.
Example
Let’s look at an example for concatenating a string ( str ) and an integer ( int ) using the + operator.
The desired output is the string: Year is 2018 . However, when we run this code we get the following runtime error:
So how do you concatenate str and int in Python? There are various other ways to perform this operation.
Prerequisites
In order to complete this tutorial, you will need:
- Familiarity with installing Python 3. And familiarity with coding in Python. How to Code in Python 3 series or using VS Code for Python.
This tutorial was tested with Python 3.9.6.
Using the str() Function
We can pass an int to the str() function it will be converted to a str :
The current_year integer is returned as a string: Year is 2018 .
Using the % Interpolation Operator
We can pass values to a conversion specification with printf-style String Formatting:
The current_year integer is interpolated to a string: Year is 2018 .
Using the str.format() function
We can also use the str.format() function for concatenation of string and integer.
The current_year integer is type coerced to a string: Year is 2018 .
Using f-strings
If you are using Python 3.6 or higher versions, you can use f-strings, too.
The current_year integer is interpolated to a string: Year is 2018 .
Conclusion
You can check out the complete Python script and more Python examples from our GitHub repository.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
Python: Concatenate a String and Int (Integer)

In this tutorial, you’ll learn how to use Python to concatenate a string and an int (integer). Normally, string concatenation is done in Python using the + operator. However, when working with integers, the + represents addition. Because of this, Python will raise an error, a TypeError to be exact, when the program is run.
By the end of reading this tutorial, you’ll have learned how to use Python to concatenate a string and an int using a number of methods. You’ll have learned how to use the str() function, the .format() method, % format specifier, and – my personal favourite – Python f-strings.
The Quick Answer: Use f-strings or str() to Concatenate Strings and Ints in Python

Table of Contents
Concatenate a String and an Int in Python with +
In many programming languages, concatenating a string and an integer using the + operator will work seamlessly. The language will handle the conversion of the integer into a string and the program will run fine. In Python, however, this is not the case. Due to the dynamic typing nature of Python, the language cannot determine if we want to convert the string to an integer and add the values, or concatenate a string and an int. Because of this, the program will encounter a TypeError .
Let’s see what this looks like when we simply try to concatenate a string and an integer in Python using the + operator:
The TypeError that’s raised specifically tells us that a string and an integer cannot be concatenated. Because of this, we first need to convert our integer into a string. We can do this using the string() function, which will take an input and convert it into a string, if possible.
Let’s try running our running program again, but this time converting the int into a string first:
We can see that by first converting the integer into a string using the string() function, that we were able to successfully concatenate the string and integer.
In the next section, you’ll learn how to use Python f-strings to combine a string and an integer.
Concatenate a String and an Int in Python with f-strings
Python f-strings were introduced in version 3.6 of Python and introduced a much more modern way to interpolate strings and expressions in strings. F-strings in Python are created by prepending the letter f or F in front of the opening quotes of a string. Doing so allows you to include expressions or variables inside of curly braces that are evaluated and converted to strings at runtime.
Because of the nature of f-strings evaluating expressions into strings, we can use them to easily concatenate strings and integers. Let’s take a look at what this looks like:
One of the great things about f-strings in Python is how much more readable they are. They provide us with a way to make it immediately clear which variables are being joined and how they’re being joined. We don’t need to wonder about why we’re converting an integer into a string, but just know that it’ll happen.
In the next section, you’ll learn how to use the .format() method to combine a string and an integer in Python.
Concatenate a String and an Int in Python with format
The Python .format() method works similar to f-strings in that it uses curly braces to insert variables into strings. It’s available in versions as far back as Python 2.7, so if you’re working with older version this is an approach you can use.
Similar to Python f-strings, we don’t need to worry about first converting our integer into a string to concatenate it. We can simply pass in the value or the variable that’s holding the integer.
Let’s see what this looks like:
We can see here that this approach returns the desired result. While this approach works just as well as the others, the string .format() method can be a little difficult to read. This is because the values placed into the placeholders are not immediately visible.
In the next section, you’ll learn how to concatenate a string an int in Python using the % operator.
Concatenate a String and an Int in Python with %
In this final section, you’ll learn how to use % operator to concatenate a string and an int in Python. The % operator represents an older style of string interpolation in Python. We place a %s into our strings as placeholders for different values, similar to including the curly braces in the example above.
Let’s see how we can combine a string and an integer in Python:
We can see that this returns the same, expected result. This approach, however, is the least readable of the four approaches covered here. It’s included here more for completeness, rather than as a suggested approach.
Conclusion
In this tutorial, you learned how to use Python to concatenate a string and an int. You learned why this is not as intuitive as in other languages, as well as four different ways to accomplish this. You learned how to use the + operator with the string() function, how to use Python f-strings, and how to use the .format() method and the % operator for string interpolation.
To learn more about the Python string() function, check out the official documentation here.