Содержание

Как преобразовать строку в число в Python

При написании кода нам довольно часто приходится переходить с одного типа данных на другой. Поэтому возможность конвертировать типы данных очень важна. Она дает нам большую гибкость при работе с информацией и в написании эффективно и корректно работающего кода.

В Python есть различные встроенные способы преобразования типов. Мы уже разбирали, как преобразовать строку в число с плавающей точкой. В этой статье мы остановимся на том, как преобразовать строку в целое число.

Итак, давайте начнем!

Типы данных в Python

Python поддерживает много типов данных. Они нужны для определения, представления и обработки различных видов данных, которые существуют и используются в компьютерных программах.

Кроме того, с разными типами данных нам доступны разные операции: то, что вы можете сделать с данными одного типа, невозможно сделать с другими. Например, в Python есть строковые методы, которые используются исключительно для работы со строками. К примеру, .lowercase() и .uppercase() для приведения символов строки в нижний и верхний регистр. И таких примеров очень много. Фактически, подавляющее большинство методов подходят только для какого-то одного типа данных.

Одним из типов данных Python являются строки. Строки – это последовательности символов, которые используются для передачи текстовой информации.

Строки заключаются в одинарные или двойные кавычки. К примеру, это может выглядеть следующим образом:

fave_phrase = "Hello world!" # Hello world! - это строка, заключенная в двойные кавычки

Инты или интеджеры (integers) – это целые числа. Они используются для представления числовых данных. Более того, при работе с целыми числами вы можете выполнять любые математические операции (например, сложение, вычитание, умножение или деление).

Целые числа не заключаются в одинарные или двойные кавычки. Они представляются просто в виде последовательности цифр:

fave_number = 7
# 7 имеет тип int, это целое число
# "7" было бы не int, а string, несмотря на то, что это цифра
# Все дело в кавычках

Английский для программистов

Наш телеграм канал с тестами по английскому языку для программистов. Английский это часть карьеры программиста. Поэтому полезно заняться им уже сейчас

Подробнее

×

Преобразование типов данных

Бывает, данные хранятся или получаются от пользователя в неподходящем формате, т.е. тип этих данных не подходит для манипуляций, которые с ними нужно проделать.

Поскольку каждым типом данных можно управлять по-разному, это часто означает, что перед выполнением наших задач нам нужно преобразовать этот тип данных в более подходящий для конкретной задачи.

Преобразование одного типа данных в другой также называется приведением типа или преобразованием типа. Многие языки предлагают встроенные операторы приведения именно для этого – для явного преобразования одного типа в другой.

Давайте, наконец, посмотрим, как же это сделать.

Как преобразовать строку в число (int) в Python

Чтобы преобразовать строку в целое число, можно использовать встроенную функцию

int().

Функция принимает в качестве параметра исходную строку, которую вы хотите преобразовать, и возвращает целочисленный эквивалент переданного вами значения.

Общий синтаксис выглядит примерно следующим образом: int("str").

Давайте рассмотрим следующий пример, где необходимое нам число представлено в виде строки:

# цифра 7 в строковом формате
print("7")
# проверяем тип данных при помощи метода type()
print(type("7"))
# Результат
# 7
# <class 'str'>

Чтобы преобразовать строковую версию числа в целочисленный эквивалент, нам нужно воспользоваться функцией int(). К примеру, это можно сделать следующим образом:

# конвертируем string в int
print(int("7"))
# проверяем тип данных при помощи метода type()
print(type(int("7")))
# Результат
#7
#<class 'int'>

Практический пример преобразования строки в целое число

Допустим, вам необходимо рассчитать возраст пользователя. Вы делаете это на основе полученной от него информации. Данный ввод всегда будет идти в строковом формате.

То есть, даже если пользователь вводит число, вы получите входящие данные строкового типа (<class 'str'>).

Если вы захотите выполнить математические операции с этим инпутом, например вычесть введённое значение из другого числа, вы получите сообщение об ошибке, потому что выполнять математические операции со строками нельзя.

Давайте разберем пример, чтобы увидеть, как это происходит в действии:

current_year = 2021 # просим пользователя ввести его год рождения user_birth_year_input = input("What year were you born? ") # вычитаем текущий год из года, введенного пользователем user_age = current_year - user_birth_year_input print(user_age) # Результат # What year were you born? 1993 # Traceback (most recent call last): # File "demo. py", line 9, in <module> # user_age = current_year - user_birth_year_input # TypeError: unsupported operand type(s) for -: 'int' and 'str'

Итак, мы просим пользователя ввести его год рождения, чтобы на основе этой информации узнать его возраст (вычесть введенный год из 2021). В данном примере, для упрощения задачи, мы не учитываем месяц и дату рождения. Здесь главное понять принцип.

Однако запустив наш код, мы получаем ошибку. В ней сказано, что вычитание не может выполняться между целым числом int и строкой.

Давайте проверим тип данных, введенных с помощью метода type():

current_year = 2021
# просим пользователя ввести его год рождения
user_birth_year_input = input("What year were you born? ")
print(type(user_birth_year_input))
# Результат
# What year were you born? 1993
# <class 'str'>

Действительно, переменная user_birth_year_input является строковой. Всё дело в том, что функция input(), которую мы используем для получения данных от пользователя, всегда возвращает данные строкового типа. Это важно помнить и преобразовывать введенные данные в подходящий для вашей задачи тип.

В нашем примере, чтобы избежать ошибок, нужно преобразовать вводимые пользователем данные в целое число и сохранить его в новой переменной. Сделать это можно следующим образом:

current_year = 2021
# просим пользователя ввести его год рождения
user_birth_year_input = input("What year were you born? ")
# конвертируем пользовательский input в int при помощи функции int() и сохраняем в новой переменной
user_birth_year = int(user_birth_year_input)
# вычитаем текущий год из введенного пользователем года
user_age = current_year - user_birth_year
print(user_age)
# Результат
# What year were you born? 1993
# 28

Как видите, код отработал корректно, и мы получили возраст пользователя.

Важно отметить, что функция int() выдаст вам ошибку, если исходная строка будет содержать какие-либо ещё символы помимо цифр. Например, если пользователь (по ошибке или специально) введет 19f8 в качестве года рождения, то вы получите ошибку. В таком случае важно прописывать так называемую «защиту от дурака». Это можно сделать с помощью конструкции try except, подробнее про это можно почитать в статье «Обрабатываем исключения в Python: try и except».

Заключение

Вот и все – теперь вы знаете, как преобразовать строку в число в Python! Мы разобрали такой встроенный метод как int(), как он работает и как его использовать для приведения строки к целому числу.

Спасибо за чтение! Надеемся, статья была вам полезна. Успехов в написании кода!

Перевод статьи «Python Convert String to Int – How to Cast a String in Python».

Английский для программистов

Наш телеграм канал с тестами по английскому языку для программистов. Английский это часть карьеры программиста. Поэтому полезно заняться им уже сейчас

Подробнее

×

Преобразование строк в числа и Чисел в строки в Python

Автор оригинала: Guest Contributor.

Вступление

Python позволяет конвертировать строки, целые числа и поплавки взаимозаменяемо несколькими различными способами. Самый простой способ сделать это-использовать базовые функции str() , int () и float () . Кроме того, есть еще несколько других способов.

Прежде чем мы перейдем к преобразованию строк в числа и преобразованию чисел в строки, давайте сначала немного посмотрим, как строки и числа представлены в Python.

Примечание : Для простоты запуска и демонстрации этих примеров мы будем использовать интерпретатор Python.

Строки

Строковые литералы в Python объявляются путем окружения символа двойными (“) или одинарными кавычками (‘). Строки в Python на самом деле являются просто массивами с Юникодом для каждого символа в качестве элемента массива, что позволяет использовать индексы для доступа к одному символу из строки.

Например, мы можем получить доступ к отдельным символам этих строк, указав индекс:

>>> stringFirst = "Hello World!" >>> stringSecond = 'Again!' >>> stringFirst[3] 'l' >>> stringSecond[3] 'i'

Цифры

Число в Python может быть integer , float или complex .

Целые числа могут быть положительным или отрицательным целым числом. Начиная с Python 3, целые числа неограниченны и могут содержать практически любое число. До Python 3 верхняя граница была 2 31 -1 для 32-битных сред выполнения и 2 63 -1 для 64-битных сред выполнения.

Поплавки также имеют неограниченную длину, но число с плавающей запятой должно содержать десятичную точку.

Сложные числительные должны иметь мнимую часть, которая обозначается через j :

>>> integerFirst = 23
>>> floatFirst = 23.23
>>> complextFirst = 1 + 23j

Преобразование строк в цифры

Использование функции int()

Если вы хотите преобразовать строку в целое число, самым простым способом будет использовать функцию int () . Просто передайте строку в качестве аргумента:

>>> x = "23"
>>> y = "20"
>>> z = int(x) - int(y)
>>> z
3

Это работает , как и ожидалось, когда вы передаете строковое представление целого числа в int () , но вы столкнетесь с проблемами, если строка, которую вы передаете, не содержит целочисленного значения. Если в вашей строке есть какие-либо нечисловые символы, то int() вызовет исключение:

>>> x = "23a"
>>> z = int(x)
Traceback (most recent call last):
  File "", line 1, in 
ValueError: invalid literal for int() with base 10: '23a'

Это же исключение будет вызвано даже при передаче допустимой строки float:

>>> x = "23. 4"
>>> z = int(x)
Traceback (most recent call last):
  File "", line 1, in 
ValueError: invalid literal for int() with base 10: '23.4'

Функция int() имеет еще одну полезную функцию, помимо простого преобразования строк в целые числа, она также позволяет преобразовывать числа из любой базы в целое число с основанием 10. Например, мы можем преобразовать следующую двоичную строку в целое число base 10 с помощью параметра base :

>>> int('1101100', base=2)
108

То же самое можно сделать и для любой другой базы, например шестнадцатеричной (база 16):

>>> int('6C', base=16)
108
Использование функции float()

Преобразование строковых литералов в поплавки осуществляется с помощью функции float() :

>>> x = "23. 23"
>>> y = "23.00"
>>> z = float(x) - float(y)
>>> z
0.23000000000000043

Обратите внимание, что полученное значение не совсем точно, как и должно быть 0.23 . Это связано с проблемами floating point math , а не с преобразованием строки в число.

Функция float() обладает немного большей гибкостью, чем функция int () , поскольку она может анализировать и преобразовывать как плавающие, так и целые числа:

>>> x = "23"
>>> y = "20"
>>> z = float(x) - float(y)
>>> z
3.0

В отличие от int() , float() не вызывает исключения, когда получает неплавающее числовое значение.

