diff --git a/Docs/Basic/03-loops.md b/Docs/Basic/03-loops.md new file mode 100644 index 0000000..2353c08 --- /dev/null +++ b/Docs/Basic/03-loops.md @@ -0,0 +1,122 @@ +### **1. Looping Through a List** + +```python +list = [1, 2, 3, 5, 9, 'abbas'] +for item in list: + print(f'Item In List: {item}') +``` + +**Explanation:** +- A `list` is a collection of items in Python, enclosed in square brackets `[]`. +- The `for` loop iterates over each element in the list. +- `item` is a variable that takes the value of each element in the list one by one. +- `print(f'Item In List: {item}')` uses an f-string to display the current item. + +**Output:** +``` +Item In List: 1 +Item In List: 2 +Item In List: 3 +Item In List: 5 +Item In List: 9 +Item In List: abbas +``` + +--- + +### **2. Looping Through a String** + +```python +string = "abbas gholi" +for char_string in string: + print(char_string) +``` + +**Explanation:** +- A `string` is a sequence of characters. +- The `for` loop iterates over each character in the string. +- `char_string` is a variable that holds each character in turn. +- Each character is printed on a new line. + +**Output:** +``` +a +b +b +a +s + +g +h +o +l +i +``` + +--- + +### **3. Looping Through a Dictionary** + +```python +price = { + "oil": 500000, + "egg": 350000, + "frute": { + "apple": 100000, + "orange": 120000 + } +} +``` + +This is a dictionary with: +- Keys: `"oil"`, `"egg"`, `"frute"` +- Values: numbers and another dictionary + +#### **Method 1: Looping Over Keys** + +```python +for name in price: + print(name, price[name]) +``` + +**Explanation:** +- `for name in price` iterates over the keys of the dictionary. +- `price[name]` retrieves the value corresponding to the key. +- Prints each key and its value. + +**Output:** +``` +oil 500000 +egg 350000 +frute {'apple': 100000, 'orange': 120000} +``` + +#### **Method 2: Using `.items()`** + +```python +for name, pr in price.items(): + print(name, pr) +``` + +**Explanation:** +- `.items()` returns key-value pairs as tuples. +- `name, pr` unpacks each tuple into two variables. +- More efficient and readable than accessing `price[name]`. + +**Output:** +``` +oil 500000 +egg 350000 +frute {'apple': 100000, 'orange': 120000} +``` + +--- + +### **Summary** + +| Concept | Description | +|----------------|-------------| +| **List** | Ordered collection of items. Use `for item in list` to iterate. | +| **String** | Sequence of characters. Use `for char in string` to access each character. | +| **Dictionary** | Key-value pairs. Use `for key in dict` or `for key, value in dict.items()` to loop. | + diff --git a/Docs/Basic/04-operators.md b/Docs/Basic/04-operators.md new file mode 100644 index 0000000..b6a6f68 --- /dev/null +++ b/Docs/Basic/04-operators.md @@ -0,0 +1,73 @@ +### **1. `for` Loop with `range()`** + +```python +for i in range(2, 20, 1): + print(f"i : {i}", end=" End \n") +``` + +- **`range(start, stop, step)`**: Generates a sequence of numbers starting from `start` (inclusive), up to `stop` (exclusive), increasing by `step`. + - `range(2, 20, 1)` → numbers from 2 to 19 (inclusive), step 1. +- **`for` loop**: Iterates over each number in the range. +- **`print(f"i : {i}", end=" End \n")`**: + - `f-string`: Formats the output with the current value of `i`. + - `end=" End \n"`: Replaces the default newline (`\n`) with `" End "` followed by a newline. +- **Output**: Prints each number with `" End "` at the end of each line. + +--- + +### **2. Looping Through a List Using Index and `enumerate()`** + +```python +list = ['abbas', 'mmd', 2006] +for key in range(len(list)): + value = list[key] + print(key, value) +``` + +- **`len(list)`**: Returns the number of elements in the list (3). +- **`range(len(list))`**: Creates numbers `0, 1, 2` (indices of the list). +- **`list[key]`**: Accesses the element at index `key`. +- **Output**: Prints index and value pair for each element. + +--- + +```python +for key, value in enumerate(list): + print(key, value) +``` + +- **`enumerate(list)`**: Returns pairs of `(index, value)` for each element. +- **`key, value`**: Unpacks each pair into two variables. +- **Output**: Same as above, but more concise and Pythonic. + +> ✅ **Best Practice**: Use `enumerate()` instead of `range(len())` for cleaner code. + +--- + +### **3. `zip()` Function – Pairing Two Lists** + +```python +name = ['egg', 'oil'] +price = [370000, 500000] +for final in zip(name, price): + print(final) +``` + +- **`zip(list1, list2)`**: Combines two lists element-wise into tuples. + - `zip(['egg', 'oil'], [370000, 500000])` → `[('egg', 370000), ('oil', 500000)]` +- **`for final in zip(...)`**: Iterates over each tuple. +- **Output**: Prints each pair as a tuple. + +> ✅ Use `zip()` when you need to process multiple lists in parallel. + +--- + +### Summary of Key Concepts: + +| Concept | Purpose | +|----------------|--------| +| `range(start, stop, step)` | Generate a sequence of numbers | +| `for` loop | Iterate over a sequence | +| `len(list)` | Get number of elements | +| `enumerate()` | Get index and value in a loop | +| `zip()` | Combine two or more lists element-wise |