Convert Figma logo to code with AI

Asabeneh logo30-Days-Of-Python

30 days of Python programming challenge is a step-by-step guide to learn the Python programming language in 30 days. This challenge may take more than100 days, follow your own pace. These videos may help too: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw

46,000
8,769
46,000
184

Top Related Projects

12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all

📚 Playground and cheatsheet for learning Python. Collection of Python scripts that are split by topics and contain code examples with explanations.

Python - 100天从新手到大师

An opinionated list of awesome Python frameworks, libraries, software and resources.

120+ interactive Python coding interview challenges (algorithms and data structures). Includes Anki flashcards.

199,949

All Algorithms implemented in Python

Quick Overview

30 Days of Python is a comprehensive GitHub repository designed to teach Python programming over a 30-day period. It provides a structured curriculum with daily lessons, exercises, and projects, suitable for beginners and those looking to refresh their Python skills.

Pros

  • Well-structured, step-by-step learning approach
  • Covers a wide range of Python topics, from basics to advanced concepts
  • Includes practical exercises and projects for hands-on learning
  • Regular updates and active community support

Cons

  • May be too fast-paced for absolute beginners
  • Some advanced topics might require additional resources
  • Limited coverage of certain specialized Python libraries

Code Examples

  1. Day 1 - Introduction to Python:
# This is a comment
print('Hello, World!')
print(3 + 4)   # addition
print(3 - 4)   # subtraction
print(3 * 4)   # multiplication
print(3 % 4)   # modulus
print(3 / 4)   # division
print(3 ** 4)  # exponential
  1. Day 15 - Python Type Errors:
try:
    name = input('Enter your name:')
    year_born = input('Year you were born:')
    age = 2023 - year_born
    print(f'You are {age} years old.')
except TypeError:
    print('Type error occurred')
except ValueError:
    print('Value error occurred')
except ZeroDivisionError:
    print('zero division error occurred')
  1. Day 22 - Web Scraping:
import requests
from bs4 import BeautifulSoup

url = 'https://archive.ics.uci.edu/ml/datasets.php'

response = requests.get(url)
content = response.content
soup = BeautifulSoup(content, 'html.parser')

print(soup.title)
print(soup.title.get_text())
print(soup.body)
print(soup.body.h1)
print(soup.body.h1.get_text())

Getting Started

  1. Clone the repository:

    git clone https://github.com/Asabeneh/30-Days-Of-Python.git
    
  2. Navigate to the project directory:

    cd 30-Days-Of-Python
    
  3. Start with Day 1 by opening the corresponding markdown file:

    open 01_Day_Introduction/01_introduction.md
    
  4. Follow the daily lessons, complete exercises, and work on projects as you progress through the 30-day curriculum.

Competitor Comparisons

12 weeks, 26 lessons, 52 quizzes, classic Machine Learning for all

Pros of ML-For-Beginners

  • Covers a broader range of machine learning topics, including various algorithms and applications
  • Includes hands-on projects and real-world examples, making it more practical for beginners
  • Offers content in multiple programming languages, not limited to Python

Cons of ML-For-Beginners

  • Less structured daily progression compared to the 30-day format of 30-Days-Of-Python
  • May be overwhelming for absolute beginners due to its broader scope and complexity
  • Requires more self-pacing and discipline to complete

Code Comparison

30-Days-Of-Python:

numbers = [1, 2, 3, 4, 5]
squares = [num ** 2 for num in numbers]
print(squares)  # Output: [1, 4, 9, 16, 25]

ML-For-Beginners:

import numpy as np
from sklearn.linear_model import LinearRegression

X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])
model = LinearRegression().fit(X, y)
print(model.predict([[6]]))  # Output: [12.]

The code comparison shows that 30-Days-Of-Python focuses on basic Python concepts, while ML-For-Beginners introduces machine learning libraries and more advanced concepts.

📚 Playground and cheatsheet for learning Python. Collection of Python scripts that are split by topics and contain code examples with explanations.

Pros of learn-python

  • More comprehensive coverage of Python concepts, including advanced topics
  • Includes algorithmic challenges and data structures
  • Better organized with a clear table of contents and categorized sections

Cons of learn-python

  • Less structured as a day-by-day learning path
  • Fewer practical projects and real-world applications
  • May be overwhelming for absolute beginners due to its breadth of content

Code Comparison

