Skip to content

PYTHON

LINK to HACMKD: https://hackmd.io/_ZLGXujhQM6pgBbYv2uwIQ?view

According to Codelani’s list, there are about 3,156 computer languages (including dialects of BASIC, esoteric programming languages, and markup languages ).

In Wikipedia you can find a more filtered list by type of language.

In this link, you can find their relationships.

WHAT IS PYTHON ?

Python is an open source and high-level programming language, which means, it is easily understandable and most crucially readable for humans, simultaneously being independent of the platform it is running.

WHY YOU SHOULD USE PYTHON ?

Do you want to work with AI ? Create your own social network ? A video game ? …

The answer to all these questions is Python.

List of Python applications:

More applications for Python here.

Readable and Maintainable Code

age = 16
if age >= 18:
    print “Eligible to Vote”
else:
    print “Not Eligible to Vote”

Compatible with Major Platforms and Systems

Python is supports many operating systems. You can even use Python interpreters to run the code on specific platforms and tools. Also, Python is an interpreted programming language. It allows you to run the same code on multiple platforms without recompilation.

According to the latest TIOBE Programming Community Index, Python is one of the top 3 popular programming languages of 2019.

Robust Standard Library

Its large and robust standard library makes Python score over other programming languages. The standard library allows you to choose from a wide range of modules according to your precise needs. Each module further enables you to add functionality to the Python application without writing additional code.

Many Open Source Frameworks and Tools

You can even use several open source Python frameworks, libraries and development tools to curtail development time without increasing development cost.

HOW TO START ?

Python 2 vs 3

  • Python 2.0 was first released in 2000. Its latest version, 2.7, was released in 2010.
  • Python 3.0 was released in 2008. Its newest version, 3.6, was released in 2016, and version 3.7 is currently in development.
  • Although Python 2.7 is still widely used, Python 3 adoption is growing quickly. In 2016, 71.9% of projects used Python 2.7, but by 2017, it had fallen to 63.7%. This signals that the programming community is turning to Python 3–albeit gradually–when developing real-world applications.
  • On January 1, 2020, Python 2.7 will “retire” and no longer be maintained.

Should you install Python 2.7 and 3 ? Our recommendation is YES, with an environment!

Python Environment

A python environment is a tool that helps to keep dependencies required by different projects separate by creating isolated python virtual environments for them. This is one of the most important tools that most of the Python developers use.

The two most popular tools for setting up environments are:

  • PIP (a Python package manager; funnily enough, it stands for “Pip Installs Packages”) with virtualenv (a tool for creating isolated environments)
  • Conda (a package and environment manager)

1. Install Anaconda

Anaconda is a Python distribution intended for massive data processing, predictive analysis and scientific programming that simplifies the management of packages. There are other ways to install python and the necessary packages for OpenCv but they are more complex and Anaconda makes it easier for us to work.

Windows users

In this link you can find a nice tutorial to set up your anaconda

Step 1 - Visit official Anaconda website and download it

There are different versions for different Windows, Mac and Linux operating systems. Download and follow the instructions to install the one that suits you best.

In my case is Ubuntu ( Linux )

You can check that you have installed it by opening a command line and typing the following:

python -V

Step 2 - Creating an environment from an environment.yml file

Use the terminal or an Anaconda Prompt for the following steps.

Create the environment for Python 3.7:

conda create -n yourenvname python=x.x anaconda

And press Yes [y]

To activate your environment:

conda activate nameenv

To deactivate an active environment:

conda deactivate

Create the environment for Python 2.7:

conda create -n yourenvname python=2.7 anaconda

Manage your environments like a pro

More information about managing environments.

Install a package:

conda install -c conda-forge <name_package>

WORKING WITH PYTHON

Mainly, one can execute a script in three ways:

  1. Using a python interpreter (like PythonLauncher in MacOS)
  2. Running a python script in the command line:
➜ python app.py
  1. Making the file executable. For this we need to tell it which interpreter to use.

To check where an application (in UNIX) or program (in Windows) resides in your computer, you can check it in the CL by:

➜ where python
/Users/macuser/anaconda2/bin/python
/usr/local/bin/python
/usr/bin/python

bash, windows and linux users

Instead of where, type in whereis

Then, the very first line of the file should be: #!path/to/python, i.e.: #!/Users/macuser/anaconda2/bin/python. Then, we can make the file executable by:

chmod +x app.py

And run it by:

./app.py

SOME BASIC STRUCTURES (LOOPS / CONDITIONALS)

For loop

for i in range(6):
    print ('Hello')

While Loop

a = 0
while a < 10:
    a = a + 1  #alternatively a += 1
    print(a)

Boolean Expressions

Conditionals

a = 1
if a > 5:
    print("This shouldn't happen.")
else:
    print("This should happen.")

EXAMPLES

Hello world

Super basic example:

print ('Hello')
➜ python Example_00.py
Hello

A bit more complex, with main structure:

def main():
    print ('Hello')

if __name__ == '__main__':
    main()
➜ python Example_01.py
Hello

Hello world with argparsing

Let’s pass some arguments:

import argparse

def main(name):
    print ('Hello', name)

if __name__ == '__main__':

    parser = argparse.ArgumentParser()
    parser.add_argument("--name", "-n", default = "Antonio", help="Tell me your name")
    parser.set_defaults(keep=False)

    args = parser.parse_args()
    main(args.name)
➜ python Example_02.py
Hello Antonio
➜ python Example_02.py -n 'Oscar'
Hello Oscar
➜ python Example_02.py -h
usage: Example_02.py [-h] [--name NAME]

optional arguments:
  -h, --help            show this help message and exit
  --name NAME, -n NAME  Tell me your name

How about the booleans?

import argparse

def main(name, repeat):

    print ('Hello', name)
    if repeat:
        print ('I dont really want to repeat it')

if __name__ == '__main__':

    parser = argparse.ArgumentParser()
    parser.add_argument("--name", "-n", default = "Antonio", help="Tell me your name")
    parser.add_argument("--repeat", "-r", dest='repeat', action='store_true', help="Number of repetitions")
    parser.set_defaults(keep=False)

    args = parser.parse_args()
    main(args.name, args.repeat)

If we run it, we have a subversive code:

➜ python Example_03.py -n Oscar
Hello Oscar
➜ python Example_03.py -n Oscar -r
Hello Oscar
I dont really want to repeat it

Want more?

More info about argparsing here.

CHALLENGE:

Read:

Understanding the Features and Usage of 10 Popular Python GUI Frameworks and Toolkits

Make something like this: