# Chapter 2: Python Basics

## 2.2 Variables and Data Types

In this section, we will discuss variables and data types in Python. Variables are essential in programming as they allow you to store and manipulate data, while data types define the kind of data that can be stored in a variable.

### 2.2.1 Variables

Variables in Python are used to store values for later use in your program. A variable is assigned a value using the assignment operator (

). The variable name must follow certain naming conventions:**=**

- Start with a letter or an underscore (_)
- Consist of letters, numbers, or underscores
- Be case-sensitive

Examples of variable assignments:

`name = "John"`

age = 25

_height = 175.5

You can also perform multiple assignments in a single line:

`x, y, z = 1, 2, 3`

### 2.2.2 Data Types

Python has several built-in data types that allow you to work with various forms of data. Some of the most common data types are:

- Integers (int): Whole numbers, such as 5, -3, or 42.
- Floating-point numbers (float): Decimal numbers, such as 3.14, -0.5, or 1.0.
- Strings (str): Sequences of characters, such as "hello", 'world', or "Python is fun!".
- Booleans (bool): Logical values, either

or**True**

.**False**

You can determine the type of a value or variable using the

function:**type()**

`x = 42`

print(type(x)) # Output: <class 'int'>

y = 3.14

print(type(y)) # Output: <class 'float'>

z = "Python"

print(type(z)) # Output: <class 'str'>

a = True

print(type(a)) # Output: <class 'bool'>

### 2.2.3 Type Conversion

You can convert between different data types using built-in Python functions, such as

, **int()**

, **float()**

, and **str()**

.**bool()**

Examples of type conversion:

`x = 5.5`

y = int(x) # Convert float to int, y becomes 5

a = 3

b = float(a) # Convert int to float, b becomes 3.0

c = 42

d = str(c) # Convert int to str, d becomes "42"

e = "123"

f = int(e) # Convert str to int, f becomes 123

It's important to note that not all conversions are possible. For example, converting a non-numeric string to an integer or float will result in a

.**ValueError**

Understanding variables and data types is crucial in Python programming, as it forms the basis for manipulating data and performing various operations. As you progress through this book, you will encounter more advanced data types, such as lists, dictionaries, and tuples, which will allow you to work with more complex data structures.

### Exercise 2.2.1: Celsius to Fahrenheit Converter

In this exercise, you will write a Python program that converts a temperature in degrees Celsius to degrees Fahrenheit. You will practice using variables, data types, expressions, and the

function.**print()**

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare a variable named

and assign it the value of the temperature in degrees Celsius (e.g., 30).**celsius** - Calculate the temperature in degrees Fahrenheit using the formula

, and assign the result to a new variable named**fahrenheit = (celsius * 9/5) + 32**

.**fahrenheit** - Use the

function to display the temperature in degrees Fahrenheit, formatted as a string with a degree symbol (°F).**print()**

Your final code should look something like this:

`celsius = 30`

fahrenheit = (celsius * 9/5) + 32

print(f"{celsius}°C is equal to {fahrenheit}°F")

When you run your program, you should see output similar to the following:

`30°C is equal to 86.0°F`

Feel free to modify the

value to test your program with different temperatures. This exercise helps you become familiar with variables, data types, arithmetic expressions, and the **celsius**

function with f-strings for formatted output.**print()**

### Exercise 2.2.2: Calculate the Area and Perimeter of a Rectangle

In this exercise, you will write a Python program that calculates the area and perimeter of a rectangle. You will practice using variables and data types.

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare two variables:

and**length**

. Assign them appropriate values (e.g., 5 and 3, respectively).**width** - Calculate the area of the rectangle using the formula

, and assign the result to a variable named**area = length * width**

.**area** - Calculate the perimeter of the rectangle using the formula

, and assign the result to a variable named**perimeter = 2 * (length + width)**

.**perimeter** - Use the

function to display the calculated area and perimeter of the rectangle.**print()**

Your final code should look something like this:

`length = 5`

width = 3

area = length * width

perimeter = 2 * (length + width)

print(f"The area of a rectangle with length {length} and width {width} is {area}")

