> For the complete documentation index, see [llms.txt](https://udsm-ai.gitbook.io/udsm-ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://udsm-ai.gitbook.io/udsm-ai/resources/machine-learning/fundamentals-of-python-programming.md).

# Fundamentals of Python Programming

Quick review on **Python Programming Language**

Python is a high-level, interpreted programming language known for its simplicity and readability. It supports multiple programming paradigms, including procedural, object-oriented, and functional programming.

**Key Concepts:**

* **Interpreted:** Python code is executed line by line, making it easy to test and debug.
* **Dynamic Typing:** Variables in Python are dynamically typed, meaning their types are inferred at runtime.
* **Indentation:** Python uses indentation to define blocks of code, enhancing readability.

**Data Types, Variables, and Operators**

**Data Types:**

* **Numeric Types:** Integers (`int`), Floating-Point Numbers (`float`), Complex Numbers (`complex`).
* **Sequence Types:** Lists (`list`), Tuples (`tuple`), Strings (`str`).
* **Mapping Type:** Dictionary (`dict`).
* **Boolean Type:** Boolean (`bool`).

**Variables:**

* Variables are used to store data values. They are created when a value is assigned to them.
* Variable names must start with a letter or underscore (\_), followed by letters, digits, or underscores.

**Operators:**

* **Arithmetic Operators:** Addition (+), Subtraction (-), Multiplication (\*), Division (/), Modulus (%), Exponentiation (\*\*).
* **Comparison Operators:** Equal to (==), Not equal to (!=), Greater than (>), Less than (<), Greater than or equal to (>=), Less than or equal to (<=).
* **Logical Operators:** AND (and), OR (or), NOT (not).

**Control Flow: Conditional Statements and Loops**

**Conditional Statements:**

* **if Statement:** Executes a block of code if a specified condition is true.
* **else Statement:** Executes a block of code if the preceding `if` condition is false.
* **elif Statement:** Adds additional conditions to evaluate if the preceding conditions are false.

**Loops:**

* **for Loop:** Iterates over a sequence (e.g., list, tuple, string) or other iterable objects.
* **while Loop:** Executes a block of code repeatedly as long as a specified condition is true.
* **Loop Control Statements:** `break` (terminates the loop), `continue` (skips the current iteration), `pass` (placeholder, does nothing).

**Functions and Modules**

**Functions:**

* Functions are reusable blocks of code that perform a specific task.
* They improve code readability, organization, and modularity.
* A function can accept parameters (inputs), perform operations, and return a result.

**Modules:**

* Modules are files containing Python code, which can include functions, classes, and variables.
* They allow code reuse and organization by separating related functionalities into different files.
* Modules can be imported into other Python scripts using the `import` statement.

**Introduction to NumPy and Pandas Libraries for Data Manipulation**

**NumPy:**

* NumPy (Numerical Python) is a powerful library for numerical computing in Python.
* It provides support for multidimensional arrays (ndarrays) and various mathematical functions for array operations.
* NumPy arrays are efficient and allow for fast vectorized operations, making them suitable for handling large datasets.

**Pandas:**

* Pandas is a popular library for data manipulation and analysis built on top of NumPy.
* It introduces two main data structures: Series (one-dimensional labeled arrays) and DataFrame (two-dimensional labeled data structures).
* Pandas provides functionalities for data cleaning, filtering, aggregation, and visualization, making it essential for data preprocessing and exploration.
