# Python Crash Course | Python Numbers and Type Conversion

Python is a versatile programming language that provides built-in support for various numeric types and type conversion functions. Understanding Python numbers and type conversion is essential for performing mathematical operations, data manipulation, and data validation. This comprehensive guide will provide you with an in-depth understanding of Python numbers and type conversion, complete with coding examples and explanations.

# Python Numeric Types

Python supports three primary numeric types: integers, floating-point numbers, and complex numbers.

## Integers

Integers are whole numbers, both positive and negative, without any decimal points. In Python, integers can be written in decimal, binary, octal, or hexadecimal notation.

**Example:**

```
a = 42 # Decimal integer
b = 0b101010 # Binary integer
c = 0o52 # Octal integer
d = 0x2A # Hexadecimal integer
print(a, b, c, d) # Output: 42 42 42 42
```

## Floating-Point Numbers

Floating-point numbers, or floats, are real numbers that contain a decimal point. They can be written in standard decimal notation or scientific notation.

**Example:**

```
a = 3.14 # Standard decimal notation
b = 2.5e-2 # Scientific notation
print(a, b) # Output: 3.14 0.025
```

## Complex Numbers

Complex numbers are numbers with a real part and an imaginary part, written as `x + yi`

, where `x`

is the real part, `y`

is the imaginary part, and `i`

is the imaginary unit (the square root of -1).

```
a = 3 + 4j
b = complex(3, 4)
print(a, b) # Output: (3+4j) (3+4j)
```

# Arithmetic Operations with Python Numbers

Python supports various arithmetic operations for numeric types, such as addition, subtraction, multiplication, division, exponentiation, and more.

**Example:**

```
a = 10
b = 3.0
add = a + b # Addition
sub = a - b # Subtraction
mul = a * b # Multiplication
div = a / b # Division
exp = a ** b # Exponentiation
mod = a % b # Modulus
floor_div = a // b # Floor division
print(add, sub, mul, div, exp, mod, floor_div)
# Output: 13.0 7.0 30.0 3.3333333333333335 1000.0 1.0 3.0
```

# Python Type Conversion

Type conversion, or type casting, is the process of converting a value from one data type to another. Python provides several built-in functions for type conversion, such as `int()`

, `float()`

, and `complex()`

.

## Converting Between Numeric Types

You can utilize the `int()`

, `float()`

, and `complex()`

functions to perform conversions between Python numeric types.

**Example:**

```
a = 3.14
b = 42
int_value = int(a) # Convert float to int (decimal part is truncated)
float_value = float(b) # Convert int to float
complex_value = complex(b) # Convert int to complex (adds an imaginary part of 0)
print(int_value, float_value, complex_value) # Output: 3 42.0 (42+0j)
```

## Converting Strings to Numeric Types

You can also convert string representations of numbers to their corresponding numeric types using the same functions. However, the string must be a valid representation of the desired numeric type.

**Example:**

```
num_str1 = "123"
num_str2 = "45.6"
int_value = int(num_str1) # Convert string to int
float_value = float(num_str2) # Convert string to float
complex_value = complex(num_str1) # Convert string to complex
print(int_value, float_value, complex_value) # Output: 123 45.6 (123+0j)
```

Note that attempting to convert a string with an invalid format will result in a `ValueError`

.

## Converting Numeric Types to Strings

To convert a numeric value to a string, you can use the `str()`

function.

**Example:**

```
a = 42
b = 3.14
c = 3 + 4j
str_a = str(a) # Convert int to string
str_b = str(b) # Convert float to string
str_c = str(c) # Convert complex to string
print(str_a, str_b, str_c) # Output: '42' '3.14' '(3+4j)'
```

# Rounding and Formatting Numbers

## Rounding Numbers

You can use the `round()`

function to round a floating-point number to the nearest integer or a specified number of decimal places.

**Example:**

```
a = 3.14159
rounded_int = round(a) # Round to the nearest integer
rounded_float = round(a, 2) # Round to 2 decimal places
print(rounded_int, rounded_float) # Output: 3 3.14
```

## Formatting Numbers

Python’s string formatting capabilities allow you to display numeric values in various formats, such as fixed-point, scientific, or percentage notation.

**Example:**

```
a = 1234567.89
fixed_point = "{:.2f}".format(a) # Format as fixed-point with 2 decimal places
scientific = "{:.2e}".format(a) # Format as scientific notation with 2 decimal places
percentage = "{:.1%}".format(a / 10000000) # Format as percentage with 1 decimal place
print(fixed_point, scientific, percentage) # Output: '1234567.89' '1.23e+06' '12.3%'
```

# Summary

Understanding Python numbers and type conversion is essential for performing various mathematical operations and data manipulations in your programs. This comprehensive guide has provided you with an in-depth understanding of Python’s numeric types, arithmetic operations, type conversion functions, and number formatting techniques. With this knowledge, you can confidently work with numbers in Python and create more efficient and versatile programs.

Latest end-to-end Learn by Coding Projects (Jupyter Notebooks) in Python and R:

**All Notebooks in One Bundle: Data Science Recipes and Examples in Python & R****. **

**End-to-End Python Machine Learning Recipes & Examples.**

**End-to-End R Machine Learning Recipes & Examples.**

**Applied Statistics with R for Beginners and Business Professionals**

**Data Science and Machine Learning Projects in Python: Tabular Data Analytics**

**Data Science and Machine Learning Projects in R: Tabular Data Analytics**

**Python Machine Learning & Data Science Recipes: Learn by Coding**

**R Machine Learning & Data Science Recipes: Learn by Coding**

**Comparing Different Machine Learning Algorithms in Python for Classification (FREE)**

There are 2000+ End-to-End Python & R Notebooks are available to build **Professional Portfolio as a Data Scientist and/or Machine Learning Specialist**. All Notebooks are only $29.95. We would like to request you to have a look at the website for FREE the end-to-end notebooks, and then decide whether you would like to purchase or not.