Однако он вызовет исключение, если ему будет передано нечисловое значение:

>>> x = "23a"
>>> z = float(x)
Traceback (most recent call last):
  File "", line 1, in 
ValueError: could not convert string to float: '23a'

В то время как float() does not have the ability to convert non-base 10 numbers like int() does, it does have the ability to convert numbers represented in scientific notation (aka e-notation):

>>> float('23e-5')
0. 00023
>>> float('23e2')
2300.0
Использование функции complex()

Преобразование строковых литералов в комплексные числа осуществляется с помощью функции complex () . Для этого строка должна следовать определенному форматированию. В частности, он должен быть отформатирован без пробелов вокруг операторов + или - :

>>> x = "5+3j"
>>> y = "3+1j"
>>> z = complex(x) + complex(y)
>>> z
(8+4j)

Наличие каких – либо дополнительных пробелов между операторами + или - приведет к возникновению исключения:

>>> z = complex("5+ 3j")
Traceback (most recent call last):
  File "", line 1, in 
ValueError: complex() arg is a malformed string

Как и функция float () , функция complex() также более расслаблена в типах чисел, которые она допускает. Например, мнимая часть числа может быть полностью опущена, а также могут быть проанализированы как целые числа, так и поплавки:

>>> complex("1")
(1+0j)
>>> complex("1.2")
(1.2+0j)

Однако, как вы можете видеть, это не следует использовать в качестве более гибкой замены для int /| float , поскольку он автоматически добавляет мнимую часть числа к строковой версии.

Преобразование цифр в строки

Использование функции str()

Функция str() может быть использована для изменения любого числового типа на строку.

Функция str() доступна в Python 3.0+, так как строки в Python 3. 0+ по умолчанию являются Unicode. Однако это не относится к версиям Python ниже 3.0 – в которых для достижения той же цели используется функция unicode() :

>>> str(23)   # Integer to String
'23'
>>> str(23.3) # Float to String
'23.3'
>>> str(5+4j) # Complex to String
'(5+4j)'

Самое приятное в str() то, что он может обрабатывать преобразование любого типа числа в строку, поэтому вам не нужно беспокоиться о выборе правильного метода в зависимости от того, какой тип числа вы преобразуете.

Использование функции format()

Другим способом преобразования цифр в строки является использование функции format () , которая позволяет установить заполнители внутри строки, а затем преобразовать другой тип данных в строку и заполнить заполнители.

Чтобы использовать эту функцию, просто напишите строку, за которой следует .format () , и передайте аргументы для заполнителей.

Вот пример:

>>> "My age is {}".format(21)
'My age is 21'

Аргументы в функции .format() также можно ссылаться по отдельности, используя их позиции или имена переменных:

>>> "You get {product} when you multiply {1} with {0}". format(5.5, 3, product=16.5)
'You get 16.5 when you multiply 3 with 5.5'

Обратите внимание, что под капотом функция .format() просто использует str() для преобразования аргументов в строки. Таким образом, по сути, это тот же способ преобразования чисел в строки, что и в предыдущем разделе, но .format() действует как удобная функция для форматирования строки.

Вывод

Python позволяет конвертировать строки, целые числа и поплавки взаимозаменяемо несколькими различными способами. Самый простой способ сделать это-использовать базовые функции str() , int () и float () . Кроме того, есть еще несколько способов, таких как функция format () . Просто имейте в виду, что функции int () , float () и complex() имеют свои ограничения и могут вызывать исключения, если входная строка отформатирована не совсем так, как они ожидают.

python — Перевод списка строк в список чисел

Различные способы выполнить это преобразование:

  1. Изменяя непосредственно элементы массива

    for i, elem in enumerate(array):
        array[i] = int(elem)
    
  2. Создавая новый массив вместо старого

    array = [int(elem) for elem in array]
    

    или

    array = list(map(int, array))
    

Вот более подробное объяснение происходящего:

Для начала вспомним, что все переменные в Python являются ссылками на объекты.

Пусть у нас будет массив array со следующим содержимым:

array = ['10', '11', '12']

Вот как это будет представляться в памяти в Python (idN — это адрес объекта в памяти):

Заметьте, что строки не хранятся напрямую в списке, они хранятся снаружи, а в списке есть указатели на них.


Когда вы перебираете значения в цикле, например,

for elem in array:
    elem = int(elem)

На каждой итерации переменная elem просто будет указывать на текущее число массива array.

Например, на первой итерации:

Если мы попробуем присвоить что-то переменной elem, то мы просто заменим то, на что она будет указывать на текущей итерации цикла:

Заметьте, что в массиве при этом ссылка не меняется, и нулевой элемент как указывал на строку "10", так и продолжает на неё указывать:

Т.е. наша задача на самом деле заключается в том, чтобы заменить ссылку, хранящуюся в списке array на новую, т. е. в нашей визуализации на id5.


Чтобы это сделать, нам нужно получить доступ на запись в конкретную ячейку списка. Список позволяет сделать это через доступ по индексу. Напишем следующий код (подобный которому как раз используется вами в собственном ответе):

array = ['10', '11', '12']
for i in range(len(array)):
    old_value = array[i]
    new_value = int(old_value) 
    array[i] = new_value

Я расписал в несколько строк для наглядности.

Здесь на первой итерации цикла мы получаем переменную i, хранящую не ссылку на строку, а позицию в списке array, в которой нам нужно заменить ссылку:

Далее получаем строку, хранящуюся по этому индексу для того, чтобы преобразовать её в число (здесь она сохраняется в отдельной переменной, в вашем коде это будет временный объект):

old_value = array[i]

Имея значение элемента, мы можем выполнить над ним интересующую нас операцию. Снова сохраним его в отдельной переменной.

new_value = int(old_value) 

Имея новое значение и индекс, по которому его нужно сохранить в нашем списке, у нас не остаётся проблем, чтобы завершить выполнение итерации, сохранив новое значение в нужном месте:

array[i] = new_value

Таким образом и производится изменение значений массива.

Приведу для сравнения краткую запись этого кода:

for i in range(len(array)):
    array[i] = int(array[i])

Важно понимать, что на самом деле количество операций в этом варианте и в более полном варианте будет примерно одинаковое (за вычетом создания лишних переменных).


Если скомбинировать оба этих способа, можно получить немного более удобную запись этого же преобразования:

for i, elem in enumerate(array):
    array[i] = int(elem)

Функция enumerate для нашего списка вернёт последовательность вида

[(0, '10'), (1, '11'), (2, '12')]

Такой цикл избавляет нас от необходимости писать самостоятельно доступ по индексу массива. Важно понимать, что переменная elem и здесь не даёт нам доступа на запись в массив, она просто хранит указатель на объект, хранящийся по текущему индексу в списке.


Эти способы имеют смысл, если нам важно изменять именно элементы списка. Например, если у нас есть больше одной переменной, хранящей этот список, и нам нужно сделать так, чтобы во всех переменных при доступе по индексу мы после преобразования получали целые числа вместо строк.

Такие ситуации встречаются, например, когда мы пишем функцию, которая должна изменить значения в переданном списке вместо создания нового.


Если же нам не требуется изменять этот список, а достаточно создания нового, в котором будут храниться целочисленные представления соответствущих элементов, то можно воспользоваться встроенной функцией map, как предложил @ReinRaus:

array = list(map(int, array))

Только стоит помнить, что в Python 3 функция map возвращает генератор, поэтому стоит явно преобразовать результат в список.

Ещё один удобный способ получения такого же результата, это использование генератора списков:

array = [int(elem) for elem in array]

Оба этих решения эквивалентны и являются аналогом следующего кода:

result_array = []
for elem in array:
    result_array.append(int(elem))
array = result_array

Эти решения оставляют исходный список неизменным, создавая новый и только после присваивая его переменной array.


Продемострирую разницу этих способов на примере:

array = ['10', '11', '12']
link = array

Важно понимать, что здесь обе переменные будут указывать на один и тот же список, а не являться двумя списками с одинаковыми значениями (здесь все ссылки явно отрисованы стрелками):

Выполним преобразование, изменяя элементы списка:

array = ['10', '11', '12']
link = array
print(array, link)    # ['10', '11', '12'] ['10', '11', '12']
for i, elem in enumerate(array):
    array[i] = int(elem)
print(array, link)    # [10, 11, 12] [10, 11, 12]

Как мы видим, массив непосредственно изменился, а вместе с ним изменились данные, которые доступны по переменным, указывающим на этот список:

Если же воспользоваться вторым способом

array = ['10', '11', '12']
link = array
print(array, link)    # ['10', '11', '12'] ['10', '11', '12']
array = list(map(int, array))
print(array, link)    # [10, 11, 12] ['10', '11', '12']

то ещё по выводу программы можно заметить, что содержимое исходного списка не изменилось. Итоговая картина объектов будет выглядеть так:

Мы видим, что был создан новый список, в котором были сохранены числовые представления значений исходного.


Для визуализации использовался сервис pythontutor.com.

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 должен быть строчным, другие типы в этом случае запрещаются.

Пример.

# Функция int()
# 1. Вызов без параметров
a = int() # a = 0

# 2. Вызов с целочисленным значением
a = int(15) # a = 15

# 3. Вызов с числом с плавающей запятой
a = int(2.85) # a = 2

# 4.  Вызов со строкой
s = '28'
a = int(s) # a = 28

# 5. Вызов с конвертированием в другую систему исчисления - только для строк

# конвертировать 155 из 16-й системы в десятичную
s = '155'
a = int(s, 16) # a = 341, значение 155 в 16-й системе

# конвертировать 111 из двоичной системы в десятичную
s = '111'
a = int(s, 2) # a = 7

# 6. Так нельзя
# a = int(111,2) - ошибка, нельзя конвертировать число, должна быть строка

  ⇑

2. Функция str(). Преобразование в строку

Функция str() есть конструктором класса str. Функция возвращает объект в виде строки. Функция используется для конвертирования из одного типа (например числового) в строчный тип.

Функция имеет две реализации:

  • str() – без параметров. В этом случае функция возвращает пустую строку;
  • str(x) – с параметром x. Параметр x есть объектом некоторого типа. Данный вызов может также содержать еще два дополнительных параметра, которые определяют систему кодирования (по умолчанию система кодирования устанавливается utf-8) и схему обработки ошибок (по умолчанию установлена схема вызова исключения типа UnicodeError).

Результат функции str() может использоваться для вывода в функции print().

Пример.

# Функция str()
# 1. Вызов с целым числом
x = 25
s = str(x) # s = '25' - строка символов

