We create a function to print the maximum value in a given list.
week5_solutions_ex1_1.py
# define function to print out the max value in the list
def print_max_in_list(a_list):
# initialise the current_best to be the first item
current_best = a_list[0]
for item in a_list:
# update the current best if we see a bigger value
if item > current_best:
current_best = item
print("Max Value:" + str(current_best))
# test the function with the following
# expect '376' to be printed
example_list = [4, 9, 376, 12, 234, 124, 94, 3]
print_max_in_list(example_list)
Extension 1.1 - Returning max value
Here we return the max value instead, and then print it.
week5_solutions_ext1_1.py
# define function to return the max value in a list
def get_max_value_in_list(a_list):
# initialise the current_best to be the first item
max_value = a_list[0]
for item in a_list:
# update the current best if we see a bigger value
if item > current_best:
max_value = item
return max_value
# test the function with the following
# expect '376' to be printed
example_list = [4, 9, 376, 12, 234, 124, 94, 3]
print("Max value: " + str(get_max_value_in_list(example_list)))
Exercise 1.2 - Sum thing to do
Here we print the sum of all the values in a list
week5_solutions_ex1_2.py
# define function to print the sum of all values in a list
def print_sum_of_list(a_list):
current_sum = 0
for item in a_list:
# add the item to the current sum, store it
current_sum = current_sum + item
print("Sum: " + str(current_sum))
# test the function with the following
# expected value is 31
example_list = [1, 2, 4, 8, 16]
print_sum_of_list(example_list)
Extension 1.2 - Returning Average
Now we average the values in the list and return the result
week5_solutions_ext1_2.py
# define function to return the average of values in the list
def get_average_of_list(a_list):
current_sum = 0
for item in a_list:
# add the item to the current sum, store it
current_sum = current_sum + item
return current_sum / len(list)
# test the function with the following
# expected value is 6.4
example_list = [1, 2, 5, 10, 14]
print("Average:" + str(get_average_of_list(example_list)))
Exercise 1.3 - Developing a range of skills
Here we define a function to mimic the range function - which returns a list of integers from the minimum to the max - 1.
week5_solutions_ex1_3.py
# define the range function, which takes a min and max argument
# returns a list of values between min and max-1
def my_range(min_val, max_val):
the_list = []
current_val = min_val
while current_val < max_val:
the_list.append(current_val)
current_val = current_val + 1
return the_list
# test the function with the following
# expect a list of [6, 7, 8, 9, 10, 11]
a_list = my_range(6, 12)
print(a_list)
Extension 1.3.1 - Default arguments
Add default arguments to our range function, such that if min is not given then the function counts from 0 - We need to alter the function definition and modify our max and min values
week5_solutions_ext1_3_1.py
............
def my_range(min_val, max_val=None):
# set max to be min as only 1 argument was given
# also default min to 0
if max_val is None:
max_val = min_val
min_val = 0
the_list = []
current_val = min_val
............
# we can test this by elimintating the first argument in the function call
# expect list of [0, 1, 2, 3, 4, 5, 6, 7, 8]
a_list = my_range(9)
print(a_list)
Extension 1.3.2 - Recursive Range function
Here we implement the range function using recursion - the function must call itself, and have a terminating condition.
week5_solutions_ext1_3_2.py
# define the recursive range function
def my_recrusive_range(min_val, max_val):
if min_val == max_val:
return []
return [min_val] + my_recursive_range(min_val+1, max_val)
# test the function with range 0, 10
# expect a list [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(my_recursive_range(0, 10))
Exercise 2 - Import-ant Syntax
Here we rename some imports and run the 'scary block of awful code'