print(f"The perimeter of a rectangle with length {length} and width {width} is {perimeter}")

When you run your program, you should see output similar to the following:

`The area of a rectangle with length 5 and width 3 is 15`

The perimeter of a rectangle with length 5 and width 3 is 16

Feel free to modify the

and **length**

variables to practice with different rectangle dimensions. This exercise helps you become familiar with variables and data types in Python.**width**

### Exercise 2.2.3: Simple Interest Calculator

In this exercise, you will write a Python program that calculates the simple interest earned on an investment. You will practice using variables and data types.

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare three variables:

,**principal**

, and**rate**

. Assign them appropriate values (e.g., 1000, 0.05, and 3, respectively).**time** - Calculate the simple interest using the formula

, and assign the result to a variable named**simple_interest = principal * rate * time**

.**simple_interest** - Use the

function to display the calculated simple interest.**print()**

Your final code should look something like this:

`principal = 1000`

rate = 0.05

time = 3

simple_interest = principal * rate * time

print(f"The simple interest earned on an investment of ${principal} at a rate of {rate * 100}% over {time} years is ${simple_interest}")

When you run your program, you should see output similar to the following:

`The simple interest earned on an investment of $1000 at a rate of 5.0% over 3 years is $150.0`

Feel free to modify the variables to practice with different investment scenarios. These exercises help you become familiar with variables and data types in Python.

## 2.2 Variables and Data Types

In this section, we will discuss variables and data types in Python. Variables are essential in programming as they allow you to store and manipulate data, while data types define the kind of data that can be stored in a variable.

### 2.2.1 Variables

Variables in Python are used to store values for later use in your program. A variable is assigned a value using the assignment operator (

). The variable name must follow certain naming conventions:**=**

- Start with a letter or an underscore (_)
- Consist of letters, numbers, or underscores
- Be case-sensitive

Examples of variable assignments:

`name = "John"`

age = 25

_height = 175.5

You can also perform multiple assignments in a single line:

`x, y, z = 1, 2, 3`

### 2.2.2 Data Types

Python has several built-in data types that allow you to work with various forms of data. Some of the most common data types are:

- Integers (int): Whole numbers, such as 5, -3, or 42.
- Floating-point numbers (float): Decimal numbers, such as 3.14, -0.5, or 1.0.
- Strings (str): Sequences of characters, such as "hello", 'world', or "Python is fun!".
- Booleans (bool): Logical values, either

or**True**

.**False**

You can determine the type of a value or variable using the

function:**type()**

`x = 42`

print(type(x)) # Output: <class 'int'>

y = 3.14

print(type(y)) # Output: <class 'float'>

z = "Python"

print(type(z)) # Output: <class 'str'>

a = True

print(type(a)) # Output: <class 'bool'>

### 2.2.3 Type Conversion

You can convert between different data types using built-in Python functions, such as

, **int()**

, **float()**

, and **str()**

.**bool()**

Examples of type conversion:

`x = 5.5`

y = int(x) # Convert float to int, y becomes 5

a = 3

b = float(a) # Convert int to float, b becomes 3.0

c = 42

d = str(c) # Convert int to str, d becomes "42"

e = "123"

f = int(e) # Convert str to int, f becomes 123

It's important to note that not all conversions are possible. For example, converting a non-numeric string to an integer or float will result in a

.**ValueError**

Understanding variables and data types is crucial in Python programming, as it forms the basis for manipulating data and performing various operations. As you progress through this book, you will encounter more advanced data types, such as lists, dictionaries, and tuples, which will allow you to work with more complex data structures.

### Exercise 2.2.1: Celsius to Fahrenheit Converter

In this exercise, you will write a Python program that converts a temperature in degrees Celsius to degrees Fahrenheit. You will practice using variables, data types, expressions, and the

function.**print()**

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare a variable named

and assign it the value of the temperature in degrees Celsius (e.g., 30).**celsius** - Calculate the temperature in degrees Fahrenheit using the formula

, and assign the result to a new variable named**fahrenheit = (celsius * 9/5) + 32**

.**fahrenheit** - Use the

function to display the temperature in degrees Fahrenheit, formatted as a string with a degree symbol (°F).**print()**