# 2. Вызов с числом с плавающей запятой
y = 2.338
s = str(y) # s = '2.338'

# 3. Вызов со строкой
s = str("3.778") # s = '3.778'

# 4. Вызов со строкой, которая не отображает число
s = str("abcdef") # s = 'abcdef'

# 5. Вызов без параметров
s = str() # s = ''

  ⇑

3. Функция repr(). Преобразование в строку как литерал

Функция repr() реализует преобразование в строку таким образом, если бы эта строка была литералом в программном коде.
Функция repr() может быть применена к:

  • целым числам;
  • числам с плавающей запятой;
  • строкам символов.

Пример 1. Конвертировать целое число в строку, которая представлена литералом.

# Функция repr()

# конвертировать целое число в строку
number = 25
snumber = repr(number) # snumber = '25' - как строка символов

number = -100029
snumber = repr(number) # snumber = '-100029' - как строка символов

Пример 2. Конвертировать в строку число с плавающей запятой.

# Функция repr()
# конвертировать число с плавающей запятой в строку
number = 25.233
snumber = repr(number) # snumber = '25.233'

snumber = repr(-1e-2) # snumber = '-0.01'

Пример 3. Конвертировать строку символов в другую строку так если бы она была литералом.

# Функция repr()
# конвертировать строку в строку
s1 = 'Text string'
s2 = repr(s1) # s2 = "'Text string'"

s1 = "Text string"
s2 = repr(s1) # s2 = "'Text string'"

Пример 4. Конвертирование кортежа.

# Функция repr() - обработка кортежа
x = ( 2.85, 15, 'Hello')
str_x = repr(x) # str_x = "(2.85, 15, 'Hello')"


  ⇑

4. Какое отличие между функциями repr() и str()?

В языке Python функции repr() и str() преобразуют произвольные объекты в их строчное представление.

Разница между функциями проявляется в том, как они конвертируют строку.
Функция repr() возвращает представление строчного объекта в виде строки программного кода, которую можно выполнить чтобы воссоздать этот объект. Иными словами, функция repr() возвращает строку в виде строки. При использовании такого объекта в функции print() будут выведены ограничивающие строку кавычки (строка во вложенных кавычках).
В свою очередь, функция str() используется для конвертирования строки в строку без ее преобразования в предшествующую форму. При использовании результата функции str() в функции print() будет выведена обычная строка в одинарных кавычках.

Например.

# Функции repr() и str()
# конвертировать строку в строку
s1 = 'Text string'

# функция repr()
s2 = repr(s1) # s2 = "'Text string'"

# функция str()
s3 = str(s1) # s3 = 'Text string'

Как видно из вышеприведенного кода, функция repr() возвращает строку как литерал

"'Text string'"

а функция str() возвращает обычную строку

'Text string'

  ⇑

5.
Функция float(). Преобразование в число с плавающей запятой

Функция float() возвращает число с плавающей запятой, которое может быть образовано от другого числа или от строки. Функция может вызываться одним из двух способов:

  • float() – без параметра. В этом случае возвращается значение 0.0;
  • float(x) – где параметр x задает число или строку, которую нужно конвертировать.

В качестве входного параметра или исходного результата функция может использовать грамматические символы:

  • «Infinity» или «inf» – обозначают бесконечность. Бесконечность может быть отрицательной: «-Infinity» или «-inf»;
  • «nan» – обозначает неопределенность.

Пример.

# Функция float() - возвращает число с плавающей запятой
# 1. Результат получается из числа
a = 25 # целое число
x = float(a) # x = 25.0

b = 21.555e-2 # число с плавающей запятой
x = float(b) # x = 0.21555

# 2.  Результат получается из строки
# s = 'abcdef' - ошибка, строка не имеет вида числа
# x = float(s)

# строка в экспоненциальном формате
s = '-1.23e-2'
x = float(s) # x = -0.0123

# строка в обычном формате
s = "288.75"
x = float(s) # x = 288.75 - как число

# использование в выражении
x = float(5.2)+float(3.8)*float(-2.1) # x = -2.7799999999999994

# использование со знаком +
x = float('+2.34') # x = 2.34

# использование со словом "Infinity" или "inf"
x = float("Infinity") # x = inf
x = float('-inf') # x = -inf - с отрицательным знаком

# использование со словом "nan"
x = float("nan") # x = nan

x = float() # x = 0.0

  ⇑

6. Функции ord() и chr(). Преобразование кодов символов

Функции ord() и chr() используются для одиночных символов. Эти функции являются инверсными друг к другу.
Функция chr() позволяет получать символ на основе его кода. Функция ord() позволяет получить код на основе представления символа.

Общая форма вызова функции chr() следующая

c = chr(i)

где c – символьное представление символа с Unicode-кодом i.

Общая форма вызова функции ord()

i = ord(c)

где i – код символа c.

Пример.

# Функции chr() и ord()
# 1. Функция chr()
code = 49 # код в десятичной системе исчисления
symbol = chr(code) # symbol = '1' - цифра '1'

code = 100
symbol = chr(code) # symbol = 'd'

code = 7785
symbol = chr(code) # symbol = 'ṩ' - кодирование Unicode

# 2. Функция ord
symbol = '5'
code = ord(symbol) # code = 53

symbol = 'ṩ'
code = ord(symbol) # code = 7785

symbol = ' ' # символ пробел
code = ord(symbol) # code = 32

  ⇑

7.
Можно ли в Python сложить строку с числом?

Нет, нельзя. Если нужно сложить число в форме строки, то для этого используется соответствующая функция преобразования. Если нужно сложить две строки (конкатенация строк), то число конвертируется в строку с помощью соответствующей функции.

Пример.

# Сложить строку с числом не получится
s = '25' # это строка
a = 30 # это число

# Случай 1. Сложить (суммировать) два числа
# Предварительно нужно конвертировать строку в число
b = int(s)
res = a + b
print('As numbers: a + s = ', res)

# Случай 2. Сложить две строки
# Предварительно нужно конвертировать число в строку
res_str = str(a) + s
print('As strings: a + s = ', res_str)

Результат выполнения программы

As numbers: a + s = 55
As strings: a + s = 3025

  ⇑


Связанные темы

  • Строки. Общие понятия. Объявление строки. Операции над строками. Примеры
  • Экранированные последовательности. Неформатированные строки. Многострочные блоки текста
  • Доступ по индексам. Срезы. Получение фрагмента строки. Примеры

  ⇑


 

Как преобразовать строку в число python

Все типы данных в Python, включая целые числа и строки, являются объектами. Часто при написании кода Python вам необходимо преобразовать один тип данных в другой. Например, чтобы выполнить математическую операцию с числом, представленным в виде строки, его необходимо преобразовать в целое число.

В этой статье мы покажем вам, как преобразовать строку Python в целое число.

Функция Python int()

Встроенная функция int() возвращает десятичный целочисленный объект из заданного числа или строки. Он имеет следующий вид:

Функция принимает два аргумента:

  • x — строка или число, которое нужно преобразовать в целое число.
  • base — представляет собой систему счисления первого аргумента. Его значение может быть 0 и 2–36. Это необязательный аргумент. Если база не указана, по умолчанию используется 10 (десятичное целое число).

Обычно целые числа выражаются в шестнадцатеричной (основание 16), десятичной (основание 10), восьмеричной (основание 8) или двоичной (основание 2) нотации.

Если данная строка не может быть представлена как целое число, функция вызовет исключение ValueError .

Преобразование строки Python в целое число

В Python «строка» — это список символов, который объявляется с использованием одинарных ( ‘ ), двойных ( » ) или тройных кавычек ( «»» ).

Если переменная, содержащая только числа, объявляется с использованием кавычек, ее тип данных устанавливается на String. Рассмотрим следующий пример:

Функция type() показывает нам, что переменная days является объектом String .

Попробуем произвести математическую операцию с переменной:

Python TypeError исключения TypeError потому что он не может выполнить вычисление сложения со строкой и целым числом:

Чтобы преобразовать строковое представление десятичного целого числа в int , передайте строку в функцию int() , которая возвращает десятичное целое число:

Если вы сейчас попытаетесь выполнить вычисления, операция суммирования будет выполнена успешно:

Если число включает запятые, отмеченные тысячами, миллионами и т. Д., Вам необходимо удалить запятые перед передачей числа в функцию int() :

При преобразовании строк, представляющих целые числа в разных системах счисления, убедитесь, что вы используете правильное base .

Например, в шестнадцатеричной системе число 54732 представлено как D5CF . Чтобы преобразовать его в десятичное целое, вам нужно использовать основание 16:

Если вы D5CF строку D5CF в функцию int() без установки базы, она выдаст исключение ValueError :

Выводы

В Python вы можете преобразовать строку в целое число с помощью функции int() .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

у меня есть кортеж кортежей из запроса MySQL, как это:

Я хотел бы преобразовать все строковые элементы в целые числа и вернуть их в список списков:

Я пытался достичь этого с eval но пока не получил достойного результата.

13 ответов

int() является стандартной встроенной функцией Python для преобразования строки в целое значение. Вы вызываете его со строкой, содержащей число в качестве аргумента, и он возвращает число, преобразованное в целое число:

если вы знаете структуру своего списка, T1 (что он просто содержит списки, только один уровень), вы можете сделать это в Python 2:

вы можете сделать это с пониманием списка:

понимание внутреннего списка ( [int(column) for column in row] ) строит list of int s из последовательности int -able объекты, такие как десятичные строки, в row . Понимание внешнего списка ( [. for row in T1]) ) строит список результатов внутреннего понимания списка, примененного к каждому элементу в T1 .

фрагмент кода завершится ошибкой, если любая из строк содержит объекты, которые не могут быть преобразованы int . Вам понадобится функция smarter, если вы хотите обрабатывать строки, содержащие не десятичные строки.

если вы знаете структуру строк, вы можете заменить внутреннее понимание списка вызовом функции строки. Например.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками python python-3.

x или задайте свой вопрос.

дизайн сайта / логотип © 2022 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2022.1.7.41110

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Это снова вопрос читателя. На этот раз я на незнакомой территории, программирую. К счастью, я знаю человека, который может, и он был достаточно любезен, чтобы помочь мне с ответом. Вопрос был в том, «как вы преобразуете целое число в строку в Python?». Как всегда, я стараюсь ответить.

Python старше 25 лет и по-прежнему крепок. Это язык программирования высокого уровня, используемый для создания различных программ. Это язык «общего назначения», который можно превратить в игры, веб-приложения, процедуры AI и даже программы для настольных компьютеров. Поскольку он использует более простой язык, чем код, он очень удобен для пользователя, и даже мне удалось начать с ним разбираться. Если я могу, вы, конечно, можете!

