---
title: Drill 11 Solution
tags: Drills-F20, 2020
---
# Drill 11 Solution
## Question 1
Fill in the function to compute the product of elements in a list of integers:
```
def product(lst : <blank 1>) -> <blank 2>:
<blank 3> = <blank 4>
for <blank 5>:
result = result + num
<blank 6>
```
::: spoiler Answer
Blank 1: `list`
Blank 2: `int`
Blank 3: `result`
Blank 4: `1`
Blank 5: `num in lst`
Blank 6: `return result`
:::
## Question 2
What does this function return when `[1, 2, 3]` is passed in?
To indicate a list, use the notation above, with brackets, commas, and each element separated by a space.
To indicate an error, type "ERROR" (without quotes).
```
def mystery(l : list):
for i in l:
return i
```
::: spoiler Answer
1
This function will return the first element of the list in the first iteration of the for loop.
:::
## Question 3
What does this function return when `[1, 2, 3]` is passed in?
To indicate a list, use the notation above, with brackets, commas, and each element separated by a space.
To indicate an error, type "ERROR" (without quotes).
```
def mystery(l : list):
result = 0
for i in l:
result = i
return result
```
::: spoiler Answer
3
In each iteration of the loop, `result` will be updated with the current value of `i`. In the last iteration of the loop, `result` will be updated with 3 and then returned from the function after the loop.
:::
## Question 4
What does this function return when `[]` is passed in? This is the same function as the last question.
To indicate a list, use the notation in the previous questions, with brackets, commas, and each element separated by a space.
To indicate an error, type "ERROR" (without quotes).
```
def mystery(l : list):
result = 0
for i in l:
result = i
return result
```
:::spoiler Answer
0
`result` will never be updated before it's returned from the function.
:::
## Question 5
What does this function return when [1, 2, 3] is passed in?
To indicate a list, use the notation above, with brackets, commas, and each element separated by a space.
To indicate an error, type "ERROR" (without quotes).
```
def mystery(l : list):
result = 0
for i in l:
if i == 0:
return False
return True
```
:::spoiler Answer
True
`False` won't be returned for any of the loop values (because none of the loop values are 0). `True` will then be returned after the loop.
:::
## Question 6
True/False: If we wanted to write a function to return the third element of a list, a for-loop would be the right approach.
:::spoiler Answer
False: If we have a list li, we can access the third element with `li[2]`.
:::
## Question 7
True/False: If we wanted to write a function to count the number of times the list's third element was repeated in the list, a for-loop would be the right approach.
:::spoiler Answer
True
:::