Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Learn Type Conversion Essentials | Cross-Type Interactions
Data Types in Python

bookType Conversion Essentials

Type conversion lets you move between core Python types so values can be compared, calculated, or displayed.

Converting to int

int(x) makes an integer.

  • From an int: returns the same number;
  • From a float: truncates toward zero (for example, int(2.9) returns 2, int(-2.9) returns -2);
  • From a string: the string must represent an integer (optional spaces and sign are ok). Python also allows underscores inside digits, such as "1_000" β€” but only if:
    • The underscore is between digits;
    • It is not at the beginning or end ("_100", "100_");
    • It is not repeated or adjacent to a decimal point ("1__000", "1_.5").

Valid Conversions

1234567
age_input = " 42 " print(int(age_input)) # 42 print(int(2.9)) # 2 print(int(-2.9)) # -2 print(int("7")) # 7 print(int(" -15 ")) # -15 print(int("1_00_0")) # 1000
copy

These Raise ValueError

12
int("2.5") # ValueError - not an integer string int("42a") # ValueError
copy

Converting to float

float(x) makes a floating-point number.

  • Works for ints and decimal or scientific-notation strings ("3.14", "1e2", "5E-3");
  • Commas are not decimal points in Python ("2,5", "2.5");
  • Python allows underscores inside digits in numeric strings, but only if:
    • The underscore is between digits;
    • It is not at the beginning or end ("_3.14", "3.14_");
    • It is not adjacent to the decimal point or repeated ("3_.14", "3.__14");
    • Scientific notation also must follow these rules ("1e_3").

Valid Conversions

1234
print(float(3)) # 3.0 print(float("2.5")) # 2.5 print(float("1e3")) # 1000.0 print(float("1_000.1_234")) # 1000.1234
copy

These Raise ValueError

1
float("2,5") # ValueError - use a dot, not a comma
copy

Converting to str

str(x) makes a human-readable string representation. Prefer f-strings when you are building messages.

123
print(str(42)) # "42" print(str(3.5)) # "3.5" print(f"Ada scored {98} points.")
copy

Converting to bool

bool(x) follows Python truthiness rules.

  • Numbers: 0 is False, any other number is True;
  • Strings: "" (empty) is False, any non-empty string is True (even "0" and "False").
12345
print(bool(0)) # False print(bool(7)) # True print(bool("")) # False print(bool("0")) # True print(bool("False")) # True
copy

Mistakes to Avoid

  • int("2.5") raises ValueError - parse as float() first, then truncate or round;
  • Locale habit: "2,5" is invalid - use "2.5";
  • Truthiness surprise: bool("0") is True - compare string contents explicitly if needed, for example s == "0".

1. Which call raises a ValueError?

2. Pick the correct statement.

question mark

Which call raises a ValueError?

Select the correct answer

question mark

Pick the correct statement.

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 4. ChapterΒ 1

Ask AI

expand

Ask AI

ChatGPT

Ask anything or try one of the suggested questions to begin our chat

bookType Conversion Essentials

Swipe to show menu

Type conversion lets you move between core Python types so values can be compared, calculated, or displayed.

Converting to int

int(x) makes an integer.

  • From an int: returns the same number;
  • From a float: truncates toward zero (for example, int(2.9) returns 2, int(-2.9) returns -2);
  • From a string: the string must represent an integer (optional spaces and sign are ok). Python also allows underscores inside digits, such as "1_000" β€” but only if:
    • The underscore is between digits;
    • It is not at the beginning or end ("_100", "100_");
    • It is not repeated or adjacent to a decimal point ("1__000", "1_.5").

Valid Conversions

1234567
age_input = " 42 " print(int(age_input)) # 42 print(int(2.9)) # 2 print(int(-2.9)) # -2 print(int("7")) # 7 print(int(" -15 ")) # -15 print(int("1_00_0")) # 1000
copy

These Raise ValueError

12
int("2.5") # ValueError - not an integer string int("42a") # ValueError
copy

Converting to float

float(x) makes a floating-point number.

  • Works for ints and decimal or scientific-notation strings ("3.14", "1e2", "5E-3");
  • Commas are not decimal points in Python ("2,5", "2.5");
  • Python allows underscores inside digits in numeric strings, but only if:
    • The underscore is between digits;
    • It is not at the beginning or end ("_3.14", "3.14_");
    • It is not adjacent to the decimal point or repeated ("3_.14", "3.__14");
    • Scientific notation also must follow these rules ("1e_3").

Valid Conversions

1234
print(float(3)) # 3.0 print(float("2.5")) # 2.5 print(float("1e3")) # 1000.0 print(float("1_000.1_234")) # 1000.1234
copy

These Raise ValueError

1
float("2,5") # ValueError - use a dot, not a comma
copy

Converting to str

str(x) makes a human-readable string representation. Prefer f-strings when you are building messages.

123
print(str(42)) # "42" print(str(3.5)) # "3.5" print(f"Ada scored {98} points.")
copy

Converting to bool

bool(x) follows Python truthiness rules.

  • Numbers: 0 is False, any other number is True;
  • Strings: "" (empty) is False, any non-empty string is True (even "0" and "False").
12345
print(bool(0)) # False print(bool(7)) # True print(bool("")) # False print(bool("0")) # True print(bool("False")) # True
copy

Mistakes to Avoid

  • int("2.5") raises ValueError - parse as float() first, then truncate or round;
  • Locale habit: "2,5" is invalid - use "2.5";
  • Truthiness surprise: bool("0") is True - compare string contents explicitly if needed, for example s == "0".

1. Which call raises a ValueError?

2. Pick the correct statement.

question mark

Which call raises a ValueError?

Select the correct answer

question mark

Pick the correct statement.

Select the correct answer

Everything was clear?

How can we improve it?

Thanks for your feedback!

SectionΒ 4. ChapterΒ 1
some-alt