ПРЕОБРАЗОВАНИЕ ТИПОВ ДАННЫХ В PYTHON
С помощью функции complex() удобно формировать комплексные числа, указывая через запятую два аргумента: действительную часть и мнимую часть.
a = complex(3.2, 1.5) print(a)
(3.2+1.5j)
Смешанная арифметика
Python поддерживает смешанную арифметику в выражениях, состоящих из чисел разных типов. При этом целочисленный тип (int) при необходимости расширяется до дробного (float), а дробный — до комплексного (complex). То же самое происходит при сравнении чисел разного типа.
Системы счисления
Для преобразования чисел в двоичную, восьмиричную и шестнадцатиричную систему служат функции bin(), oct() и hex(). Эти функции возвращают строковые представления чисел, что необходимо учитывать при работе с ними.
a = hex(38) print(a)
0x26
Преобразовать строковое представление недесятичного числа в десятичную систему можно с помощью функции int(), указав вторым аргументом основание системы счисления (от 2 до 36 включительно).
a = '0x26' b = int(a, base=16) print(b)
Округление
Для округления чисел с плавающей точкой используется функция round(). Функция использует банковское округление (по Гауссу) до ближайшего чётного целого, чтобы избежать серийного накопления погрешности. Например, round(1.5) + round(2.5) будет равен 4. При обычном математическом округлении сумма округленных чисел будет равна 5.
С помощью второго аргумента функции round() можно округлить число до заданного количества знаков после запятой. Если воторой аргумент не задан, то число округляется до целого.
a = round(1.5) print(a) b = round(2.5) print(b) c = round(6.4567, 2) print(c) d = round(4.35, 1) print(d) e = round(4.45, 1) print(e)
2 2 6.46 4.7 4.5
Преобразование в строку
Для преобразования в строку используется функция str(). Аргументом функции str() может выступать число, строка, кортеж, список, множество, словарь, логическое значение, None.
Любой объект, преобразованный в строку, становится просто набором символов.
a = 5.3 x = str(a) print(x, type(a), type(x))
Преобразование в список
Для преобразования в список используется функция list(). Аргументом функции list() может выступать любой итерируемый тип данных (строка, кортеж, список, множество, словарь).
При преобразовании строки в список, мы получаем список, состоящий из символов строки.
Стоит обратить внимание на то, что при преобразовании словаря в список, в списке оказываются только ключи.
b = 'Python' x = list(b) print(x) c = (3, 4) x = list(c) print(x) d = [5, 6] x = list(d) print(x) e = x = list(e) print(x) f = x = list(f) print(x)
['P', 'y', 't', 'h', 'o', 'n'] [3, 4] [5, 6] [8, 7] [1, 2]
Преобразование в кортеж
Для преобразования в кортеж используется функция tuple(). Аргументом функции tuple() может выступать любой итерируемый тип данных (строка, кортеж, список, множество, словарь).
Преобразование в кортеж происходит по тому же принципу, по которому происходит преобразование в список.
Преобразование в множество
Для преобразования в множество используется функция set(). Аргументом функции set() может выступать любой итерируемый тип данных (строка, кортеж, список, множество, словарь).
Преобразование в множество происходит по тому же принципу, по которому происходит преобразование в список, но следует учитывать, что повторяющиеся элементы в множестве будут представлены только один раз.
a = [5, 6, 5, 6, 7] x = set(a) print(x)
С помощью последовательного преобразования числа в строку, а затем в множество, можно найти набор символов, которые встречаются в числе.
a = 227 x = set(str(a)) print(x)
Преобразование в словарь
Для преобразования в словарь используется функция dict().
Для преобразования в словарь каждый элемент преобразуемой последовательности должен быть парой. Первым элементом в паре может быть любой неизменяемый тип данных (число, строка, кортеж), а вторым — любой тип данных.
f = [[1, 'яблоко'], [2, 'тыква']] x = dict(f) print(x)
Преобразование в логический тип
Для преобразования в логический тип используется функция bool().
Функция bool() вернет False, если в качестве аргумента выступает пустая строка, нулевое число, None, пустой список, пустой кортеж или пустое множество. Непустая строка, ненулевое число, даже если оно отрицательное, вернут True. Непустое множество, непустой список или непустой кортеж, даже если они содержат один пустой элемент, вернут True.
a = -7 x = bool(a) print(x) b = '' x = bool(b) print(x) c = x = bool(c) print(x)
True False True
Как преобразовать строку в число python
Чтобы привести строку к числу позволяет функция int() . Этой функции нужно передать строку, которую нужно преобразовать:
a = '12' int(a) # 12 # Убедимся, что функция вернула именно число type(int(a)) #
В Python есть также функция, которая позволяет реализовать обратную операцию, и получить строку из числа:
b = 23 str(b) # '23' type(str(b)) #
Как преобразовать строку в число?
Для того чтобы преобразовать строку в число, можно использовать встроенные функции языка Python. Например, это можно сделать при помощи конструктора int() .
int ('1') == 1
Чтобы привести строку в формат числа с плавающей точкой, можно использовать функцию float() :
float(‘1’) == 1
По умолчанию все числа интерпретируются как десятичные. Это означает, что если вы попробуете выполнить преобразование подобным образом:
int(‘0x1’)
то получите сообщение об ошибке «ValueError». Связано это с тем, что функция int(string,base) принимает параметр base для преобразования строки в число, и процесс преобразования при этом выглядит примерно так:
int(‘0x1’,16) == 16
Если параметр base будет определяется как 0, то это показывает, что число будет восьмеричным, а если как 0x, то число будет шестнадцатеричным.
Также существует функция eval() , которая может быть использована для преобразования строки в число, но работает она немного медленнее и порождает множество проблем с безопасностью.
Дело в том, что эта функция выполняет строку с кодом и возвращает результат выполнения. Но если «скормить» ей опасные инструкции (скажем, в виде пользовательского input), она их выполнит. Например, если передать функции eval() строку os.system(‘rm -rf /’) (НЕ ПРИМЕНЯЙТЕ НА ПРАКТИКЕ!), это приведет к удалению всех данных компьютера.
Как преобразовать строку в int в Python – 3 способа
В этом руководстве мы изучим способы преобразования строки в целое число в Python.
Давайте посмотрим на пример, прежде чем продолжить:
a='Learning Python is fun' b= 20 #Displaying the type of a and b print(type(a)) print(type(b))
В приведенном выше примере мы объявили переменные ‘a’ и ‘b’ со строковым и целочисленным значением соответственно.
Мы можем проверить их типы данных с помощью type().
Здесь возникает вопрос, зачем нам преобразовывать строку в целое число.
Следующая программа иллюстрирует то же самое:
value_a = "100" value_b = "26" res = value_a * value_b print("The multiplication of val_a and val_b gives: ",res)
res = value_a * value_b TypeError: can't multiply sequence by non-int of type 'str'
Поскольку сгенерировалась ошибка, это причина того, что мы должны преобразовать строковые значения в целые числа, чтобы мы могли продолжить операцию.
Пришло время взглянуть на первую программу, демонстрирующую преобразование строки в целое число.
a = '7' print(type(a)) #using int() conv_a=int(a) print(type(conv_a)) conv_a = conv_a+10 print(conv_a) print(type(conv_a))
- Первый шаг – объявить переменную a со строковым значением.
- После этого мы проверили ее тип данных с помощью type().
- Для преобразования строки в целое число мы использовали int(), а затем проверили ее тип.
- Теперь мы поработали с переменной «а», добавив к ней 10.
- Наконец, на выходе отображается результирующее значение.
В следующем примере мы применим косвенный подход к преобразованию строки в целое число.
Следующая программа показывает, как это можно сделать:
value_a = "100" value_b = "26" print(type(value_a)) print(type(value_b)) #converting to float value_a=float(value_a) #converting to int value_b=int(value_b) res_sum=value_a+value_b print("The sum of value_a and value_b is ",res_sum)
The sum of value_a and value_b is 126.0
- Первый шаг – объявить две переменные value_a и value_b со строковым значением.
- После этого проверили их тип данных с помощью type().
- Для преобразования строки в целое число мы использовали float() для преобразования строки в значение с плавающей запятой.
- На следующем шаге преобразуем строковое значение value_b в целое число.
- Теперь мы сложили value_a и value_b и распечатали их сумму.
- Наконец, на выходе отображается результирующее значение.
Здесь мы увидим, как мы можем преобразовать число, представленное в виде строкового значения, в основание 10, когда оно находится на разных основаниях.
num_value = '234' # printing the value of num_value print('The value of num_value is :', num_value) #converting 234 to base 10 assuming it is in base 10 print('The value of num_value from base 10 to base 10 is:', int(num_value)) #converting 234 to base 10 assuming it is in base 8 print('The value of num_value from base 8 to base 10 is :', int(num_value, base=8)) #converting 234 to base 10 assuming it is in base 6 print('The value of num_value base 6 to base 10 is :', int(num_value, base=6))
The value of num_value is: 234 The value of num_value from base 10 to base 10 is: 234 The value of num_value from base 8 to base 10 is: 156 The value of num_value base 6 to base 10 is: 94
- На первом этапе мы объявили значение переменной.
- Поскольку вывод всегда будет в базе 10, мы предоставили различные базовые значения внутри int().
- В качестве базовых значений мы взяли 10, 8 и 6.
- При выполнении программы отображается ожидаемый результат.
Вывод
В этом руководстве мы узнали о различных способах преобразования строки в значение типа int.