Welcome! This channel is for anyone starting out with Python.
I'm learning too — just sharing what I know and picking up more along the way.
We'll cover the basics step by step, help each other, and have some fun doing it.
One day, we'll grow this into a full community of coders.
No stress. Just learning, curiosity, and progress.
I'm learning too — just sharing what I know and picking up more along the way.
We'll cover the basics step by step, help each other, and have some fun doing it.
One day, we'll grow this into a full community of coders.
No stress. Just learning, curiosity, and progress.
❓ Questions & Help
If you have any questions about the lessons, PDFs, or Python in general, feel free to ask in this group (https://t.me/python_programming0).
Don't stay stuck — ask and learn 💡🐍
If you have any questions about the lessons, PDFs, or Python in general, feel free to ask in this group (https://t.me/python_programming0).
Don't stay stuck — ask and learn 💡🐍
Telegram
Python programming
Welcome! This group’s for anyone starting out with Python.
I’m learning too — just sharing what I know and picking up more along the way.
We’ll cover the basics step by step, help each other, and have some fun doing it.
One day, we’ll grow this into a ful
I’m learning too — just sharing what I know and picking up more along the way.
We’ll cover the basics step by step, help each other, and have some fun doing it.
One day, we’ll grow this into a ful
Python coding
Basic_Python_Intro_Notes.pdf
Introduction to Programming with Python
---
What is Python?
Python is a popular programming language created by Guido van Rossum in 1991.
It is known for:
- Simplicity
- Readability
- Flexibility
- Powerful libraries
Python is beginner-friendly while still being powerful enough for AI, web development, and automation.
---
What is Python Used For?
- Web Development
- Software Development
- Data Science & Mathematics
- Automation & System Scripting
Python works on multiple platforms:
- Windows
- Linux
- Mac
- Raspberry Pi
---
Important Concept: Indentation
Unlike many programming languages that use
Example:
Proper indentation is required in Python.
---
Your First Python Program
This prints text to the screen.
---
Reading User Input
Use the
---
Variables in Python
Variables are containers used to store data.
Python automatically detects the data type.
---
Casting
Casting is used to force a variable into a specific data type.
---
Variable Naming Rules
- Must start with a letter or underscore
- Cannot start with a number
- Can contain letters, numbers, and underscores
- Case-sensitive (
- Cannot use Python keywords like:
- if
- while
- print
---
Naming Conventions
Camel Case:
Pascal Case:
Snake Case (Recommended in Python):
---
Built-in Data Types
Python includes several built-in data types:
- Text →
- Numeric →
- Sequence →
- Mapping →
- Boolean →
Check a variable type using
Output:
---
Comments in Python
Comments make code easier to understand.
Single-line comment:
Multi-line comment:
---
What is Python?
Python is a popular programming language created by Guido van Rossum in 1991.
It is known for:
- Simplicity
- Readability
- Flexibility
- Powerful libraries
Python is beginner-friendly while still being powerful enough for AI, web development, and automation.
---
What is Python Used For?
- Web Development
- Software Development
- Data Science & Mathematics
- Automation & System Scripting
Python works on multiple platforms:
- Windows
- Linux
- Mac
- Raspberry Pi
---
Important Concept: Indentation
Unlike many programming languages that use
{ }, Python uses indentation (spaces) to define code blocks.Example:
if 5 > 2:
print("Five is greater than two")
Proper indentation is required in Python.
---
Your First Python Program
print("Hello World")This prints text to the screen.
---
Reading User Input
Use the
input() function to get data from users.name = input("Please enter your name: ")
print(f"Hi {name}, nice to meet you!")---
Variables in Python
Variables are containers used to store data.
x = 5
y = "John"
Python automatically detects the data type.
---
Casting
Casting is used to force a variable into a specific data type.
str(3) # '3'
int(3.8) # 3
float(3) # 3.0
---
Variable Naming Rules
- Must start with a letter or underscore
_- Cannot start with a number
- Can contain letters, numbers, and underscores
- Case-sensitive (
age, Age, and AGE are different)- Cannot use Python keywords like:
- if
- while
---
Naming Conventions
Camel Case:
myVariableName
Pascal Case:
MyVariableName
Snake Case (Recommended in Python):
my_variable_name
---
Built-in Data Types
Python includes several built-in data types:
- Text →
str- Numeric →
int, float, complex- Sequence →
list, tuple, range- Mapping →
dict- Boolean →
boolCheck a variable type using
type():print(type(5))
Output:
<class 'int'>
---
Comments in Python
Comments make code easier to understand.
Single-line comment:
# This is a comment
Multi-line comment:
"""
This is a multi-line comment
"""
Python coding
Basic_Python_Control_Structures.pdf
Control Structures and Loops in Python
---
Conditional Statements
Conditional statements allow programs to make decisions based on conditions.
They help control the flow of a program by executing different code depending on whether a condition is True or False.
---
Comparison Operators
| Operator | Meaning |
|----------|----------|
| == | Equal to |
| != | Not equal to |
| < | Less than |
| <= | Less than or equal to |
| > | Greater than |
| >= | Greater than or equal to |
---
If, Elif, and Else
-
-
-
Example:
---
Logical Operators
Logical operators combine multiple conditions.
---
AND Operator
Returns True only if both conditions are True.
---
OR Operator
Returns True if at least one condition is True.
---
NOT Operator
Reverses the result.
---
Loops in Python
Loops repeat code multiple times while a condition is met.
Python mainly uses:
- while loop
- for loop
---
The While Loop
Executes repeatedly while the condition remains True.
Important:
Always update the loop variable to avoid infinite loops.
---
Break Statement
Stops the loop immediately.
---
Continue Statement
Skips the current iteration and continues with the next one.
---
Else with Loops
The
---
The For Loop
A
- Lists
- Tuples
- Strings
Example:
---
Practice Exercises
1. Write a program to check whether a number is positive, negative, or zero.
2. Print all even numbers from 1 to 20 using a loop.
3. Create a loop that stops when the number 5 is reached.
4. Loop through a string and print each character separately.
---
Conditional Statements
Conditional statements allow programs to make decisions based on conditions.
They help control the flow of a program by executing different code depending on whether a condition is True or False.
---
Comparison Operators
| Operator | Meaning |
|----------|----------|
| == | Equal to |
| != | Not equal to |
| < | Less than |
| <= | Less than or equal to |
| > | Greater than |
| >= | Greater than or equal to |
---
If, Elif, and Else
-
if → checks the first condition -
elif → checks another condition if previous ones are False -
else → runs if none of the conditions are True Example:
a = 200
b = 33
if b > a:
print("b is greater than a")
elif a == b:
print("a and b are equal")
else:
print("a is greater than b")
---
Logical Operators
Logical operators combine multiple conditions.
---
AND Operator
Returns True only if both conditions are True.
a = 200
b = 33
c = 500
if a > b and c > a:
print("Both conditions are satisfied")
---
OR Operator
Returns True if at least one condition is True.
if a > b or a > c:
print("At least one condition is True")
---
NOT Operator
Reverses the result.
a = 33
b = 200
if not a > b:
print("a is NOT greater than b")
---
Loops in Python
Loops repeat code multiple times while a condition is met.
Python mainly uses:
- while loop
- for loop
---
The While Loop
Executes repeatedly while the condition remains True.
i = 1
while i < 6:
print(i)
i += 1
Important:
Always update the loop variable to avoid infinite loops.
---
Break Statement
Stops the loop immediately.
i = 1
while i < 6:
print(i)
if i == 3:
break
i += 1
---
Continue Statement
Skips the current iteration and continues with the next one.
i = 0
while i < 6:
i += 1
if i == 3:
continue
print(i)
---
Else with Loops
The
else block runs once when the loop condition becomes False.i = 1
while i < 6:
print(i)
i += 1
else:
print("Loop finished")
---
The For Loop
A
for loop is used to iterate through sequences such as:- Lists
- Tuples
- Strings
Example:
fruits = ["apple", "banana", "cherry"]
for x in fruits:
print(x)
---
Practice Exercises
1. Write a program to check whether a number is positive, negative, or zero.
2. Print all even numbers from 1 to 20 using a loop.
3. Create a loop that stops when the number 5 is reached.
4. Loop through a string and print each character separately.
Python coding
Basic_Python_Functions_Recursion.pdf
Functions and Recursion in Python
---
Working with Functions
A function is a reusable block of code that runs only when it is called.
Functions help:
- Organize code
- Avoid repetition
- Make programs easier to manage
---
Default Parameter Values
A function can use a default value if no argument is provided.
Output:
---
Passing Sequences as Arguments
Functions can receive lists, tuples, dictionaries, and other data types.
---
Return Values
Use the
Output:
---
Recursion
Recursion is when a function calls itself.
It is useful for:
- Mathematical problems
- Repeated calculations
- Breaking problems into smaller parts
---
Important Note
Recursive functions must have a stopping condition (base case).
Without it, the function may run forever and crash the program.
---
Recursion Example
This function adds numbers from 6 down to 0.
---
Lambda Functions
A lambda function is a small anonymous function.
Syntax:
Example:
Output:
---
Why Use Lambda Functions?
Useful for:
- Short operations
- One-line functions
- Functional programming techniques
---
Practice Exercises
1. Create a Fibonacci sequence program.
The sequence starts with:
0, 1, 1, 2, 3, 5, 8...
Each number equals the sum of the previous two numbers.
---
2. Write a function that accepts a positive integer and calculates the sum of all numbers down to 0.
Example:
---
Working with Functions
A function is a reusable block of code that runs only when it is called.
Functions help:
- Organize code
- Avoid repetition
- Make programs easier to manage
---
Default Parameter Values
A function can use a default value if no argument is provided.
def my_function(country="Norway"):
print("I am from " + country)
my_function("Sweden")
my_function()
Output:
I am from Sweden
I am from Norway
---
Passing Sequences as Arguments
Functions can receive lists, tuples, dictionaries, and other data types.
def my_list_function(food):
for x in food:
print(x)
fruits = ["apple", "banana", "cherry"]
my_list_function(fruits)
---
Return Values
Use the
return statement to send data back from a function.def multiply_by_five(x):
return 5 * x
result = multiply_by_five(3)
print(result)
Output:
15
---
Recursion
Recursion is when a function calls itself.
It is useful for:
- Mathematical problems
- Repeated calculations
- Breaking problems into smaller parts
---
Important Note
Recursive functions must have a stopping condition (base case).
Without it, the function may run forever and crash the program.
---
Recursion Example
def tri_recursion(k):
if k > 0:
result = k + tri_recursion(k - 1)
return result
else:
return 0
print(tri_recursion(6))
This function adds numbers from 6 down to 0.
---
Lambda Functions
A lambda function is a small anonymous function.
Syntax:
lambda arguments : expression
Example:
x = lambda a, b: a * b
print(x(5, 6))
Output:
30
---
Why Use Lambda Functions?
Useful for:
- Short operations
- One-line functions
- Functional programming techniques
---
Practice Exercises
1. Create a Fibonacci sequence program.
The sequence starts with:
0, 1, 1, 2, 3, 5, 8...
Each number equals the sum of the previous two numbers.
---
2. Write a function that accepts a positive integer and calculates the sum of all numbers down to 0.
Example:
Input: 5
Output: 15
❤1
Python coding
Basic_Python_Data_Structures_Lists.pdf
Data Structures: Lists in Python
---
Introduction to Lists
Lists are used to store multiple items in a single variable.
They are one of the main built-in collection data types in Python.
---
Key Characteristics of Lists
- Ordered → Items keep their position
- Changeable → Items can be modified
- Allow Duplicates → Same value can appear multiple times
---
Creating a List
---
Accessing List Items
Lists use indexes.
Output:
---
List Indexing
- Positive indexes start from the beginning
- Negative indexes start from the end
---
Negative Indexing
Output:
---
Range of Indexes
The start index is included, but the end index is excluded.
Output:
---
Changing List Items
Use the index number to modify an item.
---
List Length
Use
---
Essential List Methods
---
append()
Adds an item to the end.
---
insert()
Adds an item at a specific position.
---
remove()
Removes a specific item.
---
pop()
Removes the last item.
---
Membership Test
Use
---
Practice Exercises
1. Create a list of 5 favorite movies and print the third item.
2. Replace the second item in a list with a new value.
3. Add two new items to a list using:
- append()
- insert()
4. Check if
---
Introduction to Lists
Lists are used to store multiple items in a single variable.
They are one of the main built-in collection data types in Python.
---
Key Characteristics of Lists
- Ordered → Items keep their position
- Changeable → Items can be modified
- Allow Duplicates → Same value can appear multiple times
---
Creating a List
thislist = ["apple", "banana", "cherry"]
print(thislist)
---
Accessing List Items
Lists use indexes.
thislist = ["apple", "banana", "cherry"]
print(thislist[0])
print(thislist[1])
Output:
apple
banana
---
List Indexing
"apple" "banana" "cherry"
0 1 2
-3 -2 -1
- Positive indexes start from the beginning
- Negative indexes start from the end
---
Negative Indexing
thislist = ["apple", "banana", "cherry"]
print(thislist[-1])
Output:
cherry
---
Range of Indexes
The start index is included, but the end index is excluded.
thislist = ["apple", "banana", "cherry", "orange", "kiwi"]
print(thislist[2:4])
Output:
['cherry', 'orange']
---
Changing List Items
Use the index number to modify an item.
thislist = ["apple", "banana", "cherry"]
thislist[1] = "blackcurrant"
print(thislist)
---
List Length
Use
len() to count items.print(len(thislist))
---
Essential List Methods
---
append()
Adds an item to the end.
fruits = ["apple", "banana"]
fruits.append("orange")
print(fruits)
---
insert()
Adds an item at a specific position.
fruits.insert(1, "cherry")
print(fruits)
---
remove()
Removes a specific item.
fruits.remove("banana")
print(fruits)---
pop()
Removes the last item.
fruits.pop()
print(fruits)
---
Membership Test
Use
in to check if an item exists.if "apple" in fruits:
print("Yes, it is in the list!")
---
Practice Exercises
1. Create a list of 5 favorite movies and print the third item.
2. Replace the second item in a list with a new value.
3. Add two new items to a list using:
- append()
- insert()
4. Check if
"banana" exists in a list.
Python coding
Basic_Python_Advanced_Lists.pdf
Advanced List Operations in Python
---
Adding List Items
Python provides multiple ways to add items to a list.
---
append()
Adds an item to the end of the list.
Output:
---
insert()
Adds an item at a specific index.
---
extend()
Adds elements from another iterable.
---
Removing List Items
Python provides different methods for removing items.
---
remove()
Removes the first matching value.
---
pop()
Removes an item by index.
Without an index,
---
del Keyword
Delete a specific item:
Delete the entire list:
---
clear()
Removes all items but keeps the list object.
---
List Comprehension
A shorter and cleaner way to create lists.
Traditional way:
List comprehension way:
---
Sorting Lists
Sort alphabetically:
Reverse sorting:
---
Important Note
Sorting is case-sensitive.
Capital letters come before lowercase letters.
---
Copying Lists
Wrong way:
This only creates a reference.
---
Correct Ways to Copy
Using
Using `list()
another_copy = list(fruits)
python
list1 = ["a", "b"]
list2 = [1, 2]
list3 = list1 + list2
print(list3)
python
for x in list2:
list1.append(x)
print(list1)
---
Practice Exercises
1. Use list comprehension to convert all items in a list to uppercase.
2. Sort a list based on how close numbers are to 50.
3. Reverse a list using `.reverse()`.
---
Adding List Items
Python provides multiple ways to add items to a list.
---
append()
Adds an item to the end of the list.
fruits = ["apple", "banana"]
fruits.append("orange")
print(fruits)
Output:
['apple', 'banana', 'orange']
---
insert()
Adds an item at a specific index.
fruits = ["apple", "banana"]
fruits.insert(1, "cherry")
print(fruits)
---
extend()
Adds elements from another iterable.
fruits = ["apple", "banana"]
tropical = ["mango", "pineapple"]
fruits.extend(tropical)
print(fruits)
---
Removing List Items
Python provides different methods for removing items.
---
remove()
Removes the first matching value.
fruits = ["apple", "banana", "banana"]
fruits.remove("banana")
print(fruits)
---
pop()
Removes an item by index.
fruits = ["apple", "banana", "cherry"]
fruits.pop(1)
print(fruits)
Without an index,
pop() removes the last item.---
del Keyword
Delete a specific item:
fruits = ["apple", "banana", "cherry"]
del fruits[0]
print(fruits)
Delete the entire list:
del fruits
---
clear()
Removes all items but keeps the list object.
fruits = ["apple", "banana", "cherry"]
fruits.clear()
print(fruits)
---
List Comprehension
A shorter and cleaner way to create lists.
Traditional way:
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []
for x in fruits:
if "a" in x:
newlist.append(x)
print(newlist)
List comprehension way:
fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = [x for x in fruits if "a" in x]
print(newlist)
---
Sorting Lists
Sort alphabetically:
fruits = ["orange", "mango", "kiwi", "banana"]
fruits.sort()
print(fruits)
Reverse sorting:
fruits.sort(reverse=True)
print(fruits)
---
Important Note
Sorting is case-sensitive.
Capital letters come before lowercase letters.
---
Copying Lists
Wrong way:
list2 = list1
This only creates a reference.
---
Correct Ways to Copy
Using
.copy():new_copy = fruits.copy()
Using `list()
:
``pythonanother_copy = list(fruits)
---
Joining Two Lists
Using `+` operator:
python
list1 = ["a", "b"]
list2 = [1, 2]
list3 = list1 + list2
print(list3)
Using a loop:
python
for x in list2:
list1.append(x)
print(list1)
`---
Practice Exercises
1. Use list comprehension to convert all items in a list to uppercase.
2. Sort a list based on how close numbers are to 50.
3. Reverse a list using `.reverse()`.
Python coding
Basic_Python_Tuples.pdf
Basic Python Course
Data Structures: Tuples
By Yehya Oumer
(Certificate from Mizan Institute of Technology)
Issued: 2026
---
1. Introduction to Tuples
Tuples are used to store multiple items in a single variable.
They are one of the 4 built-in collection data types in Python.
---
Characteristics of Tuples
- Ordered → Items keep their position
- Unchangeable (Immutable) → Items cannot be modified after creation
- Allow Duplicates → Multiple items can have the same value
---
Creating a Tuple
---
One-Item Tuple Trick
To create a tuple with only one item, you must include a comma.
Correct:
Wrong:
Without the comma, Python treats it as a string.
---
2. Updating Tuples (The Workaround)
Tuples are immutable, meaning they cannot be changed directly.
However, there is a common workaround:
1. Convert tuple to list
2. Modify the list
3. Convert back to tuple
Example:
---
3. Unpacking Tuples
Packing means storing values into a tuple.
Unpacking means extracting tuple values into variables.
Output:
---
Using the Asterisk (*)
If variables are fewer than values, use
Output:
---
4. Join and Multiply Tuples
Join Tuples
Use
---
Multiply Tuples
Use
Output:
---
5. Why Use Tuples?
You may ask:
Why use tuples if lists already exist?
Here are two important reasons:
---
Performance
Tuples are slightly faster than lists because they are immutable.
---
Data Safety
Tuples protect data from accidental modification.
Useful for:
- Coordinates
- Days of the week
- Months of the year
- Fixed configuration data
---
Practice Exercises
1. Reverse this tuple:
2. Check if
3. Use
Data Structures: Tuples
By Yehya Oumer
(Certificate from Mizan Institute of Technology)
Issued: 2026
---
1. Introduction to Tuples
Tuples are used to store multiple items in a single variable.
They are one of the 4 built-in collection data types in Python.
---
Characteristics of Tuples
- Ordered → Items keep their position
- Unchangeable (Immutable) → Items cannot be modified after creation
- Allow Duplicates → Multiple items can have the same value
---
Creating a Tuple
thistuple = ("apple", "banana", "cherry")
print(thistuple)---
One-Item Tuple Trick
To create a tuple with only one item, you must include a comma.
Correct:
thistuple = ("apple",)Wrong:
thistuple = ("apple")Without the comma, Python treats it as a string.
---
2. Updating Tuples (The Workaround)
Tuples are immutable, meaning they cannot be changed directly.
However, there is a common workaround:
1. Convert tuple to list
2. Modify the list
3. Convert back to tuple
Example:
x = ("apple", "banana", "cherry")
y = list(x) # Convert to list
y[1] = "kiwi" # Modify the list
x = tuple(y) # Convert back to tuple
print(x)---
3. Unpacking Tuples
Packing means storing values into a tuple.
Unpacking means extracting tuple values into variables.
fruits = ("apple", "banana", "cherry")
(green, yellow, red) = fruits
print(green)Output:
apple
---
Using the Asterisk (*)
If variables are fewer than values, use
* to collect the remaining values.fruits = ("apple", "banana", "cherry", "orange")
(green, yellow, *others) = fruits
print(others)Output:
['cherry', 'orange']
---
4. Join and Multiply Tuples
Join Tuples
Use
+ to combine tuples.tuple1 = ("a", "b")
tuple2 = (1, 2)
tuple3 = tuple1 + tuple2
print(tuple3)---
Multiply Tuples
Use
* to repeat tuple content.fruits = ("apple", "banana")
print(fruits * 2)Output:
('apple', 'banana', 'apple', 'banana')---
5. Why Use Tuples?
You may ask:
Why use tuples if lists already exist?
Here are two important reasons:
---
Performance
Tuples are slightly faster than lists because they are immutable.
---
Data Safety
Tuples protect data from accidental modification.
Useful for:
- Coordinates
- Days of the week
- Months of the year
- Fixed configuration data
---
Practice Exercises
1. Reverse this tuple:
mytuple = ("apple", "banana", "cherry")2. Check if
"banana" exists inside the tuple using in.3. Use
.count() to count how many times a value appears in a tuple.
