Python Type Conversion

Type Conversion


  Machine Learning in Python

Contents

What is Type Conversion

Also called Type Casting , type conversion converts data from one data type to another. For example,

weight_1 = 25   # first kid's weight
weight_2 = 25.5 # second kid's weight

weight_total = weight_1 + weight_2

print ( weight_total )

50.5
type(weight_1)
int
type(weight_2)
float

When an int and float are added, Python automatically converts the final result to float.

type(weight_total)
float

Implicit Conversion

weight = 21.5

print ("weight = ", weight)

weight =  21.5

This is an example of implicit conversion done by Python. The variable weight is of type float. However, when we are printing it in the print statement, it is converted to a string and added with the prefix “weight = “. Here is another example – adding a complex number with a integer.

a = 1+2j
b = 2

c = a + b

type(c)
complex

Not all conversions are done automatically though. For example, when you get 2 numbers from the user as input and try to add them without explicit type casting, it does not work.

weight_1 = input()  # python gathers the user's input as a string, not an integer
weight_2 = input()

weight_total = weight_1 + weight_2
print(weight_total)

2122

oops.. that is not what you expected, right ? here is why.

type(weight_1)
str
type(weight_2)

str
type(weight_total)
str

Explicit Conversion

weight_1 = input()  # python gathers the user's input as a string, not an integer
weight_2 = input()

weight_total = int(weight_1) + int(weight_2)
print(weight_total)

43

This works because the input string gathered from the user is explicitly converted to an integer using the method int ( ). However, we would have a problem in adding weights with decimals. Try it. So, a better way would be to to an explicit type conversion to float.

weight_1 = input()  # python gathers the user's input as a string, not an integer
weight_2 = input()

weight_total = float(weight_1) + float(weight_2)
print(weight_total)

44.0

a=input()
b = 2

c = a + b

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-21-4a76891d8956> in <module>
      2 b = 2
      3 
----> 4 c = a + b

TypeError: can only concatenate str (not "int") to str
Question – Which of the following code correction will make the code snippet above work ?
a = str(a)
b = str(b)
a = int(a)
a = int(input())
b = 2

c = a + b

Question – Will the code above work without an error ?
Yes
No
a = 1
b = 2.5

c = a + b

Question – What is the type of variable c
int
float
string
%d bloggers like this: