The procedure of converting the data type(int, float, string, etc) of a variable to another data type is called the type conversation. Python has two kinds of type conversation:
- Implicit Type Conversion
- Explicit Type Conversion
Implicit Type Conversion
Implicit type conversation, Python automatically convert one data type of a variable to another data type while execution.
Example 1:
x = 2 # integer data type y = 2.5 # float data type z = x+y print("The value of z :",z) print("The data type of z :",type(z))
Output:
The value of z : 4.5 The data type of z : <class 'float'>
Explanation:
Here, the x is an integer data type and y is the float data type. The variable z is the summation of the x and y variable. We can see that the data type of the variable z is a float as the Python always convert the smaller data type to larger data type in order to avoid the loss of information.
In some scenario, Python can’t use Implicit Type Conversion and we need to use Explicit Type Conversion. Let’s see the example where Implicit Type Conversion won’t work.
Example 2:
x = "Python" # string datatype y = 2 # integer datatype z = x+y print("The value of z :",z) print("The data type of z :",type(z))
Output:
Traceback (most recent call last): File "test.py", line 4, in <module> z = x+y TypeError: must be str, not int
Explanation:
The above code has given the type error as Python is not able to use implicit type conversion in such condition.
. . .
Explicit Type Conversion
Explicit Type Conversion is also known as type casting. In Explicit Type Conversion, the programmer explicitly covert the datatype of a variable to the required data type. The syntax of Explicit Type Conversion is as follow:
(required_data_type)(expression)
int(x) # It convert x to integer float(x) # It convert x to float str(x) # It convert x to string
Example
x = "123" # string datatype y = 2 # integer datatype print("Before type conversion") print("The datatype of x is :",type(x)) print("The datatype of y is :",type(y)) x = int(x) z = x+y print("After type conversion") print("The datatype of x is :",type(x)) print("The value of z :",z) print("The data type of z :",type(z))
Output
Before type conversion The datatype of x is : <class 'str'> The datatype of y is : <class 'int'> After type conversion The datatype of x is : <class 'int'> The value of z : 125 The data type of z : <class 'int'>
Note: Type conversation of alphabetic string datatype variable to integer or float data type won’t work in Python.
Example:
x = "Python" # string datatype y = 2 # integer datatype x = int(x) z = x+y print("The value of z :",z) print("The data type of z :",type(z))
Output:
Traceback (most recent call last): File "test.py", line 4, in <module> x = int(x) ValueError: invalid literal for int() with base 10: 'Python'
. . .