---
# System prepended metadata

title: Python chat 2022-09-16 (Sarah / Jiawen)

---

# Python chat 2022-09-16 (Sarah / Jiawen)

**Short term goal:**

- write a table into Excel, export it as ".csv" file
- read the ".csv" file using Python (into a Pandas Dataframe)
- calculate the average of each column with Pandas
- (optional) make some plots with Matplotlib

## Pre-requisites

Download [Anaconda](https://www.anaconda.com/products/distribution): interpreter + package manager + tools

- Type "python" in your terminal / anaconda console, enter "interactive mode".
- Use any text editor to write a file, "*.py", write code inside it, and run `python <file_name>.py`

## Concepts

syntax: variable, value (types), function, class (optional)

control flow (if/elif/else, while, for)


```python=
a = 1.0         # assignment, 1.0 (value) -> a (variable)
b = 2
c = a + b       # C = 3.0

def my_add_func(x, y):
    return x + y        # my_add_func(x,y) = x+y

d = my_add_func(a, b)        # d = 3.0
my_return_value = my_add_func(3, 4)

def my_abs_add_func(x, y):
    x_abs = abs(x)
    y_abs = abs(y)
    return x_abs + y_abs

def my_weird_add_func(x, y):
    if x < 1:
        z = 2
    elif x > 3:
        z = 1
    else:
        z = 0
    return z + y

def my_addition(x):
    result = 0
    for element in x:
        result = result + element
    return result

my_list = [3,4,5,6]
print(my_addition(my_list))
```


### Types

inbuilt types: 

int (整数integer), float（小数）, str（string，"hello"/'hello'）, list (`[1, 2, 3]`), dict (`{"sarah": "female", "nancy": "female"}`; `{"blue": 20, "green": 10}`), etc.


## Data analysis

pandas (data analysis), matplotlib (visualisation)

## Projects


## TODO

- [ ] Download Anaconda
- [ ] Make sure you roughly know the concepts of:
    - variable 
        - [ ] name all the variables in code above
        - [ ] declare a new variable that has value "hello world"
    - value 
        - [ ] name all the values in code above
    - an assignment statement 
        - [ ] list all the assignment statements in code above
    - function
        - [ ] list all the functions in code above
        - [ ] write a function that calculates the difference between two numbers
    - if / elif / else (more exercise next time)
    - for loop (more exercise next time)
    - comments in Python
        - [ ] what does a comment start with?
        - [ ] Does comments have any effect in code execution?
        - Additionally, syntax for multi-line comments is like below

```python=
"""
Hello! I'm in a multi-line comment
"""
```


## Next

```
import pandas as pd
df = pd.DataFrame({'num_legs': [2, 4], 'num_wings': [2, 0]}, index=['falcon', 'dog'])
```


Make sure Anaconda is installed correctly. Run the code above in three places:

- Jupyter notebook
- interactive mode
- a file