Your final code should look something like this:

`celsius = 30`

fahrenheit = (celsius * 9/5) + 32

print(f"{celsius}°C is equal to {fahrenheit}°F")

When you run your program, you should see output similar to the following:

`30°C is equal to 86.0°F`

Feel free to modify the

value to test your program with different temperatures. This exercise helps you become familiar with variables, data types, arithmetic expressions, and the **celsius**

function with f-strings for formatted output.**print()**

### Exercise 2.2.2: Calculate the Area and Perimeter of a Rectangle

In this exercise, you will write a Python program that calculates the area and perimeter of a rectangle. You will practice using variables and data types.

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare two variables:

and**length**

. Assign them appropriate values (e.g., 5 and 3, respectively).**width** - Calculate the area of the rectangle using the formula

, and assign the result to a variable named**area = length * width**

.**area** - Calculate the perimeter of the rectangle using the formula

, and assign the result to a variable named**perimeter = 2 * (length + width)**

.**perimeter** - Use the

function to display the calculated area and perimeter of the rectangle.**print()**

Your final code should look something like this:

`length = 5`

width = 3

area = length * width

perimeter = 2 * (length + width)

print(f"The area of a rectangle with length {length} and width {width} is {area}")

print(f"The perimeter of a rectangle with length {length} and width {width} is {perimeter}")

When you run your program, you should see output similar to the following:

`The area of a rectangle with length 5 and width 3 is 15`

The perimeter of a rectangle with length 5 and width 3 is 16

Feel free to modify the

and **length**

variables to practice with different rectangle dimensions. This exercise helps you become familiar with variables and data types in Python.**width**

### Exercise 2.2.3: Simple Interest Calculator

In this exercise, you will write a Python program that calculates the simple interest earned on an investment. You will practice using variables and data types.

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare three variables:

,**principal**

, and**rate**

. Assign them appropriate values (e.g., 1000, 0.05, and 3, respectively).**time** - Calculate the simple interest using the formula

, and assign the result to a variable named**simple_interest = principal * rate * time**

.**simple_interest** - Use the

function to display the calculated simple interest.**print()**

Your final code should look something like this:

`principal = 1000`

rate = 0.05

time = 3

simple_interest = principal * rate * time

print(f"The simple interest earned on an investment of ${principal} at a rate of {rate * 100}% over {time} years is ${simple_interest}")

When you run your program, you should see output similar to the following:

`The simple interest earned on an investment of $1000 at a rate of 5.0% over 3 years is $150.0`

Feel free to modify the variables to practice with different investment scenarios. These exercises help you become familiar with variables and data types in Python.

## 2.2 Variables and Data Types

In this section, we will discuss variables and data types in Python. Variables are essential in programming as they allow you to store and manipulate data, while data types define the kind of data that can be stored in a variable.

### 2.2.1 Variables

Variables in Python are used to store values for later use in your program. A variable is assigned a value using the assignment operator (

). The variable name must follow certain naming conventions:**=**

- Start with a letter or an underscore (_)
- Consist of letters, numbers, or underscores
- Be case-sensitive

Examples of variable assignments:

`name = "John"`

age = 25

_height = 175.5

You can also perform multiple assignments in a single line:

`x, y, z = 1, 2, 3`

### 2.2.2 Data Types

Python has several built-in data types that allow you to work with various forms of data. Some of the most common data types are:

- Integers (int): Whole numbers, such as 5, -3, or 42.
- Floating-point numbers (float): Decimal numbers, such as 3.14, -0.5, or 1.0.
- Strings (str): Sequences of characters, such as "hello", 'world', or "Python is fun!".
- Booleans (bool): Logical values, either

or**True**

.**False**

You can determine the type of a value or variable using the

function:**type()**

`x = 42`

print(type(x)) # Output: <class 'int'>

y = 3.14

print(type(y)) # Output: <class 'float'>

z = "Python"

print(type(z)) # Output: <class 'str'>

a = True

print(type(a)) # Output: <class 'bool'>

### 2.2.3 Type Conversion

You can convert between different data types using built-in Python functions, such as

