Skip to main content

Python Typecasting - Converting Data Types

What is Typecasting?

Typecasting is the process of converting a value from one data type to another data type.

For example:

  • Converting an integer to a float
  • Converting a string to an integer
  • Converting a boolean to an integer

In Python, typecasting is straightforward because the language provides built-in functions that make these conversions easy and explicit.

Built-in Typecasting Functions in Python

Python provides five important built-in functions for type conversion:

  • int() → Converts a value to integer type
  • float() → Converts a value to floating-point type
  • complex() → Converts a value to complex type
  • bool() → Converts a value to boolean type
  • str() → Converts a value to string type

Understanding the int() Function

The int() function is used to convert values of other data types into integers.

Syntax

int(x)

Where x can be a float, boolean, or string (with certain rules).

1. Float to Integer Conversion

One of the most common conversions is from float to integer.

Example:

x = 10.989
print(int(x)) # 10

When a float is converted to an integer, the digits after the decimal point are simply removed (not rounded).

  • 10.989 becomes 10
  • -3.7 becomes -3

This behavior is called truncation, not rounding.

2. Complex to Integer Conversion

Now let us consider whether we can convert a complex number into an integer.

Example:

x = 10 + 20j
print(int(x)) # TypeError: can't convert complex to int

Python does not allow conversion of complex numbers to integers, and attempting to do so results in a TypeError.

This is because a complex number has both real and imaginary parts, and Python cannot decide which part to retain.

3. Boolean to Integer Conversion

Boolean values can be easily converted into integers.

print(int(True)) # 1
print(int(False)) # 0

In Python, True is treated as 1 and False is treated as 0.

This is very useful in conditions, counters, and logical operations.

4. String to Integer Conversion

String to integer conversion is slightly tricky because it follows strict rules.

print(int("15")) # 15

For a string to be converted into an integer:

  • The string must contain only numeric digits (0–9)
  • The number must be in base 10 (decimal form)

Invalid Examples

1. Binary format (not allowed directly as string)

print(int("0b1111")) # ValueError: invalid literal for int() with base 10

2. Floating-point string

print(int("10.5")) # ValueError: invalid literal for int() with base 10

Understanding the float() Function

The float() function is used to convert values of other data types into floating-point numbers.

Floating-point numbers are numbers that contain decimal points, such as 10.5, 3.14, etc.

1. Integer to Float Conversion

print(float(15)) # 15.0

When an integer is converted into a float, Python simply adds a decimal point and represents it as a floating-point number.

Interestingly, Python allows integers in different bases (binary, hexadecimal, octal) to be converted as well.

print(float(0b1111)) # Binary 15.0
print(float(0xFF)) # Hexadecimal 255.0

There are no restrictions when converting integers to float; Python handles all valid integer representations seamlessly.

2. Complex to Float Conversion

print(float(10 + 20j)) # TypeError: can't convert complex to float

Python does not allow conversion of complex numbers into float values, and attempting to do so results in a TypeError. This restriction exists because a complex number has both real and imaginary components, and a float cannot represent both simultaneously.

3. Boolean to Float Conversion

print(float(True)) # 1.0
print(float(False)) # 0.0

Boolean values are internally treated as integers (True = 1, False = 0), and when converted to float, they become 1.0 and 0.0 respectively.

4. String to Float Conversion

String conversion to float is allowed, but it follows strict rules.

print(float("10")) # 10.0
print(float("20.6")) # 20.6

The string must satisfy the following conditions:

  • It should contain either an integer value or a floating-point value
  • The number must be in base 10 (decimal format only)

Invalid Examples

1. Hexadecimal string

print(float("0xFF")) # ValueError

2. Non-numeric string

print(float("James")) # ValueError

Understanding the complex() Function

Python provides two ways to use the complex() function:

Form 1: Single Argument

complex(x)

Here, x becomes the real part, and the imaginary part is automatically set to 0.

print(complex(10)) # (10+0j)
print(complex(10.5)) # (10.5+0j)
print(complex(True)) # (1+0j)

String to Complex (Single Argument)

print(complex("10")) # (10+0j)
print(complex("10.5")) # (10.5+0j)

If a string is passed, it must contain a valid integer or float in base 10.

Form 2: Two Arguments

complex(x, y)
  • x → Real part
  • y → Imaginary part
print(complex(10, 20)) # (10+20j)
print(complex(10.5, 20.6)) # (10.5+20.6j)

Important Rules for Two-Argument Form

Rule 1: If First Argument is String, Second Argument Not Allowed

print(complex("10", 20)) # TypeError

If the first argument is a string, you cannot pass the second argument.

Rule 2: Second Argument Cannot Be String

print(complex(10, "20")) # TypeError

The second argument must always be a numeric value (int or float), not a string.

Understanding the bool() function

The bool() function is used to convert any given value into a boolean type, which means the result will always be either True or False.

** If a value evaluates to zero or is considered "empty", it becomes False; otherwise, it becomes True.**

1. Integer to Boolean Conversion

print(bool(10)) # True
print(bool(0)) # False
print(bool(-5)) # True

Any non-zero integer value is converted to True, while zero is converted to False. It does not matter whether the number is positive or negative; only zero matters.

2. Float to Boolean Conversion

print(bool(0.0)) # False
print(bool(0.0001)) # True
print(bool(-0.00001)) # True

The same rule applies to floating-point numbers: zero becomes False, and any non-zero value becomes True. Even extremely small values like 0.0001 are considered non-zero and therefore evaluate to True.

3. Complex Number to Boolean Conversion

print(bool(0 + 0j)) # False
print(bool(1 + 0j)) # True
print(bool(0 + 2j)) # True

A complex number is considered False only when both its real and imaginary parts are zero; otherwise, it is considered True.

4. String to Boolean Conversion

print(bool("True")) # True
print(bool("False")) # True
print(bool("Yes")) # True
print(bool("")) # False

For strings, the rule is completely different:

  • If the string is empty (""), it evaluates to False
  • If the string is non-empty (even if it contains "False"), it evaluates to True