Сначала я отвечу на вопрос читателя, а затем немного подробнее расскажу о Python, потому что я очень заинтригован им.

Преобразовать целое число в строку в Python

Целое число — это число. Преобразование числа в строку используется для таблиц и упорядоченных списков, которые играют роль во многих продуктивных приложениях, написанных на Python. Очевидно, есть несколько способов конвертировать целое число в строку в Python, но мне показали функцию ‘str ’, поэтому я буду использовать ее в примере. Другие способы включают «repr» и «% d».

Например, если вы ввели следующее в редактор Python, вы можете выполнить некоторые основные математические операции:

Математика — это 100, деленное на 52. ‘str’ добавляется с помощью (d), чтобы указать, откуда взять данные, затем выполнить сопоставление и распечатать результат. В этом случае результат составляет 1,9230769.

Немного более сложная версия:

# Используйте 8 символов, введите 2 знака после запятой

Этот код выполняет ту же математику, но указывает только два десятичных знака в результате. Таким образом, отпечаток будет 1,92.

Так вот, как преобразовать целое число в строку в Python.

Немного предыстории на Python

Как писатель для людей, я испытываю трудности с чтением или даже пониманием письма для машин. Приговоры не имеют смысла, синтаксис невозможно следовать, и я просто не понимаю его. Тем не менее, Python немного отличается. Это кажется более простым английским, чем другие языки программирования.

Это делает его очень удобным для начинающих. Вы можете быстро сделать что-то забавное или полезное с помощью языка, который доставит нам мгновенное удовлетворение. Вы также можете сделать некоторые интересные вещи. Вот почему Python сейчас более популярен, чем Java, как предпочитаемый язык программирования для многих колледжей и университетов по всему миру.

Как только вы поймете, в какой степени используется Python, он станет намного интереснее. Например, гостиницы Magic использует Python, а также Rackspace, Honeywell, Philips, AstraZenica, ForecastWatch, D-link и ряд других крупных компаний. Все они используют Python для чего-то в рамках своего бизнеса — от обработки процессов до управления данными.

Если вы когда-либо использовали дополнение Minecraft MCDungeon, оно также использует Python для создания дополнительного контента. Это также позволяет вам создавать свои собственные, если у вас есть немного знаний в области программирования.

Использование Python

Python можно скачать бесплатно здесь и регулярно разрабатывается и обновляется. Код с открытым исходным кодом и поддерживается огромным количеством разработчиков. Существует версия для Windows и Unix, доступная для бесплатной загрузки.

В настоящее время существует две версии, Python 2 и Python 3. Версия 2 является устаревшей версией языка, в то время как Python 3 является текущей и будущей версией. Если вы планируете изучать Python для конкретной программы или приложения, вам может потребоваться загрузить версию 2. Если вы хотите изучить, чтобы создать свою собственную, версия 3 подойдет. Вы можете скачать оба и запустить любой, если хотите.

После установки вы используете Python из командной строки. Откройте окно командной строки от имени администратора, введите «python3 –version» и нажмите Enter. Если вы используете версию 2, вы, очевидно, наберете «python2 –version» и нажмете Enter. После этого вы попадете в среду программирования.

Это примерно столько, сколько я получил с Python до сих пор. Это руководство из «Путеводителя автостопом по Python» поможет вам в этом, если вы захотите.

Я более грамматически склонен к этому программно, поэтому Python будет для меня трудным. Тем не менее, это пробудило во мне интерес, поэтому я наскучил вам больше информации о языке, который вы, вероятно, не хотели знать. По крайней мере, я выучил достаточно, чтобы ответить на оригинальный вопрос!

Python | Основные методы строк

Последнее обновление: 05.02.2022