, **int()**

, **float()**

, and **str()**

.**bool()**

Examples of type conversion:

`x = 5.5`

y = int(x) # Convert float to int, y becomes 5

a = 3

b = float(a) # Convert int to float, b becomes 3.0

c = 42

d = str(c) # Convert int to str, d becomes "42"

e = "123"

f = int(e) # Convert str to int, f becomes 123

It's important to note that not all conversions are possible. For example, converting a non-numeric string to an integer or float will result in a

.**ValueError**

Understanding variables and data types is crucial in Python programming, as it forms the basis for manipulating data and performing various operations. As you progress through this book, you will encounter more advanced data types, such as lists, dictionaries, and tuples, which will allow you to work with more complex data structures.

### Exercise 2.2.1: Celsius to Fahrenheit Converter

In this exercise, you will write a Python program that converts a temperature in degrees Celsius to degrees Fahrenheit. You will practice using variables, data types, expressions, and the

function.**print()**

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare a variable named

and assign it the value of the temperature in degrees Celsius (e.g., 30).**celsius** - Calculate the temperature in degrees Fahrenheit using the formula

, and assign the result to a new variable named**fahrenheit = (celsius * 9/5) + 32**

.**fahrenheit** - Use the

function to display the temperature in degrees Fahrenheit, formatted as a string with a degree symbol (°F).**print()**

Your final code should look something like this:

`celsius = 30`

fahrenheit = (celsius * 9/5) + 32

print(f"{celsius}°C is equal to {fahrenheit}°F")

When you run your program, you should see output similar to the following:

`30°C is equal to 86.0°F`

Feel free to modify the

value to test your program with different temperatures. This exercise helps you become familiar with variables, data types, arithmetic expressions, and the **celsius**

function with f-strings for formatted output.**print()**

### Exercise 2.2.2: Calculate the Area and Perimeter of a Rectangle

In this exercise, you will write a Python program that calculates the area and perimeter of a rectangle. You will practice using variables and data types.

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare two variables:

and**length**

. Assign them appropriate values (e.g., 5 and 3, respectively).**width** - Calculate the area of the rectangle using the formula

, and assign the result to a variable named**area = length * width**

.**area** - Calculate the perimeter of the rectangle using the formula

, and assign the result to a variable named**perimeter = 2 * (length + width)**

.**perimeter** - Use the

function to display the calculated area and perimeter of the rectangle.**print()**

Your final code should look something like this:

`length = 5`

width = 3

area = length * width

perimeter = 2 * (length + width)

print(f"The area of a rectangle with length {length} and width {width} is {area}")

print(f"The perimeter of a rectangle with length {length} and width {width} is {perimeter}")

When you run your program, you should see output similar to the following:

`The area of a rectangle with length 5 and width 3 is 15`

The perimeter of a rectangle with length 5 and width 3 is 16

Feel free to modify the

and **length**

variables to practice with different rectangle dimensions. This exercise helps you become familiar with variables and data types in Python.**width**

### Exercise 2.2.3: Simple Interest Calculator

In this exercise, you will write a Python program that calculates the simple interest earned on an investment. You will practice using variables and data types.

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare three variables:

,**principal**

, and**rate**

. Assign them appropriate values (e.g., 1000, 0.05, and 3, respectively).**time** - Calculate the simple interest using the formula

, and assign the result to a variable named**simple_interest = principal * rate * time**

.**simple_interest** - Use the

function to display the calculated simple interest.**print()**

Your final code should look something like this:

`principal = 1000`

rate = 0.05

time = 3

simple_interest = principal * rate * time

print(f"The simple interest earned on an investment of ${principal} at a rate of {rate * 100}% over {time} years is ${simple_interest}")

When you run your program, you should see output similar to the following:

`The simple interest earned on an investment of $1000 at a rate of 5.0% over 3 years is $150.0`

Feel free to modify the variables to practice with different investment scenarios. These exercises help you become familiar with variables and data types in Python.

## 2.2 Variables and Data Types

### 2.2.1 Variables

). The variable name must follow certain naming conventions:**=**

