Как превратить строку в число python
Перейти к содержимому

Как превратить строку в число 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 :

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

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

>>> '50' + 1 # TypeError: cannot concatenate ‘str’ and ‘int’ objects 

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

Преобразование строковой версии числа в int или float .

  • Преобразование строки в тип int ;
  • Преобразование строки в тип float ;
  • Преобразование списка строк в список чисел.

Преобразование строки в тип int .

# преобразование строки в число >>> num = '50' >>> if num.isdigit(): . int('50') # 50 >>> float('1.5') # 1.5 # преобразование числа в строку >>> str(50) # '50' 

Функции int и float преобразует строку в число, функция str преобразует число в строковое представление. В Python нельзя смешивать строковые и числовые типы в таких операторах, как ‘+’ , но можно вручную выполнить необходимые преобразования перед выполнением.

Преобразование строки в тип float .

>>> x = '50' >>> y = 1 >>> z = '1.5' # Операция сложения >>> int(x) + y + float(z) # 52.5 # Операция конкатенации >>> x + str(y) + z # '5011.5' # Преобразование строки с записью вещественного # числа в число с плавающей точкой >>> text = '5.79E-10' >>> float(text) # 5.79e-10 

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

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

>>> str_list = ['8.3', '11', 'девять', '1', '5', '3', '9', . 'пять', '15', '13', '7', '13.9', 'число'] >>> num_list = [] >>> for i in str_list: . if i.isdigit(): . num_list.append(int(i)) >>> num_list.sort() >>> num_list # [1, 3, 5, 7, 9, 11, 13, 15] 

Для преобразования списка строк с числами включая десятичные c разделением их по типам, необходимо перед преобразованием в тип float проверять строку на вхождение точки ‘.’ .

>>> str_list = ['8.3', '11', 'девять.', '1', '5', '3', '9', . '.пять', '15', '13', '7', '13.9', 'число'] >>> def str_to_num(str): . if '.' in str and str.replace('.', '').isdigit(): . return float(str) . elif str.isdigit(): . return int(str) . >>> num_list = [] >>> for i in str_list: . n = str_to_num(i) . if n is not None: . num_list.append(str_to_num(i)) >>> num_list # [8.3, 11, 1, 5, 3, 9, 15, 13, 7, 13.9] 

Для преобразования всех чисел в тип float , можно просто заменять точку в строке с числом и проверять получившуюся строку на десятичное число.

>>> str_list = ['8.3', '11', 'девять.', '1', '5', '3', '9', . '.пять', '15', '13', '7', '13.9', 'число'] >>> def is_num(str): . if str.replace('.', '').isdigit(): . return True . >>> num_list = [] >>> for i in str_list: . if is_num(i): . num_list.append(float(i)) . >>> num_list.sort() >>> num_list # [1.0, 3.0, 5.0, 7.0, 8.3, 9.0, 11.0, 13.0, 13.9, 15.0] 
  • ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
  • Преобразование строки в число
  • Строку в список, кортеж или множество символов
  • Одинарные, двойные и тройные кавычки в строке Python
  • Вывод специальных символов в строке Python «как есть»
  • Объединение и повторение строк
  • Индексирование строк
  • Использование срезов строк
  • Cрез строки Python от заданного символа/знака до конца строки
  • Создание макета для печати базовыми методами строк
  • Способы форматирования текстовых строк
  • Подсчет повторений слов в тексте, деление строки на список слов
  • Удаление слова из строки Python по фрагменту или шаблону
  • Удаление пунктуации из строки
  • Деление строки по заглавным буквам
  • Создание отчетов и писем по шаблонам

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

Обложка к статье

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

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

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

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

number_str = "123" number_int = int(number_str) print(number_int) # Вывод: 123

Также можно использовать функцию int() для преобразования чисел с другими системами счисления. В этом случае строка должна начинаться с префикса, указывающего на систему счисления (например, «0b» для двоичной, «0o» для восьмеричной и «0x» для шестнадцатеричной), а затем следует само число.

binary_str = "0b1010" binary_int = int(binary_str, 2) print(binary_int) # Вывод: 10

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

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

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

number_str = "3.14" number_float = float(number_str) print(number_float) # Вывод: 3.14

Аналогично, если строка не содержит числовое значение, то будет сгенерировано исключение ValueError .

Преобразование строки в числа с фиксированной точностью (decimal)

Модуль decimal предоставляет класс Decimal , который позволяет работать с числами с фиксированной точностью. Для преобразования строки в объект Decimal используется конструктор Decimal() .

from decimal import Decimal number_str = "3.14" number_decimal = Decimal(number_str) print(number_decimal) # Вывод: 3.14

Преобразование строки в дробь (Fraction)

Модуль fractions в Python предоставляет класс Fraction , который позволяет работать с дробными числами. Для преобразования строки в объект Fraction используется конструктор Fraction() .

from fractions import Fraction fraction_str = "3/4" fraction = Fraction(fraction_str) print(fraction) # Вывод: 3/4

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

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

Обработка исключения ValueError

Исключение ValueError возникает, когда строка не может быть преобразована в число заданного типа. Например, при попытке преобразовать строку «abc» в целое число.

try: number = int("abc") except ValueError: print("Ошибка: Невозможно преобразовать строку в число.")

Обработка исключения TypeError

Исключение TypeError может возникнуть, если функция преобразования принимает аргумент неправильного типа. Например, попытка преобразовать список в число.

try: number = int(["1", "2", "3"]) except TypeError: print("Ошибка: Неправильный тип данных для преобразования.")

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

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

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

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

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

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

Обновлено: 2023-05-31 19:18:07 Сергей Бензенко автор материала

Использование функции 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" >В языке программирования 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’ )

Преобразование строки в список Python осуществляется с помощью метода split.

Но это может вызвать проблемы в остальных локалях. Другое решение заключается в том, чтобы заменить запятые пустыми строками, то есть“”, а затем использовать функцию 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 »

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

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