Как перевести из str в int python
Перейти к содержимому

Как перевести из str в int python

  • автор:

Преобразование String в Int и Int в String в Python

В этом руководстве мы узнаем, как преобразовать String в int и int в String в python.

Строка Python в Int

Собственно, во многих случаях это необходимо. Например, вы читаете некоторые данные из файла, тогда они будут в формате String, и вам нужно будет преобразовать String в int.

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

num = '123' # string data # print the type print('Type of num is :', type(num)) # convert using int() num = int(num) # print the type again print('Now, type of num is :', type(num))

Результатом следующего кода будет:

Type of num is : Now, type of num is :

Строка Python в Int

Преобразование функционала из другой базы

Если строка, которую вы хотите преобразовать в число int, принадлежит другой базе чисел, отличной от базы 10, вы можете указать базу для преобразования.

Но помните, что выходное целое число всегда находится в базе 10. Еще одна вещь, которую вам нужно запомнить, – это то, что данная база должна находиться в диапазоне от 2 до 36. Смотрите следующий пример, чтобы понять преобразование строки в int с аргументом base.

num = '123' # print the original string print('The original string :', num) # considering '123' be in base 10, convert it to base 10 print('Base 10 to base 10:', int(num)) # considering '123' be in base 8, convert it to base 10 print('Base 8 to base 10 :', int(num, base=8)) # considering '123' be in base 6, convert it to base 10 print('Base 6 to base 10 :', int(num, base=6))

Результатом следующего кода будет:

Пример преобразования String в Int в PythonПреобразование строки Int в Base

Исключение ValueError при преобразовании

При преобразовании строки в int вы можете получить исключение ValueError. Это исключение возникает, если строка, которую вы хотите преобразовать, не представляет никаких чисел.

Предположим, вы хотите преобразовать шестнадцатеричное число в целое. Но вы не передали аргумент base = 16 в функцию int(). Он вызовет исключение ValueError, если есть какая-либо цифра, которая не принадлежит десятичной системе счисления. Следующий пример иллюстрирует это исключение при преобразовании строки в int.

""" Scenario 1: The interpreter will not raise any exception but you get wrong data """ num = '12' # this is a hexadecimal value # the variable is considered as decimal value during conversion print('The value is :', int(num)) # the variable is considered as hexadecimal value during conversion print('Actual value is :', int(num, base=16)) """ Scenario 2: The interpreter will raise ValueError exception """ num = '1e' # this is a hexadecimal value # the variable is considered as hexadecimal value during conversion print('Actual value of \'1e\' is :', int(num, base=16)) # the variable is considered as decimal value during conversion print('The value is :', int(num)) # this will raise exception

В итоге результатом приведенного выше кода будет:

The value is : 12 Actual value is : 18 Actual value of '1e' is : 30 Traceback (most recent call last): File "/home/imtiaz/Desktop/str2int_exception.py", line 22, in print('The value is :', int(num)) # this will raise exception ValueError: invalid literal for int() with base 10: '1e'

Строка Python в Int ValueError

Как преобразовать int в строку

Преобразование int в строку не требует усилий или проверки. Вы просто используете функцию str() для преобразования. Смотрите следующий пример:

hexadecimalValue = 0x1eff print('Type of hexadecimalValue :', type(hexadecimalValue)) hexadecimalValue = str(hexadecimalValue) print('Type of hexadecimalValue now :', type(hexadecimalValue))

Результатом следующего кода будет:

Type of hexadecimalValue : Type of hexadecimalValue now :

Осваиваем Python: преобразование строки в число на конкретных примерах

Иногда требуется преобразовать строку в целое число или в число с плавающей точкой для осуществления определённых операций в Python.

Если вы попробуете выполнить то или иное действие со строкой в виде чисел, то получите ошибку.

Этот код приведёт к ошибке :

str_a = ’50’ b = 10 c = str_a + b print (c)

В Python можно использовать функции int и float для преобразования строки в целое число или число с плавающей точкой до осуществления каких-либо операций.

Использование функции int() для преобразования строки в целое число

Рассмотрим следующий код:

