Python (programming language)

**Python** is an open-source programming language. It was made as a language that is both easy to work on and understand. It was made by a Dutch programmer named Guido van Rossum in 1991, who named it after the television program Monty Python's Flying Circus.

Python is an interpreted language. This means it does not need to be compiled before running. A program called an interpreter runs Python code on almost any computer. So, a programmer can change the code and quickly see what happens. But this also makes Python slower than compiled languages like C, because it is not changed into machine code before running. Instead, this happens while the program is running.

## Python use 
Python is usually used for making websites, automating common tasks, and making charts and graphs. Since it's simple to learn, people who are not computer experts, like bookkeepers and researchers, often learn Python.

Its standard library is made up of many functions that come with Python when it is installed. On the Internet, there are many other libraries, which have been examined to provide wonderful ends in varied areas like Machine Learning (ML), Deep Learning, etc. These libraries make it a powerful language; it can do many different things.

Python's developers try to avoid changing the language to make it better until they have a lot of things to change. Also, they try not to make small repairs, called patches, to unimportant parts of CPython, the main version of Python, even if the patches would make it faster. When speed is important, a Python programmer can write some of the program in a different language, like C, or use PyPy, a different kind of Python that uses a just-in-time compiler.

Keeping Python fun to use is an important goal of Python’s developers. It reflects in the language's name, a tribute to the British comedy group Monty Python. Tutorials often take a playful approach, such as referring to spam and eggs instead of the standard foo and bar.

## Syntax 
Some of Python's syntax comes from C, because that is the language that Python was written in. But Python uses whitespace to delimit code: spaces or tabs are used to organize code into groups. This is different from C.  In C, there is a semicolon at the end of each line and curly braces ({}) are used to group code. Using whitespace to delimit code makes Python a very easy-to-read, but hard to manage language.

### Statements and control flow 
In Python, the assignment statement 
```python
myVariable = 42
```
 means that the variable `myVariable` is set to the integer 42. The type of `myVariable` is not needed: Python dynamically adapts its type to the given value. For example, replace 42 with the string 'spam'. The statement 
```python
myVariable = 'spam'
```
 would work, but it wouldn't in another language like C or C++.

Python's statements include the following keywords:
* The `if` statement runs its first block of code if its condition is met. The optional `elif` (a contraction of else if) statement runs its block of code if the previous conditions are not met, but its condition is met. The `else` statement runs the last block of code if none of the previous conditions are met.
* The `while` statement is a loop. As long as its condition is met, it runs its block of code.
* The `for` statement is a loop with an index. It iterates over a list and binds each element to the index to use in that block. 
* The `def` statement defines a function or method.
* The `pass` statement does nothing.
* The `class` statement allows the users to create their own type of objects like what integers and strings are.
* The `import` statement imports Python files for use in the user's code.
* The `print` statement outputs a message to the console.

### Expressions 
Python's expressions include some operators that are similar to other programming languages and others that are not:

* Addition `+`, subtraction `-`, multiplication `*`, and division `/`.
* Exponents, represented by `**`.
* To compare two values, the condition uses `==`.
* Python uses the words `and`, `or`, and `not` for its boolean expressions.
* To check if a value is in a list, Python uses `in`.

## Example 
The following Python program shows "Hello World!" on the screen:

```python3
print("Hello World!")
```

A comment starts with `#` until the end of the line:

```python3
print("Hello World!") # displays: Hello World!
```

When a variable is modified by a number or a word, the programmer does not have to say what is the type of the variable. The assignment (modification) of the variable is dynamic. This makes it easier to reuse the variable, making fast changes simpler. An example of this is shown below. This code will display the number 42 then the string `"Hello World!"`, using the same variable.

```python3
myVariable = 42
print(myVariable) # displays: 42

myVariable = "Hello World!"
print(myVariable) # displays: Hello World!
```

In another language like C, a programmer would have to declare whether `myVariable` is a number or a string before modify it. An error will occur if one changes a number to a string.

Python has easy-to-use functions. The C language requires the type of the function. In Python, the function does not need a type after `:`.

```python3
def greeting(name):
    return "Hello, " + name
```

When called with the parameter `name` as "World!", this function returns the string `"Hello, World!"`.

```python3
print(greeting("World!")) # displays: Hello, World!
```

## Versions 

## References 
## Other websites 
* Python tutorial 
* Learn Python
* Learn Python for Data Science