30-Days-Of-Python example (Day 2 - Variables):

first_name = 'Asabeneh'
last_name = 'Yetayeh'
country = 'Finland'
city = 'Helsinki'
age = 250
is_married = True
skills = ['HTML', 'CSS', 'JS', 'React', 'Python']
person_info = {
    'firstname':'Asabeneh', 
    'lastname':'Yetayeh', 
    'country':'Finland',
    'city':'Helsinki'
}

learn-python example (Variables):

x = 5
y = "John"
print(x)
print(y)

The 30-Days-Of-Python example provides a more diverse set of variable types and uses, while learn-python offers a simpler introduction to variables.

Python - 100天从新手到大师

Pros of Python-100-Days

  • More comprehensive coverage of Python topics, spanning 100 days
  • Includes advanced topics like web development, data analysis, and GUI programming
  • Provides practical projects and real-world applications

Cons of Python-100-Days

  • May be overwhelming for absolute beginners due to its extensive content
  • Less focus on daily exercises and challenges
  • Written primarily in Chinese, which may be a barrier for non-Chinese speakers

Code Comparison

30-Days-Of-Python example (Day 2 - Variables):

first_name = 'Asabeneh'
last_name = 'Yetayeh'
country = 'Finland'
city = 'Helsinki'
age = 250
is_married = True
skills = ['HTML', 'CSS', 'JS', 'React', 'Python']
person_info = {
    'firstname':'Asabeneh', 
    'lastname':'Yetayeh', 
    'country':'Finland',
    'city':'Helsinki'
}

Python-100-Days example (Day 7 - String and Operations):

s1 = 'hello ' * 3
print(s1)  # hello hello hello 
s2 = 'world'
s1 += s2
print(s1)  # hello hello hello world
print('ll' in s1)  # True
print('good' in s1)  # False

Both repositories offer valuable Python learning resources, but they differ in approach and depth. 30-Days-Of-Python provides a more structured, daily approach suitable for beginners, while Python-100-Days offers a more comprehensive curriculum covering advanced topics.

An opinionated list of awesome Python frameworks, libraries, software and resources.

Pros of awesome-python

  • Comprehensive resource covering a wide range of Python libraries, frameworks, and tools
  • Regularly updated with community contributions
  • Well-organized into categories for easy navigation

Cons of awesome-python

  • Lacks structured learning path for beginners
  • No hands-on coding exercises or projects
  • May be overwhelming for newcomers due to the sheer volume of information

Code comparison

30-Days-Of-Python provides practical coding examples:

# Day 1: Introduction
print('Hello, World!')
print(3 + 4)
print(type(10))
print(type(3.14))
print(type('Asabeneh'))

awesome-python doesn't include code snippets, but rather links to resources:

## Audio

*Libraries for manipulating audio and its metadata.*