Рассмотрим основные методы строк, которые мы можем применить в приложениях:

  • isalpha(): возвращает True, если строка состоит только из алфавитных символов

  • islower(): возвращает True, если строка состоит только из символов в нижнем регистре

  • isupper(): возвращает True, если все символы строки в верхнем регистре

  • isdigit(): возвращает True, если все символы строки — цифры

  • isnumeric(): возвращает True, если строка представляет собой число

  • startswith(str): возвращает True, если строка начинается с подстроки str

  • endswith(str): возвращает True, если строка заканчивается на подстроку str

  • lower(): переводит строку в нижний регистр

  • upper(): переводит строку в вехний регистр

  • title(): начальные символы всех слов в строке переводятся в верхний регистр

  • capitalize(): переводит в верхний регистр первую букву только самого первого слова строки

  • lstrip(): удаляет начальные пробелы из строки

  • rstrip(): удаляет конечные пробелы из строки

  • strip(): удаляет начальные и конечные пробелы из строки

  • ljust(width): если длина строки меньше параметра width, то справа от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по левому краю

  • rjust(width): если длина строки меньше параметра width, то слева от строки добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по правому краю

  • center(width): если длина строки меньше параметра width, то слева и справа от строки равномерно добавляются пробелы, чтобы дополнить значение width, а сама строка выравнивается по центру

  • find(str[, start [, end]): возвращает индекс подстроки в строке. Если подстрока не найдена, возвращается число -1

  • replace(old, new[, num]): заменяет в строке одну подстроку на другую

  • split([delimeter[, num]]): разбивает строку на подстроки в зависимости от разделителя

  • join(strs): объединяет строки в одну строку, вставляя между ними определенный разделитель

Например, если мы ожидаем ввод с клавиатуры числа, то перед преобразованием введенной строки в число можно проверить, с помощью метода isnumeric() введено ли в действительности число, и если так, то выполнить операцию преобразования:


string = input("Введите число: ")
if string.isnumeric():
    number = int(string)
    print(number)

Проверка, начинается или оканчивается строка на определенную подстроку:


file_name = "hello.py"

starts_with_hello = file_name.startswith("hello")   # True
ends_with_exe = file_name.endswith("exe")           # False

Удаление пробелов в начале и в конце строки:


string = "   hello  world!  "
string = string. strip()
print(string)           # hello  world!

Дополнение строки пробелами и выравнивание:


print("iPhone 7:", "52000".rjust(10))
print("Huawei P10:", "36000".rjust(10))

Консольный вывод:


iPhone 7:      52000
Huawei P10:      36000

Поиск в строке

Для поиска подстроки в строке в Python применяется метод find(), который возвращает индекс первого вхождения подстроки в строку и имеет три формы:

  • find(str): поиск подстроки str ведется с начала строки до ее конца

  • find(str, start): параметр start задает начальный индекс, с которого будет производиться поиск

  • find(str, start, end): параметр end задает конечный индекс, до которого будет идти поиск

Если подстрока не найдена, метод возвращает -1:


welcome = "Hello world! Goodbye world!"
index = welcome.find("wor")
print(index)       # 6

# поиск с 10-го индекса
index = welcome. find("wor",10)
print(index)       # 21

# поиск с 10 по 15 индекс
index = welcome.find("wor",10,15)
print(index)       # -1

Замена в строке

Для замены в строке одной подстроки на другую применяется метод replace():

  • replace(old, new): заменяет подстроку old на new

  • replace(old, new, num): параметр num указывает, сколько вхождений подстроки old надо заменить на new


phone = "+1-234-567-89-10"

# замена дефисов на пробел
edited_phone = phone.replace("-", " ")
print(edited_phone)     # +1 234 567 89 10

# удаление дефисов
edited_phone = phone.replace("-", "")
print(edited_phone)     # +12345678910

# замена только первого дефиса
edited_phone = phone.replace("-", "", 1)
print(edited_phone)     # +1234-567-89-10

Разделение на подстроки

Метод split() разбивает строку на список подстрок в зависимости от разделителя. В качестве разделителя может выступать любой символ или последовательность символов. Данный метод имеет следующие формы:

  • split(): в качестве разделителя используется пробел

  • split(delimeter): в качестве разделителя используется delimeter

  • split(delimeter, num): параметр num указывает, сколько вхождений delimeter используется для разделения. Оставшаяся часть строки добавляется в список без разделения на подстроки


text = "Это был огромный, в два обхвата дуб, с обломанными ветвями и с обломанной корой"
# разделение по пробелам
splitted_text = text.split()
print(splitted_text)
print(splitted_text[6])     # дуб,

# разбиение по запятым
splitted_text = text.split(",")
print(splitted_text)
print(splitted_text[1])     # в два обхвата дуб

# разбиение по первым пяти пробелам
splitted_text = text.split(" ", 5)
print(splitted_text)        
print(splitted_text[5])     # обхвата дуб, с обломанными ветвями и с обломанной корой

Соединение строк

При рассмотрении простейших операций со строками было показано, как объединять строки с помощью операции сложения. Другую возможность для соединения строк представляет метод join(): он объединяет список строк. Причем текущая строка, у которой вызывается данный метод, используется в качестве разделителя:


words = ["Let", "me", "speak", "from", "my", "heart", "in", "English"]

# разделитель - пробел
sentence = " ".join(words)
print(sentence)  # Let me speak from my heart in English

# разделитель - вертикальная черта
sentence = " | ".join(words)
print(sentence)  # Let | me | speak | from | my | heart | in | English

Вместо списка в метод join можно передать простую строку, тогда разделитель будет вставляться между символами этой строки:


word = "hello"
joined_word = "|".join(word)
print(joined_word)      # h|e|l|l|o

НазадСодержаниеВперед

Python Convert String to Int — как преобразовать строку в Python

При программировании вам часто приходится переключаться между типами данных.

Возможность преобразования одного типа данных в другой дает большую гибкость при работе с информацией.

В языке программирования Python существуют различные встроенные способы преобразования или приведения типов.

В этой статье вы узнаете, как преобразовать строку в целое число.

Начнем!

Типы данных в Python

Python поддерживает различные типы данных.

Типы данных используются для спецификации, представления и классификации различных видов данных, которые существуют и используются в компьютерных программах.

Также доступны разные операции с разными типами данных — одна операция, доступная для одного типа данных, часто недоступна для другого.

Одним из примеров типа данных являются строки.

Строки — это последовательности символов, используемые для передачи текстовой информации.

Они заключаются в одинарные или двойные кавычки, например:

 fave_phrase = "Привет, мир!"
#Привет, мир! это строка, заключенная в двойные кавычки
 

Целые или целые числа — это целые числа.

Они используются для представления числовых данных, и вы можете выполнять любые математические операции (такие как сложение, вычитание, умножение и деление) при работе с целыми числами.

Целые числа — это , а не , заключенные в одинарные или двойные кавычки.

 любимый_номер = 7
# 7 является целым числом
# "7" будет не int, а строкой, несмотря на то, что это число.
#Это из-за окружающих его кавычек
 

Преобразование типа данных

Иногда, когда вы сохраняете данные или когда вы получаете ввод от пользователя в одном типе, вам нужно манипулировать и выполнять различные виды операций с этими данными.

Поскольку с каждым типом данных можно манипулировать по-разному, это часто означает, что вам нужно его преобразовать.

Преобразование одного типа данных в другой также называется преобразованием типа или преобразованием типа. Многие языки предлагают встроенные операторы приведения именно для этого — для явного преобразования одного типа в другой.

Как преобразовать строку в целое число в Python

Чтобы преобразовать или преобразовать строку в целое число в Python, вы используете встроенную функцию int() .

Функция принимает в качестве параметра исходную строку, которую вы хотите преобразовать, и возвращает целочисленный эквивалент переданного вами значения.

Общий синтаксис выглядит примерно так: int("str") .

Возьмем следующий пример, где есть строковая версия числа:

 #строковая версия числа 7
распечатать("7")
#проверить тип данных с помощью метода type()
печать (тип ("7"))
#выход
#7
#<класс 'ул'>
 

Чтобы преобразовать строковую версию числа в целочисленный эквивалент, вы используете функцию int() , например:

 # преобразовать строку в тип данных int
печать (целое ("7"))
#проверить тип данных с помощью метода type()
печать (тип (int ("7")))
#выход
#7
#<класс 'целое число'>
 

Практический пример преобразования строки в целое число

Допустим, вы хотите рассчитать возраст пользователя. Вы делаете это, получая информацию от них. Этот ввод всегда будет в строковом формате.

Таким образом, даже если они введут число, это число будет .

Если вы хотите затем выполнить математические операции над этим вводом, например вычесть этот ввод из другого числа, вы получите сообщение об ошибке, поскольку вы не можете выполнять математические операции над строками.

Посмотрите пример ниже, чтобы увидеть это в действии:

 текущий_год = 2021
#попросите пользователя ввести свой год рождения
user_birth_year_input = input ("В каком году вы родились?")
#вычесть год, который ввел пользователь, из текущего года
user_age = текущий_год - user_birth_year_input
печать (возраст_пользователя)
#выход
#В каком году вы родились? 1993 г.
#Traceback (последний последний вызов):
# Файл "demo.py", строка 9, в 
# user_age = текущий_год - user_birth_year_input
#TypeError: неподдерживаемые типы операндов для -: 'int' и 'str'
 

В ошибке упоминается, что вычитание между целым числом и строкой невозможно.

Вы можете проверить тип данных ввода с помощью метода type() :

 текущий_год = 2021
#попросите пользователя ввести свой год рождения
user_birth_year_input = input ("В каком году вы родились?")
печать (тип (user_birth_year_input))
#выход
#В каком году вы родились? 1993 г.
#<класс 'ул'>
 

Чтобы обойти это и избежать ошибок, нужно преобразовать пользовательский ввод в целое число и сохранить его в новой переменной:

 текущий_год = 2021
#попросите пользователя ввести свой год рождения
user_birth_year_input = input ("В каком году вы родились?")
# преобразовать необработанный пользовательский ввод в целое число с помощью функции int() и сохранить в новой переменной
user_birth_year = int (user_birth_year_input)
#вычесть преобразованный пользовательский ввод из текущего года
user_age = текущий_год - user_birth_year
печать (возраст_пользователя)
#выход
#В каком году вы родились? 1993 г.
# 28
 

Заключение

Вот и все — теперь вы знаете, как преобразовать строки в целые числа в Python!

Если вы хотите узнать больше о языке программирования Python, у freeCodeCamp есть сертификация Python, которая поможет вам начать работу.

Вы начнете с основ и перейдете к более сложным темам, таким как структуры данных и реляционные базы данных. В конце концов, вы создадите пять проектов, чтобы отработать то, что вы узнали.

Спасибо за чтение и удачного кодирования!



Научитесь программировать бесплатно. Учебная программа freeCodeCamp с открытым исходным кодом помогла более чем 40 000 человек получить работу в качестве разработчиков. Начать

Python String to Int() и Int to String Tutorial

Как преобразовать строку Python в Int:
Чтобы преобразовать строку в целое число в Python, используйте функцию int() . Эта функция принимает два параметра: исходную строку и необязательное основание для представления данных. Используйте синтаксис print(int("STR")) , чтобы вернуть str как int или целое число.

Как преобразовать Python Int в строку:
Чтобы преобразовать целое число в строку в Python, используйте функцию str() . Эта функция принимает данные любого типа и преобразует их в строку, включая целые числа. Используйте синтаксис print(str(INT)) , чтобы вернуть int как str или строку.

Найдите подходящий учебный лагерь

  • Career Karma подберет для вас лучшие технологические учебные курсы
  • Доступ к эксклюзивным стипендиям и подготовительным курсам

Выберите интересующий вас вопрос
Разработка программного обеспеченияДизайнОбработка и анализ данныхАналитика данныхПродажиUX-дизайнКибербезопасностьЦифровой маркетингИмя

Фамилия

Электронная почта

Номер телефона

Продолжая, вы соглашаетесь с нашими Условиями обслуживания и Политикой конфиденциальности, а также соглашаетесь получать предложения и возможности от Career Karma по телефону, текстовым сообщениям и электронной почте.


Изучая программирование на Python, учащиеся быстро обнаруживают, что Python включает несколько типов данных, которые используются для различения определенного типа данных. Например, строки Python используются для представления текстовых данных, а целые числа могут представлять целые числа. Когда вы программируете, вам может понадобиться преобразовать значения между разными типами данных, чтобы вы могли работать с ними по-разному.

Одной из распространенных операций является преобразование строки Python в целое число или целого числа в строку. Python включает встроенные методы, которые можно использовать для выполнения этих преобразований: int() и str() .

В этом руководстве мы рассмотрим, как можно использовать метод int() для преобразования строки в целое число в Python. Мы также обсудим, как использовать str() для преобразования целого числа в строку.

Типы данных Python

Когда вы программируете на Python, данные, с которыми вы работаете, будут храниться различными способами. Если вы работаете с текстом, ваши данные будут храниться в виде строки. Но если вы работаете с десятичным числом, ваши данные будут структурированы как числа с плавающей запятой.

Это важно, потому что с каждым типом данных можно работать по-разному. Таким образом, Python должен хранить разные типы данных, используя разные типы данных. В Python есть несколько типов данных, которые используются для хранения данных, включая числа, логические значения и списки.

В этой статье мы сосредоточимся на двух из этих типов данных: строках и числах.

В Python строки заключаются в одинарные или двойные кавычки и используются для представления текстовой информации. Вот пример строки:

 text_data = «Эта строка содержит текстовые данные». 

Числовой тип данных используется для хранения как десятичных, так и целых чисел. Десятичные числа будут автоматически преобразованы в числа с плавающей запятой, а целые числа будут считаться целыми числами. Вот пример целого числа и числа с плавающей запятой в Python:

 пример_целого = 22
example_float = 2.22 

Преобразование типа данных в другую форму данных называется преобразованием типа . Если вы хотите преобразовать строку в целое число или целое число в строку, вы будете выполнять операцию преобразования типа

Python String to Int

Метод int() можно использовать для преобразования строки в целое число. значение в Питоне.

int() принимает два параметра: строку, которую необходимо преобразовать в целое число, и базу, в которой должны быть представлены ваши данные. Второй параметр является необязательным.

Метод возвращает значение, которое вы передали через int() , представленное как целое число. Вот синтаксис метода Python int() :

 int(number, base=base) 

Вот пример метода int() , используемого для преобразования строки в целое число:

 print( int("12")) 

Наш код возвращает:

Пример String to Int в действии

Давайте используем более подробный пример, чтобы показать, как int() 9Можно использовать метод 0050. Допустим, мы создаем форму регистрации для детской игры, которая запрашивает возраст пользователя. Нам нужно, чтобы это значение хранилось как целое число в нашей базе данных. Но когда пользователь вставляет значение в нашу программу, его возраст становится строкой.

Создадим программу, выполняющую эту функцию. Мы начнем с использования метода input() для получения возраста пользователя:

 raw_user_age = input("Каков ваш возраст?")
print(raw_user_age) 

Когда наш пользователь вводит число, оно будет выведено на консоль. Вот что происходит, когда мы запускаем нашу программу:

 Сколько тебе лет?
12
12 

Введенное пользователем значение равно 12 . Это может выглядеть как число. Однако когда мы используем метод type() для проверки типа данных на предмет возраста нашего пользователя, мы видим, что это не число. Мы можем использовать следующий код для проверки типа данных возраста нашего пользователя:

 print(type(raw_user_age)) 

Наш код возвращает:

  

Как видите, наши данные сохранены как str или строка. Итак, ясно, что нам нужно преобразовать наши данные в целое число. Мы можем сделать это, используя следующий код:

 raw_user_age = input("Сколько вам лет?")
user_age = int (raw_user_age)
print(user_age) 

Вот что произойдет, когда мы выполним наш код и вставим значение 12 :

 Каков ваш возраст?
12
12 

Наш код возвращает тот же результат, что и выше, но 12 теперь хранится как целое число. Мы можем использовать метод type() для проверки:

 print(type(user_age)) 

Наш код возвращает:

  

Теперь наше значение хранится как целое число, как мы изначально хотели .

Python Int to String

Метод str() позволяет преобразовать целое число в строку в Python. Синтаксис этого метода:

«Карьерная карма вошла в мою жизнь, когда я больше всего в ней нуждалась, и быстро помогла мне пройти буткемп. Через два месяца после выпуска я нашла работу своей мечты, которая соответствовала моим ценностям и целям в жизни! "

Венера, инженер-программист Rockbot

 str(number_to_convert)
 

Давайте рассмотрим пример, чтобы показать, как работает этот метод. В нашем предыдущем примере мы преобразовали возраст пользователя в целое число, используя этот код:

 raw_user_age = input("Сколько вам лет?")
user_age = int (raw_user_age)
 

Допустим, мы хотим вывести на консоль сообщение с возрастом нашего пользователя. Мы могли бы сделать это, используя следующий код:

 print("Ваш возраст: " + user_age)
 

Наш код возвращает ошибку:

 Трассировка (последний последний вызов):
  Файл «main.py», строка 3, в 
print("Ваш возраст: " + user_age)
TypeError: может только конкатенировать str (не "int") в str
 

Это потому, что вы не можете соединить строку с целым числом, как мы пытались сделать выше. Чтобы наш код работал, нам нужно преобразовать возраст нашего пользователя в строку. Мы можем сделать это с помощью метода str() :

 raw_user_age = input("Каков ваш возраст?")
user_age = int (raw_user_age)
as_string = строка (возраст_пользователя)
print("Ваш возраст: " + as_string)
 

Наш код возвращает:

Сколько вам лет?

12

Ваш возраст: 12

Мы успешно преобразовали целое число в строку с помощью функции str(). Оба значения теперь являются строками, что означает, что теперь мы можем объединить сообщение Your age is: с возрастом пользователя.

Python Преобразование списка строк в список целых чисел

Предположим, у нас есть список строк, содержащий оценки, полученные учащимися на уроке информатики. Мы хотим преобразовать каждую оценку в нашем списке в целое число. Для этого мы можем использовать понимание списка Python.

Понимание списков упрощает создание нового списка на основе содержимого существующего списка. В этом случае мы будем использовать понимание списка, чтобы превратить список строк в новый список целых чисел.

Рассмотрим этот код:

 оценок = ["82", "84", "71", "64", "66"]
new_grades = [int(g) для g в оценках]
print(new_grades) 

Сначала мы определяем список под названием «grades». Этот список содержит строки. Затем мы пишем генератор списка, который преобразует каждое значение в нашем списке «оценок» в целое число. Наше понимание списка делает это, перебирая каждое значение в «оценках» и изменяя их тип данных с помощью функции int().

В конце нашей программы мы печатаем наш новый список целых чисел:

 [82, 84, 71, 64, 66] 

Наш код успешно преобразовал наш список строк в список целых чисел.

Заключение

Метод int() используется для преобразования строки в целое число в Python. Это может быть полезно, если вам нужно сохранить значение как целое число или выполнить математические операции со значением, хранящимся в виде строки. Метод str() используется для преобразования целого числа в строку.

Теперь вы готовы преобразовывать строки в целые числа в Python, как эксперт!

Преобразование строк в числа и чисел в строки в Python

Введение

Python позволяет взаимозаменяемо преобразовывать строки, целые числа и числа с плавающей запятой несколькими различными способами. Самый простой способ сделать это — использовать базовые функции str() , int() и float() . Помимо этого, есть еще несколько способов.

Прежде чем мы перейдем к преобразованию строк в числа и преобразованию чисел в строки, давайте сначала посмотрим, как строки и числа представлены в Python.

Примечание . Для простоты запуска и демонстрации этих примеров мы будем использовать интерпретатор Python.

Строки

Строковые литералы в Python объявляются путем заключения символа в двойные (") или одинарные кавычки ('). Строки в Python на самом деле представляют собой просто массивы с Unicode для каждого символа в качестве элемента массива, что позволяет вам использовать индексы для доступа к одному символу из строки

Например, мы можем получить доступ к отдельным символам этих строк, указав индекс:

 >>> stringFirst = "Привет, мир!"
>>> stringSecond = 'Снова!'
>>> строкаFirst[3]
'л'
>>> строкаВторая[3]
'я'
 

Числа

Число в Python может быть целым числом , числом с плавающей запятой или комплексом .

Целые числа могут быть положительными или отрицательными целыми числами. Начиная с Python 3 целые числа не ограничены и могут содержать практически любое число. До Python 3 верхняя граница была 2 31 -1 для 32-разрядных сред выполнения и 2 63 -1 для 64-разрядных сред выполнения.

Число с плавающей запятой также имеет неограниченную длину, но число с плавающей запятой должно содержать десятичную точку .

Комплексные числа должны иметь мнимую часть, которая обозначается с помощью j :

 >>> integerFirst = 23
>>> floatFirst = 23,23
>>> комплексtFirst = 1 + 23j
 

Преобразование строк в числа

Использование функции
int()

Если вы хотите преобразовать строку в целое число, проще всего будет использовать функция int() . Просто передайте строку в качестве аргумента:

 >>> x = "23"
>>> у = "20"
>>> z = int(x) - int(y)
>>> г
3
 

Это работает, как и ожидалось, когда вы передаете строковое представление целого числа в int() , но вы столкнетесь с проблемой, если передаваемая вами строка не содержит целочисленного значения. Если в вашей строке есть какие-либо нечисловые символы, то int() вызовет исключение:

 >>> x = "23a"
>>> г = интервал (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: неверный литерал для int() с основанием 10: '23a'
 

Это же исключение будет вызвано даже в том случае, если будет передана допустимая строка с плавающей запятой:

 >>> x = "23.4"
>>> г = интервал (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: неверный литерал для int() с основанием 10: '23,4'
 

Функция int() имеет еще одну полезную функцию, помимо простого преобразования строк в целые числа, она также позволяет преобразовывать числа из любого основания в целое число с основанием 10. Например, мы можем преобразовать следующую двоичную строку в целое число с основанием 10, используя база параметр:

 >>> int('1101100', base=2)
108
 

То же самое можно сделать для любого другого основания, например шестнадцатеричного (основание 16):

 >>> int('6C', base=16)
108
 
Использование функции
float()

Преобразование строковых литералов в числа с плавающей запятой выполняется с помощью функции float() :

 >>> x = "23. 23"
>>> г = "23.00"
>>> z = число с плавающей запятой (х) - число с плавающей запятой (у)
>>> г
0,23000000000000043
 

Обратите внимание, что результирующее значение не совсем точное, так как должно быть просто 0,23 . Это связано с проблемами математики с плавающей запятой, а не с преобразованием строки в число.

Функция float() предлагает немного большую гибкость, чем функция int() , поскольку она может анализировать и преобразовывать как целые числа с плавающей запятой , так и :

 >>> x = "23"
>>> у = "20"
>>> z = число с плавающей запятой (х) - число с плавающей запятой (у)
>>> г
3.0
 

В отличие от int() , float() не вызывает исключение, когда получает числовое значение, отличное от числа с плавающей запятой.

Однако вызовет исключение, если ему будет передано нечисловое значение:

 >>> x = "23a"
>>> г = число с плавающей запятой (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: не удалось преобразовать строку в число с плавающей запятой: «23a»
 

В то время как float() имеет ли , а не возможность преобразовывать неосновные 10 числа, такие как int() делает, it делает имеет возможность преобразовывать числа, представленные в экспоненциальной нотации (также известной как электронная нотация):

 >>> float('23e-5')
0,00023
>>> с плавающей запятой('23e2')
2300,0
 
Использование функции
complex()

Преобразование строковых литералов в комплексные числа выполняется с помощью функции complex() . Для этого строка должна иметь определенное форматирование. В частности, он должен быть отформатирован без пробелов вокруг + или - операторы:

 >>> x = "5+3j"
>>> у = "3+1j"
>>> z = комплекс(х) + комплекс(у)
>>> г
(8+4к)
 

Дополнительные пробелы между операторами + или - приведут к возникновению исключения:

 >>> z = complex("5+ 3j")
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: аргумент complex() является неверно сформированной строкой
 

Как 9Функция 0049 float() , complex() также более расслаблена в допускаемых типах чисел. Например, мнимая часть числа может быть полностью опущена, а также могут быть проанализированы как целые числа, так и числа с плавающей запятой:

 >>> complex("1")
(1+0j)
>>> сложный("1.2")
(1,2+0к)
 

Однако, как видите, это не следует использовать в качестве более гибкой замены int / float , поскольку оно автоматически добавляет мнимую часть числа к строковой версии.

Преобразование числовых значений в строки

Использование функции
str()

Функцию str() можно использовать для преобразования любого числового типа в строку.

Функция str() доступна в Python 3.0+, поскольку строки в Python 3.0+ по умолчанию имеют кодировку Unicode. Однако это неверно для версий Python ниже 3.0, в которых для достижения той же цели используется функция unicode() :

 >>> str(23) # Integer to String
'23'
>>> str(23.3) # Плавающая в строку
«23,3»
>>> str(5+4j) # Из комплекса в строку
'(5+4j)'
 

Преимущество str() заключается в том, что он может обрабатывать преобразование любого типа числа в строку, поэтому вам не нужно беспокоиться о выборе правильного метода в зависимости от типа преобразуемого числа.

Использование функции
format()

Другим способом преобразования числовых значений в строки является использование функции format() , которая позволяет вам устанавливать заполнители внутри строки, а затем преобразовывать другой тип данных в строку и заполнять заполнители.

Чтобы использовать функцию, просто напишите строку, за которой следует .format() и передайте аргументы для заполнителей.

Вот пример:

 >>> "Мой возраст {}".format(21)
«Мне 21 год»
 

К аргументам в функции .format() также можно обращаться по отдельности, используя их позиции или имена переменных:

 >>> "Вы получаете {продукт}, когда умножаете {1} на {0}". формат(5,5, 3, произведение=16,5)
«Вы получите 16,5, если умножите 3 на 5,5».
 

Обратите внимание, что под капотом функция .format() просто использует str() для преобразования аргументов в строки. По сути, это тот же способ преобразования чисел в строки, что и в предыдущем разделе, но .format() действует как удобная функция для форматирования строки.

Заключение

Python позволяет взаимозаменяемо преобразовывать строки, целые числа и числа с плавающей запятой несколькими различными способами. Самый простой способ сделать это — использовать основные str() , int() и float() функций. Помимо этого, есть еще несколько способов, таких как функция format() . Просто имейте в виду, что функции int() , float() и complex() имеют свои ограничения и могут вызывать исключения, если входная строка не отформатирована точно так, как они ожидают.

Преобразование строк в числа и чисел в строки в Python

Введение

Python позволяет взаимозаменяемо преобразовывать строки, целые числа и числа с плавающей запятой несколькими различными способами. Самый простой способ сделать это — использовать базовые функции str() , int() и float() . Помимо этого, есть еще несколько способов.

Прежде чем мы перейдем к преобразованию строк в числа и преобразованию чисел в строки, давайте сначала посмотрим, как строки и числа представлены в Python.

Примечание : Для простоты запуска и демонстрации этих примеров мы будем использовать интерпретатор Python.

Строки

Строковые литералы в Python объявляются путем заключения символа в двойные («) или одинарные кавычки (‘). Строки в Python на самом деле представляют собой просто массивы с Unicode для каждого символа в качестве элемента массива, что позволяет вам использовать индексы для доступа к одному символу из строки

Например, мы можем получить доступ к отдельным символам этих строк, указав индекс:

 >>> stringFirst = "Hello World!"
>>> stringSecond = 'Снова!'
>>> строкаFirst[3]
'л'
>>> строкаВторая[3]
'я'
 

Числа

Число в Python может быть целым числом , числом с плавающей запятой или комплексом .

Целые числа могут быть положительными или отрицательными целыми числами. Начиная с Python 3 целые числа не ограничены и могут содержать практически любое число. До Python 3 верхняя граница была 2 31 -1 для 32-разрядных сред выполнения и 2 63 -1 для 64-разрядных сред выполнения.

Число с плавающей запятой также имеет неограниченную длину, но число с плавающей запятой должно содержать десятичную точку .

Комплексные числа должны иметь мнимую часть, которая обозначается с помощью j :

 >>> integerFirst = 23
>>> floatFirst = 23,23
>>> комплексtFirst = 1 + 23j
 

Преобразование строк в числа

Использование функции
int()

Если вы хотите преобразовать строку в целое число, проще всего будет использовать функцию int() . Просто передайте строку в качестве аргумента:

 >>> x = "23"
>>> у = "20"
>>> z = int(x) - int(y)
>>> г
3
 

Это работает, как и ожидалось, когда вы передаете строковое представление целого числа в int() , но вы столкнетесь с проблемой, если передаваемая вами строка не содержит целочисленного значения. Если в вашей строке есть какие-либо нечисловые символы, то int() вызовет исключение:

 >>> x = "23a"
>>> г = интервал (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: неверный литерал для int() с основанием 10: '23a'
 

Это же исключение будет вызвано даже в том случае, если будет передана допустимая строка с плавающей запятой:

 >>> x = "23.4"
>>> г = интервал (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: неверный литерал для int() с основанием 10: '23,4'
 

Функция int() имеет еще одну полезную функцию, помимо простого преобразования строк в целые числа, она также позволяет преобразовывать числа из любого основания в целое число с основанием 10. Например, мы можем преобразовать следующую двоичную строку в целое число с основанием 10, используя база параметр:

 >>> int('1101100', base=2)
108
 

То же самое можно сделать для любого другого основания, например шестнадцатеричного (основание 16):

 >>> int('6C', base=16)
108
 
Использование функции
float()

Преобразование строковых литералов в числа с плавающей запятой выполняется с помощью функции float() :

 >>> x = "23. 23"
>>> г = "23.00"
>>> z = число с плавающей запятой (х) - число с плавающей запятой (у)
>>> г
0,23000000000000043
 

Обратите внимание, что результирующее значение не совсем точное, так как должно быть просто 0,23 . Это связано с проблемами математики с плавающей запятой, а не с преобразованием строки в число.

Функция float() предлагает немного большую гибкость, чем функция int() , поскольку она может анализировать и преобразовывать как целые числа с плавающей запятой , так и :

 >>> x = "23"
>>> у = "20"
>>> z = число с плавающей запятой (х) - число с плавающей запятой (у)
>>> г
3.0
 

В отличие от int() , float() не вызывает исключение, когда получает числовое значение, отличное от числа с плавающей запятой.

Однако вызовет исключение, если ему будет передано нечисловое значение:

 >>> x = "23a"
>>> г = число с плавающей запятой (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: не удалось преобразовать строку в число с плавающей запятой: «23a»
 

В то время как float() имеет ли , а не возможность преобразовывать неосновные 10 числа, такие как int() делает, it делает имеет возможность преобразовывать числа, представленные в экспоненциальной нотации (также известной как электронная нотация):

 >>> float('23e-5')
0,00023
>>> с плавающей запятой('23e2')
2300,0
 
Использование функции
complex()

Преобразование строковых литералов в комплексные числа выполняется с помощью функции complex() . Для этого строка должна иметь определенное форматирование. В частности, он должен быть отформатирован без пробелов вокруг + или - операторы:

 >>> x = "5+3j"
>>> у = "3+1j"
>>> z = комплекс(х) + комплекс(у)
>>> г
(8+4к)
 

Дополнительные пробелы между операторами + или - приведут к возникновению исключения:

 >>> z = complex("5+ 3j")
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: аргумент complex() является неверно сформированной строкой
 

Как 9Функция 0049 float() , complex() также более расслаблена в допускаемых типах чисел. Например, мнимая часть числа может быть полностью опущена, а также могут быть проанализированы как целые числа, так и числа с плавающей запятой:

 >>> complex("1")
(1+0j)
>>> сложный("1.2")
(1,2+0к)
 

Однако, как видите, это не следует использовать в качестве более гибкой замены int / float , поскольку оно автоматически добавляет мнимую часть числа к строковой версии.

Преобразование числовых значений в строки

Использование функции
str()

Функцию str() можно использовать для преобразования любого числового типа в строку.

Функция str() доступна в Python 3.0+, поскольку строки в Python 3.0+ по умолчанию имеют кодировку Unicode. Однако это неверно для версий Python ниже 3.0, в которых для достижения той же цели используется функция unicode() :

 >>> str(23) # Integer to String
'23'
>>> str(23.3) # Плавающая в строку
«23,3»
>>> str(5+4j) # Из комплекса в строку
'(5+4j)'
 

Преимущество str() заключается в том, что он может обрабатывать преобразование любого типа числа в строку, поэтому вам не нужно беспокоиться о выборе правильного метода в зависимости от типа преобразуемого числа.

Использование функции
format()

Другим способом преобразования числовых значений в строки является использование функции format() , которая позволяет вам устанавливать заполнители внутри строки, а затем преобразовывать другой тип данных в строку и заполнять заполнители.

Чтобы использовать функцию, просто напишите строку, за которой следует .format() и передайте аргументы для заполнителей.

Вот пример:

 >>> "Мой возраст {}".format(21)
«Мне 21 год»
 

К аргументам в функции .format() также можно обращаться по отдельности, используя их позиции или имена переменных:

 >>> "Вы получаете {продукт}, когда умножаете {1} на {0}". формат(5,5, 3, произведение=16,5)
«Вы получите 16,5, если умножите 3 на 5,5».
 

Обратите внимание, что под капотом функция .format() просто использует str() для преобразования аргументов в строки. По сути, это тот же способ преобразования чисел в строки, что и в предыдущем разделе, но .format() действует как удобная функция для форматирования строки.

Заключение

Python позволяет взаимозаменяемо преобразовывать строки, целые числа и числа с плавающей запятой несколькими различными способами. Самый простой способ сделать это — использовать основные str() , int() и float() функций. Помимо этого, есть еще несколько способов, таких как функция format() . Просто имейте в виду, что функции int() , float() и complex() имеют свои ограничения и могут вызывать исключения, если входная строка не отформатирована точно так, как они ожидают.

Преобразование строк в числа и чисел в строки в Python

Введение

Python позволяет взаимозаменяемо преобразовывать строки, целые числа и числа с плавающей запятой несколькими различными способами. Самый простой способ сделать это — использовать базовые функции str() , int() и float() . Помимо этого, есть еще несколько способов.

Прежде чем мы перейдем к преобразованию строк в числа и преобразованию чисел в строки, давайте сначала посмотрим, как строки и числа представлены в Python.

Примечание : Для простоты запуска и демонстрации этих примеров мы будем использовать интерпретатор Python.

Строки

Строковые литералы в Python объявляются путем заключения символа в двойные («) или одинарные кавычки (‘). Строки в Python на самом деле представляют собой просто массивы с Unicode для каждого символа в качестве элемента массива, что позволяет вам использовать индексы для доступа к одному символу из строки

Например, мы можем получить доступ к отдельным символам этих строк, указав индекс:

 >>> stringFirst = "Hello World!"
>>> stringSecond = 'Снова!'
>>> строкаFirst[3]
'л'
>>> строкаВторая[3]
'я'
 

Числа

Число в Python может быть целым числом , числом с плавающей запятой или комплексом .

Целые числа могут быть положительными или отрицательными целыми числами. Начиная с Python 3 целые числа не ограничены и могут содержать практически любое число. До Python 3 верхняя граница была 2 31 -1 для 32-разрядных сред выполнения и 2 63 -1 для 64-разрядных сред выполнения.

Число с плавающей запятой также имеет неограниченную длину, но число с плавающей запятой должно содержать десятичную точку .

Комплексные числа должны иметь мнимую часть, которая обозначается с помощью j :

 >>> integerFirst = 23
>>> floatFirst = 23,23
>>> комплексtFirst = 1 + 23j
 

Преобразование строк в числа

Использование функции
int()

Если вы хотите преобразовать строку в целое число, проще всего будет использовать функцию int() . Просто передайте строку в качестве аргумента:

 >>> x = "23"
>>> у = "20"
>>> z = int(x) - int(y)
>>> г
3
 

Это работает, как и ожидалось, когда вы передаете строковое представление целого числа в int() , но вы столкнетесь с проблемой, если передаваемая вами строка не содержит целочисленного значения. Если в вашей строке есть какие-либо нечисловые символы, то int() вызовет исключение:

 >>> x = "23a"
>>> г = интервал (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: неверный литерал для int() с основанием 10: '23a'
 

Это же исключение будет вызвано даже в том случае, если будет передана допустимая строка с плавающей запятой:

 >>> x = "23.4"
>>> г = интервал (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: неверный литерал для int() с основанием 10: '23,4'
 

Функция int() имеет еще одну полезную функцию, помимо простого преобразования строк в целые числа, она также позволяет преобразовывать числа из любого основания в целое число с основанием 10. Например, мы можем преобразовать следующую двоичную строку в целое число с основанием 10, используя база параметр:

 >>> int('1101100', base=2)
108
 

То же самое можно сделать для любого другого основания, например шестнадцатеричного (основание 16):

 >>> int('6C', base=16)
108
 
Использование функции
float()

Преобразование строковых литералов в числа с плавающей запятой выполняется с помощью функции float() :

 >>> x = "23. 23"
>>> г = "23.00"
>>> z = число с плавающей запятой (х) - число с плавающей запятой (у)
>>> г
0,23000000000000043
 

Обратите внимание, что результирующее значение не совсем точное, так как должно быть просто 0,23 . Это связано с проблемами математики с плавающей запятой, а не с преобразованием строки в число.

Функция float() предлагает немного большую гибкость, чем функция int() , поскольку она может анализировать и преобразовывать как целые числа с плавающей запятой , так и :

 >>> x = "23"
>>> у = "20"
>>> z = число с плавающей запятой (х) - число с плавающей запятой (у)
>>> г
3.0
 

В отличие от int() , float() не вызывает исключение, когда получает числовое значение, отличное от числа с плавающей запятой.

Однако вызовет исключение, если ему будет передано нечисловое значение:

 >>> x = "23a"
>>> г = число с плавающей запятой (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: не удалось преобразовать строку в число с плавающей запятой: «23a»
 

В то время как float() имеет ли , а не возможность преобразовывать неосновные 10 числа, такие как int() делает, it делает имеет возможность преобразовывать числа, представленные в экспоненциальной нотации (также известной как электронная нотация):

 >>> float('23e-5')
0,00023
>>> с плавающей запятой('23e2')
2300,0
 
Использование функции
complex()

Преобразование строковых литералов в комплексные числа выполняется с помощью функции complex() . Для этого строка должна иметь определенное форматирование. В частности, он должен быть отформатирован без пробелов вокруг + или - операторы:

 >>> x = "5+3j"
>>> у = "3+1j"
>>> z = комплекс(х) + комплекс(у)
>>> г
(8+4к)
 

Дополнительные пробелы между операторами + или - приведут к возникновению исключения:

 >>> z = complex("5+ 3j")
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: аргумент complex() является неверно сформированной строкой
 

Как 9Функция 0049 float() , complex() также более расслаблена в допускаемых типах чисел. Например, мнимая часть числа может быть полностью опущена, а также могут быть проанализированы как целые числа, так и числа с плавающей запятой:

 >>> complex("1")
(1+0j)
>>> сложный("1.2")
(1,2+0к)
 

Однако, как видите, это не следует использовать в качестве более гибкой замены int / float , поскольку оно автоматически добавляет мнимую часть числа к строковой версии.

Преобразование числовых значений в строки

Использование функции
str()

Функцию str() можно использовать для преобразования любого числового типа в строку.

Функция str() доступна в Python 3.0+, поскольку строки в Python 3.0+ по умолчанию имеют кодировку Unicode. Однако это неверно для версий Python ниже 3.0, в которых для достижения той же цели используется функция unicode() :

 >>> str(23) # Integer to String
'23'
>>> str(23.3) # Плавающая в строку
«23,3»
>>> str(5+4j) # Из комплекса в строку
'(5+4j)'
 

Преимущество str() заключается в том, что он может обрабатывать преобразование любого типа числа в строку, поэтому вам не нужно беспокоиться о выборе правильного метода в зависимости от типа преобразуемого числа.

Использование функции
format()

Другим способом преобразования числовых значений в строки является использование функции format() , которая позволяет вам устанавливать заполнители внутри строки, а затем преобразовывать другой тип данных в строку и заполнять заполнители.

Чтобы использовать функцию, просто напишите строку, за которой следует .format() и передайте аргументы для заполнителей.

Вот пример:

 >>> "Мой возраст {}".format(21)
«Мне 21 год»
 

К аргументам в функции .format() также можно обращаться по отдельности, используя их позиции или имена переменных:

 >>> "Вы получаете {продукт}, когда умножаете {1} на {0}". формат(5,5, 3, произведение=16,5)
«Вы получите 16,5, если умножите 3 на 5,5».
 

Обратите внимание, что под капотом функция .format() просто использует str() для преобразования аргументов в строки. По сути, это тот же способ преобразования чисел в строки, что и в предыдущем разделе, но .format() действует как удобная функция для форматирования строки.

Заключение

Python позволяет взаимозаменяемо преобразовывать строки, целые числа и числа с плавающей запятой несколькими различными способами. Самый простой способ сделать это — использовать основные str() , int() и float() функций. Помимо этого, есть еще несколько способов, таких как функция format() . Просто имейте в виду, что функции int() , float() и complex() имеют свои ограничения и могут вызывать исключения, если входная строка не отформатирована точно так, как они ожидают.

Преобразование строк в числа и чисел в строки в Python

Введение

Python позволяет взаимозаменяемо преобразовывать строки, целые числа и числа с плавающей запятой несколькими различными способами. Самый простой способ сделать это — использовать базовые функции str() , int() и float() . Помимо этого, есть еще несколько способов.

Прежде чем мы перейдем к преобразованию строк в числа и преобразованию чисел в строки, давайте сначала посмотрим, как строки и числа представлены в Python.

Примечание : Для простоты запуска и демонстрации этих примеров мы будем использовать интерпретатор Python.

Строки

Строковые литералы в Python объявляются путем заключения символа в двойные («) или одинарные кавычки (‘). Строки в Python на самом деле представляют собой просто массивы с Unicode для каждого символа в качестве элемента массива, что позволяет вам использовать индексы для доступа к одному символу из строки

Например, мы можем получить доступ к отдельным символам этих строк, указав индекс:

 >>> stringFirst = "Hello World!"
>>> stringSecond = 'Снова!'
>>> строкаFirst[3]
'л'
>>> строкаВторая[3]
'я'
 

Числа

Число в Python может быть целым числом , числом с плавающей запятой или комплексом .

Целые числа могут быть положительными или отрицательными целыми числами. Начиная с Python 3 целые числа не ограничены и могут содержать практически любое число. До Python 3 верхняя граница была 2 31 -1 для 32-разрядных сред выполнения и 2 63 -1 для 64-разрядных сред выполнения.

Число с плавающей запятой также имеет неограниченную длину, но число с плавающей запятой должно содержать десятичную точку .

Комплексные числа должны иметь мнимую часть, которая обозначается с помощью j :

 >>> integerFirst = 23
>>> floatFirst = 23,23
>>> комплексtFirst = 1 + 23j
 

Преобразование строк в числа

Использование функции
int()

Если вы хотите преобразовать строку в целое число, проще всего будет использовать функцию int() . Просто передайте строку в качестве аргумента:

 >>> x = "23"
>>> у = "20"
>>> z = int(x) - int(y)
>>> г
3
 

Это работает, как и ожидалось, когда вы передаете строковое представление целого числа в int() , но вы столкнетесь с проблемой, если передаваемая вами строка не содержит целочисленного значения. Если в вашей строке есть какие-либо нечисловые символы, то int() вызовет исключение:

 >>> x = "23a"
>>> г = интервал (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: неверный литерал для int() с основанием 10: '23a'
 

Это же исключение будет вызвано даже в том случае, если будет передана допустимая строка с плавающей запятой:

 >>> x = "23.4"
>>> г = интервал (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: неверный литерал для int() с основанием 10: '23,4'
 

Функция int() имеет еще одну полезную функцию, помимо простого преобразования строк в целые числа, она также позволяет преобразовывать числа из любого основания в целое число с основанием 10. Например, мы можем преобразовать следующую двоичную строку в целое число с основанием 10, используя база параметр:

 >>> int('1101100', base=2)
108
 

То же самое можно сделать для любого другого основания, например шестнадцатеричного (основание 16):

 >>> int('6C', base=16)
108
 
Использование функции
float()

Преобразование строковых литералов в числа с плавающей запятой выполняется с помощью функции float() :

 >>> x = "23. 23"
>>> г = "23.00"
>>> z = число с плавающей запятой (х) - число с плавающей запятой (у)
>>> г
0,23000000000000043
 

Обратите внимание, что результирующее значение не совсем точное, так как должно быть просто 0,23 . Это связано с проблемами математики с плавающей запятой, а не с преобразованием строки в число.

Функция float() предлагает немного большую гибкость, чем функция int() , поскольку она может анализировать и преобразовывать как целые числа с плавающей запятой , так и :

 >>> x = "23"
>>> у = "20"
>>> z = число с плавающей запятой (х) - число с плавающей запятой (у)
>>> г
3.0
 

В отличие от int() , float() не вызывает исключение, когда получает числовое значение, отличное от числа с плавающей запятой.

Однако вызовет исключение, если ему будет передано нечисловое значение:

 >>> x = "23a"
>>> г = число с плавающей запятой (х)
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: не удалось преобразовать строку в число с плавающей запятой: «23a»
 

В то время как float() имеет ли , а не возможность преобразовывать неосновные 10 числа, такие как int() делает, it делает имеет возможность преобразовывать числа, представленные в экспоненциальной нотации (также известной как электронная нотация):

 >>> float('23e-5')
0,00023
>>> с плавающей запятой('23e2')
2300,0
 
Использование функции
complex()

Преобразование строковых литералов в комплексные числа выполняется с помощью функции complex() . Для этого строка должна иметь определенное форматирование. В частности, он должен быть отформатирован без пробелов вокруг + или - операторы:

 >>> x = "5+3j"
>>> у = "3+1j"
>>> z = комплекс(х) + комплекс(у)
>>> г
(8+4к)
 

Дополнительные пробелы между операторами + или - приведут к возникновению исключения:

 >>> z = complex("5+ 3j")
Traceback (последний последний вызов):
  Файл "", строка 1, в 
ValueError: аргумент complex() является неверно сформированной строкой
 

Как 9Функция 0049 float() , complex() также более расслаблена в допускаемых типах чисел. Например, мнимая часть числа может быть полностью опущена, а также могут быть проанализированы как целые числа, так и числа с плавающей запятой:

 >>> complex("1")
(1+0j)
>>> сложный("1.2")
(1,2+0к)
 

Однако, как видите, это не следует использовать в качестве более гибкой замены int / float , поскольку оно автоматически добавляет мнимую часть числа к строковой версии.

Преобразование числовых значений в строки

Использование функции
str()

Функцию str() можно использовать для преобразования любого числового типа в строку.

Функция str() доступна в Python 3.0+, поскольку строки в Python 3.0+ по умолчанию имеют кодировку Unicode. Однако это неверно для версий Python ниже 3.0, в которых для достижения той же цели используется функция unicode() :

 >>> str(23) # Integer to String
'23'
>>> str(23.3) # Плавающая в строку
«23,3»
>>> str(5+4j) # Из комплекса в строку
'(5+4j)'
 

Преимущество str() заключается в том, что он может обрабатывать преобразование любого типа числа в строку, поэтому вам не нужно беспокоиться о выборе правильного метода в зависимости от типа преобразуемого числа.

Использование функции
format()

Другим способом преобразования числовых значений в строки является использование функции format() , которая позволяет вам устанавливать заполнители внутри строки, а затем преобразовывать другой тип данных в строку и заполнять заполнители.

Чтобы использовать функцию, просто напишите строку, за которой следует .format() и передайте аргументы для заполнителей.

Вот пример:

 >>> "Мой возраст {}".format(21)
«Мне 21 год»
 

К аргументам в функции .format() также можно обращаться по отдельности, используя их позиции или имена переменных:

 >>> "Вы получаете {продукт}, когда умножаете {1} на {0}". формат(5,5, 3, произведение=16,5)
«Вы получите 16,5, если умножите 3 на 5,5».
 

Обратите внимание, что под капотом функция .format() просто использует str() для преобразования аргументов в строки. По сути, это тот же способ преобразования чисел в строки, что и в предыдущем разделе, но .format() действует как удобная функция для форматирования строки.

Заключение

Python позволяет взаимозаменяемо преобразовывать строки, целые числа и числа с плавающей запятой несколькими различными способами.