Tutorials Logic, IN info@tutorialslogic.com

Type Conversion in Python Implicit Explicit: Tutorial, Examples, FAQs & Interview Tips

What is Type Conversion?

Type conversion (also called type casting) is the process of converting a value from one data type to another. Python supports two kinds: implicit and explicit.

Implicit Type Conversion

Python automatically converts types when it's safe to do so - no data is lost. This usually happens when mixing int and float.

Implicit Conversion

Implicit Conversion
x = 5       # int
y = 2.5     # float

result = x + y
print(result)        # 7.5
print(type(result))  # <class 'float'>  - Python promoted int to float

# bool is a subclass of int
print(True + 1)   # 2
print(False + 5)  # 5
print(True * 10)  # 10

Explicit Type Conversion (Type Casting)

You manually convert using built-in functions. This is called explicit conversion or type casting.

Function Converts To Example
int(x) Integer int("42") -> 42
float(x) Float float("3.14") -> 3.14
str(x) String str(100) -> "100"
bool(x) Boolean bool(0) -> False
list(x) List list("abc") -> ['a','b','c']
tuple(x) Tuple tuple([1,2,3]) -> (1,2,3)
set(x) Set set([1,2,2,3]) -> {1,2,3}
dict(x) Dictionary dict(a=1, b=2)
complex(r, i) Complex complex(2, 3) -> (2+3j)
ord(c) Integer (Unicode) ord('A') -> 65
chr(n) Character chr(65) -> 'A'
hex(n) Hex string hex(255) -> '0xff'
oct(n) Octal string oct(8) -> '0o10'
bin(n) Binary string bin(10) -> '0b1010'

Explicit Conversion Examples

Explicit Conversion Examples
# int conversions
print(int(3.9))     # 3  (truncates, doesn't round)
print(int("42"))    # 42
print(int("0b1010", 2))  # 10 (binary string to int)
print(int("0xFF", 16))   # 255 (hex string to int)

# float conversions
print(float(5))     # 5.0
print(float("3.14")) # 3.14

# str conversions
print(str(100))     # "100"
print(str(3.14))    # "3.14"
print(str(True))    # "True"

# bool - falsy values
print(bool(0))      # False
print(bool(""))     # False
print(bool([]))     # False
print(bool(None))   # False
print(bool(1))      # True
print(bool("hi"))   # True

# list / tuple / set
print(list("Python"))       # ['P', 'y', 't', 'h', 'o', 'n']
print(tuple([1, 2, 3]))     # (1, 2, 3)
print(set([1, 2, 2, 3, 3])) # {1, 2, 3}

# ord and chr
print(ord('A'))   # 65
print(chr(65))    # 'A'
print(ord('a'))   # 97

Common Conversion Pitfalls

Pitfalls & Error Handling

Pitfalls & Error Handling
# int() truncates, doesn't round
print(int(9.9))   # 9 (not 10!)
print(int(-3.7))  # -3 (not -4!)

# Use round() if you need rounding
print(round(9.9))   # 10
print(round(3.567, 2))  # 3.57

# ValueError - invalid conversion
try:
    x = int("hello")
except ValueError as e:
    print(f"Error: {e}")  # invalid literal for int()

# Safe conversion pattern
def safe_int(value, default=0):
    try:
        return int(value)
    except (ValueError, TypeError):
        return default

print(safe_int("42"))      # 42
print(safe_int("abc"))     # 0
print(safe_int(None))      # 0

# User input is always a string - always convert!
age_str = input("Enter age: ")  # returns str
age = int(age_str)              # convert to int

Ready to Level Up Your Skills?

Explore 500+ free tutorials across 20+ languages and frameworks.