- [audioread](https://github.com/beetbox/audioread) - Cross-library (GStreamer + Core Audio + MAD + FFmpeg) audio decoding.
- [dejavu](https://github.com/worldveil/dejavu) - Audio fingerprinting and recognition.

30-Days-Of-Python is designed as a structured learning path for beginners, offering daily lessons and exercises. awesome-python serves as a comprehensive reference for Python libraries and tools, suitable for developers of all levels seeking specific resources.

120+ interactive Python coding interview challenges (algorithms and data structures). Includes Anki flashcards.

Pros of interactive-coding-challenges

  • Covers a wider range of topics, including data structures, algorithms, and system design
  • Provides interactive Jupyter notebooks for hands-on practice
  • Includes comprehensive test cases and solutions for each challenge

Cons of interactive-coding-challenges

  • Less structured learning path compared to 30-Days-Of-Python
  • May be more challenging for absolute beginners
  • Focuses on coding challenges rather than a comprehensive Python curriculum

Code Comparison

30-Days-Of-Python example (Day 1 - Introduction):

print(2 + 3)   # addition(+)
print(3 - 1)   # subtraction(-)
print(2 * 3)   # multiplication(*)
print(3 / 2)   # division(/)
print(3 ** 2)  # exponential(**)

interactive-coding-challenges example (from Array Challenges):

class Solution(object):
    def two_sum(self, nums, target):
        if nums is None or target is None:
            raise TypeError('nums or target cannot be None')
        if not nums:
            raise ValueError('nums cannot be empty')
        for i in range(len(nums)):
            for j in range(i + 1, len(nums)):
                if nums[i] + nums[j] == target:
                    return [i, j]
        return None

The code examples highlight the difference in focus between the two repositories. 30-Days-Of-Python starts with basic Python concepts, while interactive-coding-challenges dives into more complex problem-solving scenarios.

199,949

All Algorithms implemented in Python

Pros of Python

  • Comprehensive collection of algorithms and data structures
  • Well-organized repository with clear categorization
  • Suitable for learners at various skill levels, from beginners to advanced

Cons of Python

  • Lacks a structured learning path or curriculum
  • May be overwhelming for absolute beginners
  • Doesn't provide as much context or explanation for each algorithm

Code Comparison

30-Days-Of-Python (Day 1 - Hello World):

print('Hello, World!')

Python (Binary Search algorithm):

def binary_search(arr, x):
    low = 0
    high = len(arr) - 1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] < x:
            low = mid + 1
        elif arr[mid] > x:
            high = mid - 1
        else:
            return mid
    return -1

The 30-Days-Of-Python repository focuses on teaching Python basics through daily exercises, while Python provides a vast collection of algorithm implementations. 30-Days-Of-Python is more suitable for beginners looking for a structured learning path, whereas Python serves as an excellent resource for understanding and implementing various algorithms in Python.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

🐍 30 Days Of Python

Learn with Asabeneh by joining the upcoming CODING BOOTCAMP

# DayTopics
01Introduction
02Variables, Built-in Functions
03Operators
04Strings
05Lists
06Tuples
07Sets
08Dictionaries
09Conditionals
10Loops
11Functions
12Modules
13List Comprehension
14Higher Order Functions
15Python Type Errors
16Python Date time
17Exception Handling
18Regular Expressions
19File Handling
20Python Package Manager
21Classes and Objects
22Web Scraping
23Virtual Environment
24Statistics
25Pandas
26Python web
27Python with MongoDB
28API
29Building API
30Conclusions

Learn with Asabeneh by joining the upcoming CODING BOOTCAMP

🧡🧡🧡 HAPPY CODING 🧡🧡🧡

Support the author to create more educational materials
Paypal Logo

30 Days Of Python: Day 1 - Introduction

Twitter Follow

Author: Asabeneh Yetayeh
Second Edition: July, 2021

🇧🇷 Portuguese 🇨🇳 中文

Day 2 >>

30DaysOfPython

📘 Day 1

Welcome

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. At the end of the challenge, you will get a 30DaysOfPython programming challenge certificate.

If you would like to actively engage in the challenge, you may join the 30DaysOfPython challenge telegram group.

Introduction

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 the Python programming language was derived from a British sketch comedy series, Monty 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, and many hands on exercises and projects.

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 in the telegram group have a high probability of completing the challenge.

This challenge is easy to read, written in conversational English, engaging, motivating and at the same time, it is very demanding. You need to allocate much time to finish this challenge. If you are a visual learner, you may get the video lesson on Washera YouTube channel. You may start from Python for Absolute Beginners video. Subscribe the channel, comment and ask questions on YouTube vidoes and be proactive, the author will eventually notice you.

The author likes to hear your opinion about the challenge, share the author by expressing your thoughts about the 30DaysOfPython challenge. You can leave your testimonial on this link

Why Python ?

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 administration, and machine learning libraries. Python is a 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

Installing Python

To run a python script you need to install python. Let's download python. If your are a windows user. Click the button encircled in red.

installing on Windows

If you are a macOS user. Click the button encircled in red.

installing on Windows

To check if python is installed write the following command on your device terminal.

python --version

Python Version

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 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. Open your terminal or command prompt(cmd) and write:

python

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

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

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.

Invalid Syntax Error

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

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 us practice more how to use Python interactive shell. Go to your terminal or command prompt and write the word python.

Python Scripting Shell

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 is 5
  • 3 - 2 is 1
  • 3 * 2 is 6
  • 3 / 2 is 1.5
  • 3 ** 2 is the same as 3 * 3

In python we have the following additional operations:

  • 3 % 2 = 1 => which means finding the remainder
  • 3 // 2 = 1 => which means removing the remainder

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

 # comment starts with hash
 # this is a python comment, because it starts with a (#) symbol

Maths on 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

Installing Visual Studio Code

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 visual studio code, but if you are in favor of other editors, feel free to follow with what you have.

Visual Studio Code

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

How to use visual studio code

Open the visual studio code by double clicking the visual studio icon. When you open it you will get this kind of interface. Try to interact with the labeled icons.

Visual studio Code

Create a folder named 30DaysOfPython on your desktop. Then open it using visual studio code.

Opening Project on Visual studio

Opening a project

After opening it you will see shortcuts for creating files and folders inside of 30DaysOfPython project's directory. As you can see below, I have created the very first file, helloworld.py. You can do the same.

Creating a python file

After a long day of coding, you want to close your code editor, right? This is how you will close the opened project.

Closing project

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.

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 blocks of code. In other programming languages, curly brackets are used to create code blocks instead of indentation. One of the common bugs when writing Python code is incorrect indentation.

Indentation Error

Comments

Comments play a crucial role in enhancing code readability and allowing developers to leave notes within their code. In Python, any text preceded by a hash (#) symbol is considered a comment and is not executed when the code runs.

Example: Single Line Comment

    # This is the first comment
    # This is the second comment
    # Python is eating the world

Example: Multiline Comment

Triple quote can be used for multiline comment if it is not assigned to a variable

"""This is multiline comment
multiline comment takes multiple lines.
python is eating the world
"""

Data types

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

  • Integer: Integer(negative, zero and positive) numbers Example: ... -3, -2, -1, 0, 1, 2, 3 ...
  • Float: Decimal number Example ... -3.5, -2.25, -1.0, 0.0, 1.1, 2.2, 3.5 ...
  • Complex Example 1 + j, 2 + 4j

String

A collection of one or more characters under a single or double quote. If a string is more than one sentence then we use a triple quote.

Example:

'Asabeneh'
'Finland'
'Python'
'I love teaching'
'I hope you are enjoying the first day of 30DaysOfPython Challenge'

Booleans

A boolean data type is either a True or False value. T and F should be always uppercase.

Example:

    True  #  Is the light on? If it is on, then the value is True
    False # Is the light on? If it is off, then the value is False

List

Python list is an ordered collection which allows to store different data type items. A list is similar to an array in JavaScript.

Example:

[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', 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.

Example:

{
'first_name':'Asabeneh',
'last_name':'Yetayeh',
'country':'Finland', 
'age':250, 
'is_married':True,
'skills':['JS', 'React', 'Node', 'Python']
}

Tuple

A tuple is an ordered collection of different data types like list but tuples can not be modified once they are created. They are immutable.

Example:

('Asabeneh', 'Pawel', 'Brook', 'Abraham', 'Lidiya') # Names
('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.

In later sections, we will go in detail about each and every Python data type.

Example:

{2, 4, 3, 5}
{3.14, 9.81, 2.7} # order is not important in set

Checking Data types

To check the data type of certain data/variable we use the type function. In the following terminal you will see different python data types:

Checking Data types

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(). The print() built-in function takes one or more arguments as follows print('arument1', 'argument2', 'argument3'). See the examples below.

Example:

The file name is helloworld.py

# Day 1 - 30DaysOfPython Challenge

print(2 + 3)             # addition(+)
print(3 - 1)             # subtraction(-)
print(2 * 3)             # multiplication(*)
print(3 / 2)             # division(/)
print(3 ** 2)            # exponential(**)
print(3 % 2)             # modulus(%)
print(3 // 2)            # Floor division operator(//)

# Checking data types
print(type(10))          # Int
print(type(3.14))        # Float
print(type(1 + 3j))      # Complex number
print(type('Asabeneh'))  # String
print(type([1, 2, 3]))   # List
print(type({'name':'Asabeneh'})) # Dictionary
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 on Visual Studio Code or by typing python helloworld.py in the terminal .

Running python script

🌕 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.
    • addition(+)
    • subtraction(-)
    • multiplication(*)
    • modulus(%)
    • division(/)
    • exponential(**)
    • floor division operator(//)
  3. Write strings on the python interactive shell. The strings are the following:
    • Your name
    • Your family name
    • Your country
    • I am enjoying 30 days of python
  4. Check the data types of the following data:
    • 10
    • 9.8
    • 3.14
    • 4 - 4j
    • ['Asabeneh', 'Python', 'Finland']
    • Your name
    • Your family name
    • Your country

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.

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 between (2, 3) and (10, 8)

🎉 CONGRATULATIONS ! 🎉

Day 2 >>