🐍 Укус питона 🐍
2.89K subscribers
767 photos
4 videos
279 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Неявные преобразования

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

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

🐍 Укус питона // 💬 Чат // #теория #преобразование #типы
Явные преобразования

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

Мы ожидаем, что "2" + 3 будет равно 5. Однако этот код сгенерирует исключение, так как первое число на самом деле представляет строку. И мы увидим при выполнении кода что-то наподобие примера во второй части кода:

Для преобразования типов Python предоставляет ряд встроенных функций:
• int(): преобразует значение в целое число
• float(): преобразует значение в число с плавающей точкой
• str(): преобразует значение в строку

🐍 Укус питона // 💬 Чат // #теория #преобразование #типы #int #float #str
Int

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

Примеры преобразований с помощью int(), смотрим второй пример:

Однако если значение не может быть преобразовано, то функция int выдаст ошибку ValueError: invalid literal for int() with base 10, смотрим третий пример:

🐍 Укус питона // 💬 Чат // #теория #преобразование #типы #int
Float

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

Примеры преобразований с помощью float(), второй пример:

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

🐍 Укус питона // 💬 Чат // #теория #преобразование #типы #float
Str

Функция str() преобразует значение в строку, первый пример:

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

Если число складывается с число, то это стандартная операция сложения чисел. Если строка складывается со строкой, то это операция объединения строк. Но каким образом выполнить операцию сложения по отношение к строке и числу, Python не знает. И если мы в данном случае мы хотим выполнить операцию объединения строк, то число можно привести к строке с помощью функции str(), третья часть кода:

🐍 Укус питона // 💬 Чат // #теория #преобразование #типы #str