- Start with a letter or an underscore (_)
- Consist of letters, numbers, or underscores
- Be case-sensitive

Examples of variable assignments:

`name = "John"`

age = 25

_height = 175.5

You can also perform multiple assignments in a single line:

`x, y, z = 1, 2, 3`

### 2.2.2 Data Types

- Integers (int): Whole numbers, such as 5, -3, or 42.
- Floating-point numbers (float): Decimal numbers, such as 3.14, -0.5, or 1.0.
- Strings (str): Sequences of characters, such as "hello", 'world', or "Python is fun!".
- Booleans (bool): Logical values, either

or**True**

.**False**

You can determine the type of a value or variable using the

function:**type()**

`x = 42`

print(type(x)) # Output: <class 'int'>

y = 3.14

print(type(y)) # Output: <class 'float'>

z = "Python"

print(type(z)) # Output: <class 'str'>

a = True

print(type(a)) # Output: <class 'bool'>

### 2.2.3 Type Conversion

, **int()**

, **float()**

, and **str()**

.**bool()**

Examples of type conversion:

`x = 5.5`

y = int(x) # Convert float to int, y becomes 5

a = 3

b = float(a) # Convert int to float, b becomes 3.0

c = 42

d = str(c) # Convert int to str, d becomes "42"

e = "123"

f = int(e) # Convert str to int, f becomes 123

.**ValueError**

### Exercise 2.2.1: Celsius to Fahrenheit Converter

function.**print()**

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare a variable named

and assign it the value of the temperature in degrees Celsius (e.g., 30).**celsius** - Calculate the temperature in degrees Fahrenheit using the formula

, and assign the result to a new variable named**fahrenheit = (celsius * 9/5) + 32**

.**fahrenheit** - Use the

function to display the temperature in degrees Fahrenheit, formatted as a string with a degree symbol (°F).**print()**

Your final code should look something like this:

`celsius = 30`

fahrenheit = (celsius * 9/5) + 32

print(f"{celsius}°C is equal to {fahrenheit}°F")

When you run your program, you should see output similar to the following:

`30°C is equal to 86.0°F`

value to test your program with different temperatures. This exercise helps you become familiar with variables, data types, arithmetic expressions, and the **celsius**

function with f-strings for formatted output.**print()**

### Exercise 2.2.2: Calculate the Area and Perimeter of a Rectangle

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare two variables:

and**length**

. Assign them appropriate values (e.g., 5 and 3, respectively).**width** - Calculate the area of the rectangle using the formula

, and assign the result to a variable named**area = length * width**

.**area** - Calculate the perimeter of the rectangle using the formula

, and assign the result to a variable named**perimeter = 2 * (length + width)**

.**perimeter** - Use the

function to display the calculated area and perimeter of the rectangle.**print()**

Your final code should look something like this:

`length = 5`

width = 3

area = length * width

perimeter = 2 * (length + width)

print(f"The area of a rectangle with length {length} and width {width} is {area}")

print(f"The perimeter of a rectangle with length {length} and width {width} is {perimeter}")

When you run your program, you should see output similar to the following:

`The area of a rectangle with length 5 and width 3 is 15`

The perimeter of a rectangle with length 5 and width 3 is 16

and **length**

variables to practice with different rectangle dimensions. This exercise helps you become familiar with variables and data types in Python.**width**

### Exercise 2.2.3: Simple Interest Calculator

Instructions:

- Create a new Python file or open a Python interpreter.
- Declare three variables:

,**principal**

, and**rate**

. Assign them appropriate values (e.g., 1000, 0.05, and 3, respectively).**time** - Calculate the simple interest using the formula

, and assign the result to a variable named**simple_interest = principal * rate * time**

.**simple_interest** - Use the

function to display the calculated simple interest.**print()**

Your final code should look something like this:

`principal = 1000`

rate = 0.05

time = 3

simple_interest = principal * rate * time

print(f"The simple interest earned on an investment of ${principal} at a rate of {rate * 100}% over {time} years is ${simple_interest}")

When you run your program, you should see output similar to the following:

`The simple interest earned on an investment of $1000 at a rate of 5.0% over 3 years is $150.0`