Note that just because python doesn't do any typecasting for you, various objects might. In this case, all of the magic is in the __eq__
method for int
and str
. When python sees:
a == b
It will try:
a.__eq__(b)
Also note that (for equality) most of the default comparisons return False
if the types don't match. No error is raised. For other, more rich comparisons (e.g. __lt__
, __gt__
) the result is actually version dependent. Python2.x orders based on the type. It guarantees a consistent (but arbitrary) ordering.
Python 2.7 .10(
default, Oct 23 2015, 19: 19: 21)[GCC 4.2 .1 Compatible Apple LLVM 7.0 .0(clang - 700.0 .59 .5)] on darwin
Type "help", "copyright", "credits"
or "license"
for more information. >>>
'1' > 1
True
Yes, you can do these:
1. cast x
to int
:
x = "0"
y = 0
if int(x) == y:
print "You're winner!"
Last Updated : 30 Jun, 2021,GATE CS 2021 Syllabus
Output:
<class 'int'>
<class 'float'>
10.0
<class 'float'>
21.0
<class 'float'>
Typecasting can be done by assigning the required data type function to the expression.,Explicit Type Conversion is also called Type Casting, the data types of objects are converted using predefined functions by the user.,In Explicit Type Conversion, users convert the data type of an object to required data type. We use the predefined functions like int(), float(), str(), etc to perform explicit type conversion.,The process of converting the value of one data type (integer, string, float, etc.) to another data type is called type conversion. Python has two types of type conversion.
Example 1: Converting integer to float
num_int = 123
num_flo = 1.23
num_new = num_int + num_flo
print("datatype of num_int:", type(num_int))
print("datatype of num_flo:", type(num_flo))
print("Value of num_new:", num_new)
print("datatype of num_new:", type(num_new))
When we run the above program, the output will be:
datatype of num_int: <class 'int'>
datatype of num_flo: <class 'float'>
Value of num_new: 124.23
datatype of num_new: <class 'float'>
Example 2: Addition of string(higher) data type and integer(lower) datatype
num_int = 123
num_str = "456"
print("Data type of num_int:", type(num_int))
print("Data type of num_str:", type(num_str))
print(num_int + num_str)
Example 3: Addition of string and integer using explicit conversion
num_int = 123
num_str = "456"
print("Data type of num_int:", type(num_int))
print("Data type of num_str before Type Casting:", type(num_str))
num_str = int(num_str)
print("Data type of num_str after Type Casting:", type(num_str))
num_sum = num_int + num_str
print("Sum of num_int and num_str:", num_sum)
print("Data type of the sum:", type(num_sum))
Python is a high-level programming language that provides functionalities for a number of operations.,To ensure consistency in the program, variable types may have to be specified sometimes. This is achieved through casting. As Python is an object-oriented language, classes can be used to define data types.,The three constructor functions used to cast python variables are,str(): A string variable constructed from an integer variable, a float variable, or a string variable.
#integer casting
a = int(4.00)
b = int("67")
c = int(4)
print('int(4.00) = ', a)
print('int("67") = ', b)
print('int(4) = ', c)
print('\n')
#float casting
d = float(6.45)
e = float("67.2")
f = float(5)
print('float(6.45) = ', d)
print('float("67.2") = ', e)
print('float(5) = ', f)
print('\n')
#string casting
g = str(4.00)
h = str("67")
i = str(4 + 6)
print('str(4.00) = ', g)
print('str("67") = ', h)
print('str(7) = ', i)
In Python, Type Casting is a process in which we convert a literal of one type to another.,Inbuilt functions int(), float() and str() shall be used for typecasting.,In this example, we shall use int() and float() to typecast a string literal to integer and float.,In this example, we shall take an integer literal assigned to a variable. Then we shall typecast this integer to float using float() function. Next, we shall typecast the integer to string using str().
Python Program
#integer n = 100 #float f = float(n) print(f) print(type(f)) #string s = str(n) print(s) print(type(s))
Run the above Python program, and you shall see the following output printed to the console output.
100.0
<class 'float'>
100
<class 'str'>
Output
100
<class 'int'>
100.05
<class 'str'>
Note: Please note that, if you have decimal point in the string, you cannot typecast that directly to an integer. You should first typecast string to float and then that to integer. Following is a quick code snippet for the same.
#string
s = '132.564'
#typecast to integer
n = int(float(s))