diff --git a/readme.md b/readme.md
index 08183477..98ae0b1a 100644
--- a/readme.md
+++ b/readme.md
@@ -1,51 +1,47 @@
# ๐ 30 Days Of Python
-
-
-| # Day | Topics |
-|-----------|:-------------------------------------------------------------------------------------------------------------: |
-| 01 | [Introduction](./readme.md) |
-| 02 | [Variables, Built-in Functions](./02_Day_Variables_builtin_functions/02_variables_builtin_functions.md) |
-| 03 | [Operators](./03_Day_Operators/03_operators.md) |
-| 04 | [Strings](./04_Day_Strings/04_strings.md)|
-| 05 | [Lists](./05_Day_Lists/05_lists.md) |
-| 06 | [Tuples](./06_Day_Tuples/06_tuples.md) |
-| 07 | [Sets](./07_Day_Sets/07_sets.md) |
-| 08 | [Dictionaries](./08_Day_Dictionaries/08_dictionaries.md) |
-| 09 | [Conditionals](./09_Day_Conditionals/09_conditionals.md) |
-| 10 | [Loops](./10_Day_Loops/10_loops.md) |
-| 11 | [Functions](./11_Day_Functions/11_functions.md) |
-| 12 | [Modules](./12_Day_Modules/12_modules.md) |
-| 13 | [List Comprehension](../13_Day_List_comprehension/13_list_comprehension.md)|
-| 14 | [Higher Order Functions](./14_Day_Higher_order_functions/14_higher_order_functions.md)|
-| 15 | [Python Type Errors](./15_Day_Python_type_errors/15_python_type_errors.md) |
-| 16 | [Python Date time](./16_Day_Python_date_time/16_python_datetime.md) |
-| 17 | [Exception Handling](./17_Day_Exception_handling/17_exception_handling.md)|
-| 18 | [Regular Expressions](./18_Day_Regular_expressions/18_regular_expressions.md)|
-| 19 | [File Handling](./19_Day_File_handling/19_file_handling.md) |
-| 20 | [Python Package Manager](./20_Day_Python_package_manager/20_python_package_manager.md) |
-| 21 | [Classes and Objects](./21_Day_Classes_and_objects/21_classes_and_objects.md) |
-| 22 | [Web Scraping](./22_Day_Web_scraping/22_web_scraping.md) |
-| 23 | [Virtual Environment](./23_Day_Virtual_environment/23_virtual_environment.md)|
-| 24 | [Statistics](./24_Day_Statistics/24_statistics.md) |
-| 25 | [Pandas](./25_Day_Pandas/25_pandas.md) |
-| 26 | [Python web](./26_Day_Python_web/26_python_web.md) |
-| 27 | [Python with MongoDB](./27_Day_Python_with_mongodb/27_python_with_mongodb.md) |
-| 28 | [API](./28_Day_API/28_API.md) |
-| 29 | [Building API](./29_Day_Building_API/29_building_API.md) |
-| 30 | [Conclusions](./30_Day_Conclusions/30_conclusions.md) |
+|# Day | Topics |
+|------|:---------------------------------------------------------:|
+| 01 | [Introduction](./readme.md)|
+| 02 | [Variables, Built-in Functions](./02_Day_Variables_builtin_functions/02_variables_builtin_functions.md)|
+| 03 | [Operators](./03_Day_Operators/03_operators.md)|
+| 04 | [Strings](./04_Day_Strings/04_strings.md)|
+| 05 | [Lists](./05_Day_Lists/05_lists.md)|
+| 06 | [Tuples](./06_Day_Tuples/06_tuples.md)|
+| 07 | [Sets](./07_Day_Sets/07_sets.md)|
+| 08 | [Dictionaries](./08_Day_Dictionaries/08_dictionaries.md)|
+| 09 | [Conditionals](./09_Day_Conditionals/09_conditionals.md)|
+| 10 | [Loops](./10_Day_Loops/10_loops.md)|
+| 11 | [Functions](./11_Day_Functions/11_functions.md)|
+| 12 | [Modules](./12_Day_Modules/12_modules.md)|
+| 13 | [List Comprehension](../13_Day_List_comprehension/13_list_comprehension.md)|
+| 14 | [Higher Order Functions](./14_Day_Higher_order_functions/14_higher_order_functions.md)|
+| 15 | [Python Type Errors](./15_Day_Python_type_errors/15_python_type_errors.md)|
+| 16 | [Python Date time](./16_Day_Python_date_time/16_python_datetime.md) |
+| 17 | [Exception Handling](./17_Day_Exception_handling/17_exception_handling.md)|
+| 18 | [Regular Expressions](./18_Day_Regular_expressions/18_regular_expressions.md)|
+| 19 | [File Handling](./19_Day_File_handling/19_file_handling.md)|
+| 20 | [Python Package Manager](./20_Day_Python_package_manager/20_python_package_manager.md)|
+| 21 | [Classes and Objects](./21_Day_Classes_and_objects/21_classes_and_objects.md)|
+| 22 | [Web Scraping](./22_Day_Web_scraping/22_web_scraping.md)|
+| 23 | [Virtual Environment](./23_Day_Virtual_environment/23_virtual_environment.md)|
+| 24 | [Statistics](./24_Day_Statistics/24_statistics.md)|
+| 25 | [Pandas](./25_Day_Pandas/25_pandas.md)|
+| 26 | [Python web](./26_Day_Python_web/26_python_web.md)|
+| 27 | [Python with MongoDB](./27_Day_Python_with_mongodb/27_python_with_mongodb.md)|
+| 28 | [API](./28_Day_API/28_API.md)|
+| 29 | [Building API](./29_Day_Building_API/29_building_API.md)|
+| 30 | [Conclusions](./30_Day_Conclusions/30_conclusions.md)|
๐งก๐งก๐งก HAPPY CODING ๐งก๐งก๐งก
+
Support the author to create more educational materials
-
-
30 Days Of Python: Day 1 - Introduction
-
@@ -59,13 +55,6 @@
-
-
-
-
-
-
-
[Day 2 >>](./02_Day_Variables_builtin_functions/02_variables_builtin_functions.md)
@@ -98,6 +87,7 @@
- [๐ป Exercises - Day 1](#-exercises---day-1)
- [Exercise: Level 1](#exercise-level-1)
- [Exercise: Level 2](#exercise-level-2)
+ - [Exercise: Level 3](#exercise-level-3)
# ๐ Day 1
@@ -105,18 +95,20 @@
**Congratulations** for deciding to participate in a _30 days of Python_ programming challenge . In this challenge you will learn everything you need to be a python programmer and the whole concept of programming. In the end of the challenge you will get a _30DaysOfPython_ programming challenge certificate.
-[Join the telegram channel to get help](https://t.me/ThirtyDaysOfPython)
+If you would like to actively engage in the challenge, you may join the 30DaysOfPython
+[30DaysOfPython challenge](https://t.me/ThirtyDaysOfPython) telegram group.
## Introduction
-Python is a high-level programming language for general-purpose programming. It is open source. This 30 days python challenge will help you learn the latest version of Python, Python 3 step by step. The topics are broken down into 30 days, where each day contains several topics with easy-to-understand explanations, real-world examples and many hands on exercises.
+Python is a high-level programming language for general-purpose programming. It is an open source, interpreted, objected-oriented programming language. Python was created by a Dutch programmer, Guido van Rossum. The name of Python programming language was derived from a British sketch comedy series, *Month Python's Flying Circus*. The first version was released on February 20, 1991. This 30 days of Python challenge will help you learn the latest version of Python, Python 3 step by step. The topics are broken down into 30 days, where each day contains several topics with easy-to-understand explanations, real-world examples, many hands on exercises and projects.
-This challenge is designed for beginners and professionals who want to learn python programming language.
+This challenge is designed for beginners and professionals who want to learn python programming language. It may take 30 to 100 days to complete the challenge, people who actively participate on the telegram group have a high probability of completing the challenge.
+If you are a visual learner or in favor of videos, you may get started with this [Python for Absolute Beginners video](https://www.youtube.com/watch?v=11OYpBrhdyM).
## Why Python ?
-It is a programming language which is very close to human language and because of that it is easy to learn and easy to use.
-Python is used by various industries and companies (including Google). It has been used to develop web applications, desktop applications, system adminstration, and machine learning libraries. Python is highly embraced language in the data science and machine learning community. I hope this is enough to convince you to start learning python. Python is eating the world and you are killing it before it eats you.
+It is a programming language which is very close to human language and because of that it is easy to learn and use.
+Python is used by various industries and companies (including Google). It has been used to develop web applications, desktop applications, system adminstration, and machine learning libraries. Python is highly embraced language in the data science and machine learning community. I hope this is enough to convince you to start learning Python. Python is eating the world and you are killing it before it eats you.
## Environment Setup
@@ -139,13 +131,13 @@ python --version
![Python Version](./images/python_versio.png)
-As you can see from the terminal, I am using _python 3.7.5_ version at the moment. If you mange to see the python version, well done. Python has been installed on your machine. Continue to the next section.
+As you can see from the terminal, I am using _Python 3.7.5_ version at the moment. Your version of Python might be different from mine by but it should be 3.6 or above. If you mange to see the python version, well done. Python has been installed on your machine. Continue to the next section.
### Python Shell
-Python is an interpreted scripting language, so it doesn't need to be compiled. It means it executes the code line by line. Python comes with a _Python Shell (Python Interactive Shell)_. It is used to execute a single python command and get the result.
+Python is an interpreted scripting language, so it does not need to be compiled. It means it executes the code line by line. Python comes with a _Python Shell (Python Interactive Shell)_. It is used to execute a single python command and get the result.
-Python Shell waits for the python code from the user. When you enter the code, it interprets the code and shows the result in the next line.
+Python Shell waits for the Python code from the user. When you enter the code, it interprets the code and shows the result in the next line.
Open your terminal or command prompt(cmd) and write:
```shell
@@ -154,35 +146,37 @@ python
![Python Scripting Shell](./images/opening_python_shell.png)
-The python interactive shell is opened and it is waiting for you to write python code. You will write your python script next to this symbol >>> and then click Enter.
-Lets write our very first script on the python scripting shell.
+The Python interactive shell is opened and it is waiting for you to write Python code(Python script). You will write your Python script next to this symbol >>> and then click Enter.
+Let us write our very first script on the Python scripting shell.
-![Python script on python shell](./images/adding_on_python_shell.png)
+![Python script on Python shell](./images/adding_on_python_shell.png)
-Well done, you wrote your first python script on python interactive shell. How do we close this shell ?
+Well done, you wrote your first Python script on Python interactive shell. How do we close the Python interactive shell ?
To close the shell, next to this symbol >> write **exit()** command and press Enter.
![Exit from python shell](./images/exit_from_shell.png)
-Now, you know how to open the python interactive shell and how to exit from it.
+Now, you know how to open the Python interactive shell and how to exit from it.
-Python will give you results if you write scripts that python understands, if not it returns errors. Let's make a deliberate mistake and see what python will return.
+Python will give you results if you write scripts that Python understands, if not it returns errors. Let's make a deliberate mistake and see what Python will return.
![Invalid Syntax Error](./images/invalid_syntax_error.png)
-As you can see from the returned error, python is so clever that it knows the mistake we made and which was _Syntax Error: invalid syntax_. Using x as multiplication in python is a syntax error because (x) is not a valid syntax in python. Instead of (**x**) we use asterisk (*) for multiplication. The returned error clearly shows what to fix.
-The process of identifying and removing errors from a program is called *debugging*. Let's debug it by putting * in place of **x**.
+As you can see from the returned error, Python is so clever that it knows the mistake we made and which was _Syntax Error: invalid syntax_. Using x as multiplication in Python is a syntax error because (x) is not a valid syntax in Python. Instead of (**x**) we use asterisk (*) for multiplication. The returned error clearly shows what to fix.
+
+The process of identifying and removing errors from a program is called *debugging*. Let us debug it by putting * in place of **x**.
![Fixing Syntax Error](./images/fixing_syntax_error.png)
-Our bug was fixed, the code ran and we got a result we were expecting. As a programmer you will see such kind of errors on daily basis. It is good to know how to debug. To be good at debugging you should understand what kind of errors you are facing:SyntaxError, IndexError, ModuleNotFoundError, KeyError, ImportError etc. We will see more about different python **_error types_** in later sections.
+Our bug was fixed, the code ran and we got a result we were expecting. As a programmer you will see such kind of errors on daily basis. It is good to know how to debug. To be good at debugging you should understand what kind of errors you are facing. Some of the Python errors you may encounter are *SyntaxError*, *IndexError*, *NameError*, *ModuleNotFoundError*, *KeyError*, *ImportError*, *AttributeError*, *TypeError*, *ValueError*, *ZeroDivisionError* etc. We will see more about different Python **_error types_** in later sections.
-Let's practice more how to use python interactive shell. Go to your terminal or command prompt and write the word **python**.
+Let us practice more how to use Python interactive shell. Go to your terminal or command prompt and write the word **python**.
![Python Scripting Shell](./images/opening_python_shell.png)
-The python interactive shell is opened. Let's do some basic mathematic operations (addition, subtraction, multiplication, division, modulus, exponential).
-Lets do some maths first before we write any python code:
+The Python interactive shell is opened. Let us do some basic mathematical operations (addition, subtraction, multiplication, division, modulus, exponential).
+
+Let us do some maths first before we write any Python code:
- 2 + 3 = 5
- 3 - 2 = 1
@@ -195,7 +189,8 @@ In python we have the following additional operations:
- 3 % 2 = 1 => which means finding the remainder
- 3 // 2 = 1 => which means removing the remainder
-Lets change the above mathematical expressions to code. The python shell has been opened and lets write a comment at the very beginning of the shell.
+Let us change the above mathematical expressions to Python code. The Python shell has been opened and let us write a comment at the very beginning of the shell.
+
A _comment_ is a part of the code which is not executed by python. So we can leave some text in our code to make our code more readable. Python does not run the comment part. A comment in python starts with hash(#) symbol.
This is how you write a comment in python
@@ -206,17 +201,18 @@ This is how you write a comment in python
![Maths on python shell](./images/maths_on_python_shell.png)
-Before we move on to the next section, lets practice more on the python interactive shell. Close the opened shell by writing _exit()_ on the shell and open it again and let's practice how to write text on the python shell.
+Before we move on to the next section, let us practice more on the Python interactive shell. Close the opened shell by writing _exit()_ on the shell and open it again and let us practice how to write text on the Python shell.
![Writing String on python shell](./images/writing_string_on_shell.png)
### Installing Visual Studio Code
-The python interactive shell is good to try and test small script codes but it won't be for a big project. In real work environment, developers use different code editors to write codes. In this 30 days of python programming challenge we will use visual studio code. Visual studio code is a very popular open source text editor. I am a fan of vscode and I would recommend to [download](https://code.visualstudio.com/) visual studio code, but if you are in favor of other editors, feel free to follow with what you have.
+The Python interactive shell is good to try and test small script codes but it will not be for a big project. In real work environment, developers use different code editors to write codes. In this 30 days of Python programming challenge we will use visual studio code. Visual studio code is a very popular open source text editor. I am a fan of vscode and I would recommend to [download](https://code.visualstudio.com/) visual studio code, but if you are in favor of other editors, feel free to follow with what you have.
[![Visual Studio Code](./images/vscode.png)](https://code.visualstudio.com/)
-If you installed visual studio code, let's see how to use it.
+If you installed visual studio code, let us see how to use it.
+If you prefer a video, you can follow this Visual Studio Code for Python [Video tutorial](https://www.youtube.com/watch?v=bn7Cx4z-vSo)
#### How to use visual studio code
@@ -238,24 +234,24 @@ After a long day of coding, you want to close your code editor, right? This is h
![Closing project](./images/closing_opened_project.png)
-Congratulations, you have finished setting up the development environment. Let's start coding.
+Congratulations, you have finished setting up the development environment. Let us start coding.
## Basic Python
### Python Syntax
-A python script can be written in python interactive shell or in the code editor. A python file has an extension .py.
+A Python script can be written in Python interactive shell or in the code editor. A Python file has an extension .py.
### Python Indentation
-An indentation is a white space in a text. Indentation in many languages is used to increase code readability, however python uses indentation to create block of codes. In other programming languages curly brackets are used to create blocks of codes instead of indentation. One of the common bugs when writing python code is wrong indentation.
+An indentation is a white space in a text. Indentation in many languages is used to increase code readability, however Python uses indentation to create block of codes. In other programming languages curly brackets are used to create blocks of codes instead of indentation. One of the common bugs when writing python code is wrong indentation.
![Indentation Error](./images/indentation.png)
### Comments
-Comments are very important to make the code more readable and to leave remarks in our code. Python doesn't run comment parts of our code.
-Any text starting with hash(#) in python is a comment.
+Comments are very important to make the code more readable and to leave remarks in our code. Python does not run comment parts of our code.
+Any text starting with hash(#) in Python is a comment.
**Example: Single Line Comment**
@@ -278,7 +274,7 @@ python is eating the world
### Data types
-In python there are several types of data types. Let's get started with the most common ones. Different data types will be covered in detail in other sections. For the time being let us just go through the different data types and get familiar with them. You do not have to have a clear understanding now.
+In Python there are several types of data types. Let us get started with the most common ones. Different data types will be covered in detail in other sections. For the time being, let us just go through the different data types and get familiar with them. You do not have to have a clear understanding now.
#### Number
@@ -303,7 +299,7 @@ A collection of one or more characters under a single or double quote. If a stri
'Finland'
'Python'
'I love teaching'
-'I hope you are enjoying the first day'
+'I hope you are enjoying the first day of 30DaysOfPython Challenge'
```
#### Booleans
@@ -325,19 +321,26 @@ Python list is an ordered collection which allows to store different data type i
```py
[0, 1, 2, 3, 4, 5] # all are the same data types - a list of numbers
-['Banana', 'Orange', 'Mango', 'Avocado'] # all the same data types - a list of strings (fruits!)
-['Finland','Estonia', 'Sweden','Norway'] # all the same data types - a list of strings (countries!)
+['Banana', 'Orange', 'Mango', 'Avocado'] # all the same data types - a list of strings (fruits)
+['Finland','Estonia', 'Sweden','Norway'] # all the same data types - a list of strings (countries)
['Banana', 10, False, 9.81] # different data types in the list - string, integer, boolean and float
```
#### Dictionary
-A python dictionary object is an unordered collection of data in a key:value pair format.
+A Python dictionary object is an unordered collection of data in a key value pair format.
**Example:**
```py
-{'name':'Asabeneh', 'country':'Finland', age:250, 'is_married':True}
+{
+'first_name':'Asabeneh',
+'last_name':'Yetayeh',
+'country':'Finland',
+'age':250,
+'is_married':True,
+'skills':['JS', 'React', 'Node', 'Python']
+}
```
#### Tuple
@@ -347,18 +350,23 @@ A tuple is an ordered collection of different data types like list but tuples ca
**Example:**
```py
-('Asabeneh', 'Brook', 'Abraham', 'Lidiya')
+('Asabeneh', 'Pawel', 'Brook', 'Abraham', 'Lidiya') # Names
+```
+
+```py
+('Earth', 'Jupiter', 'Neptune', 'Mars', 'Venus', 'Saturn', 'Uranus', 'Mercury') # planets
```
#### Set
-A set is a collection of data types similar to list and tuple. Unlike list and tuple, set is not an ordered collection of items. Like in mathematics, set in python stores only unique items.
+A set is a collection of data types similar to list and tuple. Unlike list and tuple, set is not an ordered collection of items. Like in Mathematics, set in Python stores only unique items.
-In later sections, we will go in detail about each and every python data type.
+In later sections, we will go in detail about each and every Python data type.
**Example:**
```py
+{2, 4, 3, 5}
{3.14, 9.81, 2.7} # order is not important in set
```
@@ -371,7 +379,8 @@ To check the data type of certain data/variable we use the **type** function. In
### Python File
First open your project folder, 30DaysOfPython. If you don't have this folder, create a folder name called 30DaysOfPython. Inside this folder, create a file called helloworld.py. Now, let's do what we did on python interactive shell using visual studio code.
-The python interactive shell was printing without using **print** but on visual studio code to see our result we should use a built in function **print(some data to print)**. See the examples below.
+
+The Python interactive shell was printing without using **print** but on visual studio code to see our result we should use a built in function *print(). The *print()* built-in function takes one or more arguments as follows *print('arument1', 'argument2', 'argument3')*. See the examples below.
**Example:**
@@ -399,18 +408,18 @@ print(type({9.8, 3.14, 2.7})) # Set
print(type((9.8, 3.14, 2.7))) # Tuple
```
-To run the python file check the image below. You can run the python file either by running the green button or by typing *python helloworld.py* in the terminal .
+To run the python file check the image below. You can run the python file either by running the green button on Visual Studio Code or by typing *python helloworld.py* in the terminal .
![Running python script](./images/running_python_script.png)
-๐ You are amazing. You have just completed day 1 challenge and you are on your way to greatness. Now do some exercises for your brain and for your muscle.
+๐ You are amazing. You have just completed day 1 challenge and you are on your way to greatness. Now do some exercises for your brain and muscles.
## ๐ป Exercises - Day 1
### Exercise: Level 1
1. Check the python version you are using
-2. Open the python interactive shell and do the following operations. The operands are 3 and 4. Check the example above
+2. Open the python interactive shell and do the following operations. The operands are 3 and 4.
- addition(+)
- subtraction(-)
- multiplication(\*)
@@ -435,7 +444,12 @@ To run the python file check the image below. You can run the python file either
### Exercise: Level 2
-1. Create a folder named day_1 inside 30DaysOfPython folder. Inside day_1 folder, create a python file helloworld.py and repeat questions 1, 2, 3 and 4. Remember to use _print()_ when you are working on a python file. Navigate to the directory where you have saved your file, and run it.
+1. Create a folder named day_1 inside 10DaysOfPython folder. Inside day_1 folder, create a python file helloworld.py and repeat questions 1, 2, 3 and 4. Remember to use _print()_ when you are working on a python file. Navigate to the directory where you have saved your file, and run it.
+
+### Exercise: Level 3
+
+1. Write an example for different Python data types such as Number(Integer, Float, Complex), String, Boolean, List, Tuple, Set and Dictionary.
+2. Find an [Euclidian distance](https://en.wikipedia.org/wiki/Euclidean_distance#:~:text=In%20mathematics%2C%20the%20Euclidean%20distance,being%20called%20the%20Pythagorean%20distance.) between (2, 3) and (10, 8)
๐ CONGRATULATIONS ! ๐