str_a = '50' b = 10 c = int(str_a) + b print ("The value of c header-42948-2">Преобразование десятичной строки в число с плавающей точкой

Можно использовать класс float для того чтобы осуществить преобразование строки в число с плавающей точкой.

Пример использования float для преобразования строки:

#Пример преобразования string во float str_a = '50.85' b = 10.33 c = float(str_a) + b print ("The value of c 1" data-ab-test="post_related" data-ab-key="yarpp">
Модуль re Python – осваиваем регулярные выражения Python

Замечание: если вы попытаетесь использовать здесь функцию int(), то получите ошибку.

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

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

Будет создан новый список, в котором можно применить функцию int в каждой итерации.

Код:

#Пример преобразования string в int в списке str_lst = ['1', '2', '3'] int_lst = [int(x) for x in str_lst] print (int_lst)

Будет выведен новый список, состоящий из целых чисел, полученных из строк.

Преобразование списка строк в список чисел с плавающей точкой

Аналогичным образом можно использовать float вместо int для преобразования списка, содержащего строки из целых чисел. Рассмотрим пример:

Код для преобразования элементов списка в числа с плавающей точкой:

#Пример преобразования string во float в списке str_lst = ['10.505', '2.3', '3.99'] float_lst = [float(x) for x in str_lst] print (float_lst)

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

Ну а как насчёт строки наподобие “5,000,000”? Если попытаетесь преобразовать ее, используя функции int() или float() , то получите ошибку.

Решением будет использование import locale . Например:

locale.setlocale(locale.LC_ALL, ‘en_US.UTF-8’ )

Но это может вызвать проблемы в остальных локалях. Другое решение заключается в том, чтобы заменить запятые пустыми строками, то есть“”, а затем использовать функцию int.

str_a = '5,123,000' int_b = int(str_a.replace(',','')) print ("The integer value",int_b)

В результате получаем целое значение. Это же решение можно применить для конвертации строки в число с плавающей точкой.

Преобразование строки в число для расчёта високосного года -пример

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

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

#Пример расчёта високосного года try: Y = int(input("Enter a Year? ")) exceptValueError: print ("You may only enter digits in '2000' format!") else: leap_or_not = Y%4 == 0 ifleap_or_not: print ("Leap year") else: print ("Not a leap year")

Вводимая строка сразу преобразуется в целое число, а затем используется для расчёта.

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

Для преобразования целых чисел в строки в Python можно использовать функцию str() . Функция str() принимает объект, который может быть типа int , float , double и т.п.

Рассмотрим пример преобразования переменной типа int в строку, которая затем используется как строка для конкатенации:

#Примерпреобразованияint в string a_string = "str function for int to string" a_num = 456 print (a_string + str(a_num))
str function for int to string456

Если бы целочисленная переменная была использована без функции str(), возникла бы ошибка TypeError.

Сергей Бензенко автор-переводчик статьи « 5 examples to Convert a Python string to int and float »

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

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

year = input ( "Год вашего рождения:\n" )
year = int ( year )

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

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

countries = int ( input ( "Сколько государств?\n" ) )
players = int ( input ( "Сколько игроков участвуют?\n" ) )
goals = int ( input ( "Сколько голов забил зенит?\n" ) )
fingers = int ( input ( "Сколько пальцев на одной руке?\n" ) )
books = int ( input ( "Сколько книг желаете купить?\n" ) )

Заметьте, что каждое присвоение выполняется в одну строку кода. А все потому, что вызовы функций input() и int() – вложенные. Когда говорят о вложении вы­зовов функций, имеют в виду, что один находится внутри другого. Это удобно, если значение, возвращаемое “внутренней” функцией, может выступать как арrумент для “внешней” функции. Здесь input() возвращает строковое значение, которое int() успешно преобразует в число.

В конструкции, присваивающей значение переменной goals, функция input() сначала спрашивает у пользователя, сколько голов забил зенит. Поль­зователь что-то отвечает, это строковое значение input() возвратит, после чего программа применит функцию int() к этой строке как аргументу. В свою оче­редь, int() возвратит целое число. Это число и становится значением перемен­ной goals. Точно так же присвоение выполняется и в следующих выраже­ниях.

Есть и другие функции конвертации значений между типами. Некоторые из них перечислены ниже.

Функция Описание Пример Результат
float(x) Преобразует значение х в десятичную дробь float(5) 5.0
int(x) Преобразует значение х в целое число int(“30”) 30
str(x) Преобразует значение х в строку str(50.5) ‘50.5’

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

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

Алексей Кодов
Автор статьи
7 июля 2023 в 17:34

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

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

В Python для преобразования строки в целое число используется встроенная функция int() . Она принимает на вход строку и возвращает целое число. Если строка не может быть преобразована в целое число, Python выдаст ошибку ValueError .

число = int("123") print(число) # Выведет: 123

Преобразование строки в число с плавающей точкой

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

дробное = float("123.45") print(дробное) # Выведет: 123.45

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

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

строка = "123" print(строка.isdigit()) # Выведет: True строка_с_плавающей_точкой = "123.45" try: float(строка_с_плавающей_точкой) print(True) except ValueError: print(False) # Если строка не может быть преобразована во float, выведет False

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *