## Archived answers to exercises
### Python for social science - day 2
Status: notebook open ready to go?
| Name | Done |
|:------------------- |:----------------------------- |
| Barbara (example) | :question: |
| Francesco (example) | :heavy_check_mark: |
| Adri | :heavy_check_mark: |
| Anne Maaike | :heavy_check_mark: |
| Babette | :heavy_check_mark: |
| Carissa | :heavy_check_mark: |
| Cecilia | :heavy_check_mark: |
| Daniela | :heavy_check_mark: |
| Dominika | :heavy_check_mark: |
| Hekmat | :heavy_check_mark: |
| Ilaria | :heavy_check_mark: |
| Jeanette | :heavy_check_mark: |
| Kasimir | :heavy_check_mark: |
| Kevin | :heavy_check_mark: |
| Kyri | :heavy_check_mark: |
| Lianne | ::::::::::::::: |
| Marilù | :heavy_check_mark: |
| Melisa | :heavy_check_mark: |
| Michael Q | :heavy_check_mark: |
| Philippine | |
| Rael O. | |
| Ranran Li | :heavy_check_mark: |
| Reshmi | :heavy_check_mark: |
| Roxane | :heavy_check_mark: |
| ruidong | :heavy_check_mark: |
| Samareen | :heavy_check_mark: |
| Signe | :heavy_check_mark: |
| Swee Chye | :heavy_check_mark: |
| Yunfeng | :heavy_check_mark: |
| Rael | :heavy_check_mark: |
### Exercise: Arithmetic and printing
Create a new cell and paste the code from the example into it:
```python=
print("a =", a, "and b =", b)
print(a + 2*b)
print(a + (2*b))
print((a + b)*2)
```
1. Remove all of the calls to the print function so you only have the expressions that were to be printed and run the code. What is returned?
2. Now remove all but the first line (with the 4 items in it) and run the cell again. How does this output differ from when we used the print function?
Bonus if you are done early:
* Practice assigning values to variables using as many different operators as you can think of.
* Create some expressions to be evaluated using parentheses to enforce the order of mathematical operations that you require
MD:
(1)16
(2) ('a =', 3, 'and b =', 5) with print is: a = 3 and b = 5
Carissa: 1- 16 / 2-16, same, just references the code from above
Adri: 16, "a = 3 and b = 5"
Reshmi : 1. 16, 2- ('a =', 3, 'and b =', 5) with print it is a = 3 and b = 5
Roxane: 1. 16, 2. a = and b = are str, the values of a and b are int so you combine those
('a =', 5, 'and b =', 3)
AM.1 16
AM.2 ('a =', 3, 'and b =', 5) without print
a = 3 and b = 5 with print
Signe:
1. 16 ; only last value is returned
2. 'a =', 3, 'and b =', 5 ; returns a "tuple"
Kyri: 1. 16, 2. ('a =', 3, 'and b =', 5)
Babette:
1. 16
2. ('a =', 3, 'and b =', 5)
Kevin, 1: last line (16), 2: first line (tuple)
Michael:
(1) 16
(2) ('a =', 3, 'and b =', 5)
Samareen:
1. 16
2. ('a =', 3, 'and b =', 5)
Hekmat
1. 16
2. ('a =', 3, 'and b =', 5)
Swee Chye:
1. a = 2; b = 3
2. a = 2 and b = 3;
3. a + 2*b # 8
4. a + (2*b) # 8
5. (a + b)*2 # 10
6. c = 10
7.
Daniela
1. 16
2.("a =", a, "and b =", b)
### Exercise: List indexing
1. Create a cell with the code below.
```python=
num_list = [4,5,6,11]
```
2. Select the 1st element from this list. (Your code should return `4`)
3. Select the last element from this list. (Your code should return `11`)
4. Make a new list with the second and fourth element in this list. (Your code should return `[5,11]`)
-Reshmi:
1. num_list[0]
2. num_list[-1]
3. [num_list[1],num_list[-1]]
-Roxane: num_list[0], num_list[-1], print(new_list = [num_list[1], num_list[3]])
Swee Chye:
1. num_list[0]
2. num_list[-1]
3. num_list[1::2]
Hekmat:
1. num_list[0]
2. num_list[-1]
Kyri
1. num_list[0]
2. num_list[-1]
3. mylist = [num_list[1],num_list[-1]]
Michael:
(1) num_list[0]
(2) num_list[-1]
(3) new_list = num_list[1], num_list[3]
Samareen:
num_list[0]
num_list[-1]
mylist = [num_list[1],num_list[-1]]
Babette:
1. num_list[0]
2. num_list[-1]
Kevin:
```python=
num_list = [4,5,6,11]
print(num_list[0]) # First element
print(num_list[-1]) # Last element
newlist = list(num_list[i] for i in [1,3]) #List comprehension
print(newlist) #List with second and fourth element
```
Signe:
```python=
2. num_list[0]
3. num_list[-1]
4. new_list = [num_list[1], num_list[3]]
```
### Exercise: if-statements
1. Start with the following code:
```python=
apple_cost = 0.5
bread_cost = 2.5
money = 2
```
2. Write an `if`-statement, replacing the ____ in the code below, that checks whether you can buy a bread with your money:
```python=
if ___
print("I can buy bread!")
```
3. Add an `elif` to your statement, where you check if you can buy an apple instead.
```python=
elif _________
print("At least I can buy an apple!")
```
4. Bonus: write a final `else` for the tragic scenario where you can buy neither bread nor apple.
Kevin:
```python=
apple_cost = 0.5
bread_cost = 2.5
money = 2
if money >= bread_cost:
print("I can buy bread!")
elif money >= apple_cost:
print("At least I can buy an apple!")
else:
print("I should not have picked a career as PhD!")
```
Michael:
if money >= bread_cost:
print('I can buy the bread.')
elif money < bread_cost and money >= apple_cost:
print('I cannot buy the bread but I can buy an apple')
else:
print("I don't make enough money to buy either")
Kasimir:
apple_cost = 0.5
bread_cost = 2.5
money = 2
if money >=bread_cost:
print("I can buy bread!")
elif money >=apple_cost:
print("At least I can buy an apple!")
else:
print("I can neither buy an apple nor a bread")
Roxane:
if money >= bread_cost
print("I can buy bread!")
elif money >= apple_cost
print("At least I can buy an apple!")
else money < apple_cost
print("I can't even buy an apple..")
File "/var/folders/m1/zqjgzbnn3bv4rxvw98hj1nr40000gq/T/ipykernel_76254/3243460098.py", line 1
if (money >= bread_cost)
^
SyntaxError: invalid syntax
Reshmi:
1. if (money>=bread_cost):
print("I can buy bread!")
2. elif (money>=apple_cost):
print("At least I can buy an apple!")
3. else:
print("I can buy neither bread nor apple")
Swee Chye:
```python=
apple_cost = 0.5
bread_cost = 2.5
money = 2
if money >= bread_cost:
print("I can buy bread!")
elif money >= apple_cost:
print("At least I can buy an apple!")
else:
print("I don't have enough money to buy anything!!!")
```
Adri:
```python=
if money >= bread_cost:
print("I can buy", round(money/bread_cost), "bread!")
elif money >= apple_cost:
print("I can buy", round(money/apple_cost), "apples!")
else:
print("I am too broke to buy anything")
```
Samareen:
```python=
1. if money >= bread_cost:
print ('I can buy bread!')
2. elif money < bread_cost and money >= apple_cost:
print('at least I can buy an apple :(')
3. else:
print('guess I will just starve')
```
Hekmat:
```python=
2. if money >= bread_cost:
print("I can buy bread!")
3. elif money >= apple_cost:
print("At least I can buy an apple!")
4. else:
print("I cannot buy anything")
```
MD:
```python=
if money >= bread_cost:
print("I can buy bread!")
elif money >= apple_cost:
print("At least I can buy an apple!")
else:
print("I cannot buy either bread or an apple")
```
Babette
if money >= bread_cost:
print("I can buy bread!")
elif money >= apple_cost:
print("At least I can buy an apple!")
else:
print("I cannot buy anything")
Kyri
```python=
1. if money >= bread_cost:
print("I can buy bread")
2. elif money >= apple_cost:
print("At least I can buy and apple!")
3. else:
print("not enough money for bread or apples")
```
Signe:
```python=
apple_cost = 0.5
bread_cost = 2.5
money = 2
if money >= bread_cost:
print("I can buy bread!")
elif money >= apple_cost:
print("At least I can buy an apple!")
else: print("I need more money...")
```
Daniela:
if money >= bread_cost:
print("I can buy bread!")
elif money >= apple_cost :
print("at least i can buy an apple")
else :
print ("won't have dinner tonight")
Lianne:
if money >= bread_cost:
print("I can buy bread!")
elif money >= apple_cost:
print("At least I can buy an apple!")
else:
print("I cannot buy anything")
### Exercise: for-loop
Suppose that we have a string containing a set of 4 different types of values separated by , like this:
```python=
variablelist = "01/01/2010,34.5,Yellow,True"
```
Research the `split()` method and write a for-loop that prints each of the 4 components of `variablelist`
--Reshmi---
for i in variablelist.split(","):
print(i)
--Carissa -
variablelist = "01/01/2010, 34.5, Yellow, True"
print(variablelist)
print(variablelist)
01/01/2010, 34.5, Yellow, True
elist.split()
variablelist.split()
['01/01/2010,', '34.5,', 'Yellow,', 'True']
--Kasimir
variablelist_sep = variablelist.split(sep = ",", maxsplit=4)
print(variablelist_sep)
for i in variablelist_sep:
print(i)
--Kevin
```pyton=
for i in variablelist.split(sep=","):
print(i)
```
--Roxane:
```python=
variablelist = "01/01/2010,34.5,Yellow,True"
print (variablelist)
variablelist.split()
for i in variablelist.split(','):
print(i)
```
--Michael:
```python=
items = variablelist.split(',')
for item in items:
print(item)
```
--Adri:
```python=
for numberitem in variablelist.split(","):
print(numberitem)
```
--Samareen:
```python=
variablelist = "01/01/2010,34.5,Yellow,True"
variablelist = variablelist.split(',')
for i in variablelist:
print(i)
```
Babette
```python =
variablelist = "01/01/2010,34.5,Yellow,True"
variables=variablelist.split(',')
print(variables)
for i in variables:
print(i)
```
MD:
```python =
items=variablelist.split(',')
for i in items:
print("my item is", i)
```
Kyri
``` python=
variablelist="01/01/2010,34.5,5,Yellow,True"
items = variablelist.split(',')
for i in items:
print (i)
```
Swee Chye:
```python=
variablelist = "01/01/2010,34.5,Yellow,True"
for i in variablelist.split(","):
print(i)
```
Signe
```python=
variablelist = "01/01/2010,34.5,Yellow,True"
items = variablelist.split(sep = ",")
for i in items:
print(i)
```