Научете типирането в Python за пет минути

Курс за срив на Typecasting и преобразуване на типове в Python по много несловен начин

TypeCasting

Процесът на преобразуване на един тип данни в друг тип данни се нарича Typecasting или Type Coercion или Type Conversion .

Темите, върху които ще се спра в тази статия, са:

  1. Неявно преобразуване на типа
  2. Изрично преобразуване на типове
  3. Предимства
  4. Недостатъци

Неявно преобразуване на типа

Когато преобразуването на типа се извършва автоматично от интерпретатора без намесата на програмиста, този тип преобразуване се нарича неявно преобразуване на тип .

Примерна програма:

myInt = 143 # Integer value.myFloat = 1.43 # Float value.
myResult = myInt + myFloat # Sum result
print("datatype of myInt:",type(myInt))print("datatype of myFloat:",type(myFloat))
print("Value of myResult:",myResult)print("datatype of myResult:",type(myResult))

Изход:

Резултатът за горната програма ще бъде:

datatype of myInt: datatype of myFloat: Value of myResult: 144.43datatype of myResult: 

В горната програма,

  • Добавяме две променливи myInt и myFloat, съхраняващи стойността в myResult.
  • Ще разгледаме типа данни и на трите обекта съответно.
  • В изхода можем да видим типа данни на myInt е an integer, типът на данните на myFloat е a float.
  • Също така можем да видим, че myFloat има floatтип данни, защото Python преобразува по-малък тип данни в по-голям тип данни, за да избегне загубата на данни.

Този тип преобразуване се нарича Implicit Type преобразуване (или) UpCasting .

Изрично преобразуване на типове

В Изрично преобразуване на типове потребителите преобразуват типа данни на обект в необходимия тип данни. Използваме предварително дефинирани вградени функции като:

  1. int ()
  2. плувка ()
  3. комплекс()
  4. bool ()
  5. str ()

Синтаксисът за изрично преобразуване на тип е:

(required_datatype)(expression)

Този тип преобразуване се нарича Изрично преобразуване на тип (или) DownCasting .

Int преобразуване

Можем да използваме тази функция за преобразуване на стойности от други типове в int.

Например:

>>> int(123.654)123
>>>int(False)0
>>> int("10")10
>>> int("10.5")ValueError: invalid literal for int() with base 10: '10.5'
>>> int("ten")ValueError: invalid literal for int() with base 10: 'ten'
>>> int("0B1111")ValueError: invalid literal for int() with base 10: '0B1111'
>>> int(10+3j)TypeError: can't convert complex to int

Забележка:

  1. Не можете да конвертирате сложен тип данни в int
  2. Ако искате да конвертирате тип низ в тип int, литералът на низа трябва да съдържа стойността в Base-10

Преобразуване с поплавък

Тази функция се използва за преобразуване на всеки тип данни в число с плаваща запетая.

Например:

>>> float(10) 10.0
>>> float(True)1.0
>>> float(False)0.0
>>> float("10")10.0
>>> float("10.5")10.5
>>> float("ten")ValueError: could not convert string to float: 'ten'
>>> float(10+5j)TypeError: can't convert complex to float
>>> float("0B1111")ValueError: could not convert string to float: '0B1111'

Забележка:

  1. Можете да конвертирате сложен тип в стойност с плаващ тип.
  2. Ако искате да конвертирате тип низ в плаващ тип, литералът на низа трябва да съдържа стойността в base-10.

Сложно преобразуване

Тази функциясе използва за преобразуване на реални числа в комплексно (реално, въображаемо) число.

Форма 1: комплекс (x)

Можете да използвате тази функция, за да преобразувате единична стойност в комплексно число с реална част x и въображаема част 0.

Например:

>>> complex(10)10+0j
>>> complex(10.5)10.5+0j
>>> complex(True)1+0j
>>> complex(False)0+0j
>>> complex("10")10+0j
>>> complex("10.5")10.5+0j
>>> complex("ten")ValueError: complex() arg is a malformed string

Форма 2: комплекс (x, y)

Ако искате да конвертирате X и Y в комплексно число, така че X ще бъде реална част, а Y ще бъде въображаема част.

Например:

>>> complex(10,-2)10-2j
>>> complex(True, False)1+0j

Булево преобразуване

Тази функция се използва за лесно преобразуване на всеки тип данни в булев тип данни. Това е най-гъвкавият тип данни в Python.

Например:

>>> bool(0)False
>>> bool(1)True
>>> bool(10)True
>>> bool(0.13332)True
>>> bool(0.0)False
>>> bool(10+6j)True
>>> bool(0+15j)True
>>> bool(0+0j)False
>>> bool("Apple")True
>>> bool("")False
Забележка: С помощта на функцията bool можете да преобразувате всякакъв тип тип данни в булева стойност и изходът ще бъде - За всички стойности ще се получи True освен 0, 0 + 0j и за празен низ.

Преобразуване на низове

Тази функция се използва за преобразуване на всеки тип в низ.

Например:

>>> str(10)'10'
>>> str(10.5)'10.5'
>>> str(True)'True'
>>> str(False)'False'
>>> str(10+5j)'10+5j'
>>> str(False)'False'

Примерна програма:

integer_number = 123 # Intstring_number = "456" # String
print("Data type of integer_number:",type(integer_number))print("Data type of num_str before Type Casting:",type(num_str))
string_number = int(string_number)print("Data type of string_number after Type Casting:",type(string_number))
number_sum = integer_number + string_number
print("Sum of integer_number and num_str:",number_sum)print("Data type of the sum:",type(number_sum))

Изход:

Когато стартираме горната програма, изходът ще бъде:

Data type of integer_number: Data type of num_str before Type Casting: Data type of string_number after Type Casting: Sum of integer_number and num_str: 579Data type of the sum: 

В горната програма,

  • Добавяме променлива string_number и integer_number.
  • Преобразувахме string_number от низ (по-висок) в цяло число (по-нисък) тип, използвайки int()функция за извършване на добавяне.
  • After converting string_number to an integer value Python adds these two variables.
  • We got the number_sum value and data type to be an integer.

Advantages Of Typecasting

  1. More convenient to use

Disadvantages Of Typecasting

  1. More complex type system
  2. Source of bugs due to unexpected casts

I covered pretty much everything that is required to perform any type of typecasting operation in Python3.

Hope this helped you learn about Python Typecasting in a quick and easy way.

If you liked this article please click on the clap and leave me your valuable feedback.