numbers = [7, 11, 8, 5, 3, 12, 2, 6, 9, 10, 1, 4]
sum(numbers)
78
id(sum)
139940703477088
type(sum)
builtin_function_or_method
callable(sum)
True
callable(numbers)
False
int(7.0)
7
int("7")
7
int(7.99)
7
round(7.99)
8
float(7)
7.0
str(7)
'7'
id(int)
94623097764960
type(int)
type
callable(int)
True
def average_evens(integers):
"""Calculate the average of all even numbers in a list.
Args:
integers (list of int's): whole numbers to be averaged
Returns:
average (float)
"""
evens = [n for n in integers if n % 2 == 0]
average = sum(evens) / len(evens)
return average
average_evens
<function __main__.average_evens(integers)>
id(average_evens)
139940571731424
type(average_evens)
function
callable(average_evens)
True
average_evens([7, 11, 8, 5, 3, 12, 2, 6, 9, 10, 1, 4])
7.0
average_evens(numbers)
7.0
result = average_evens(numbers)
result
7.0
integers
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[41], line 1 ----> 1 integers NameError: name 'integers' is not defined
evens
--------------------------------------------------------------------------- NameError Traceback (most recent call last) Cell In[42], line 1 ----> 1 evens NameError: name 'evens' is not defined
def average_wrong(integers):
"""Calculate the average of all even numbers in a list.
Args:
integers (list of int's): whole numbers to be averaged
Returns:
average (float)
"""
evens = [n for n in numbers if n % 2 == 0]
average = sum(evens) / len(evens)
return average
numbers
[7, 11, 8, 5, 3, 12, 2, 6, 9, 10, 1, 4]
average_wrong(numbers) # correct by accident
7.0
average_wrong([123, 456, 789])
7.0
def average_evens(integers):
"""Calculate the average of all even numbers in a list.
Args:
integers (list of int's/float's): numbers to be averaged;
if non-whole numbers are provided, they are rounded
Returns:
average (float)
"""
numbers = [round(n) for n in integers]
evens = [n for n in numbers if n % 2 == 0]
average = sum(evens) / len(evens)
return average
average_evens([40.0, 41.1, 42.2, 43.3, 44.4])
42.0
numbers
[7, 11, 8, 5, 3, 12, 2, 6, 9, 10, 1, 4]
def average_evens(numbers):
"""Calculate the average of all even numbers in a list.
Args:
numbers (list of int's): whole numbers to be averaged
Returns:
average (float)
"""
evens = [n for n in numbers if n % 2 == 0]
average = sum(evens) / len(evens)
return average
average_evens(numbers)
7.0
numbers
[7, 11, 8, 5, 3, 12, 2, 6, 9, 10, 1, 4]
divmod(42, 10)
(4, 2)
divmod(10, 42)
(0, 10)
def scaled_average_evens(numbers, scalar):
"""Calculate the scaled average of all even numbers in a list.
Args:
numbers (list of int's/float's): numbers to be averaged;
if non-whole numbers are provided, they are rounded
scalar (float): multiplies the average
Returns:
scaled_average (float)
"""
numbers = [round(n) for n in numbers]
evens = [n for n in numbers if n % 2 == 0]
average = sum(evens) / len(evens)
return scalar * average
scaled_average_evens(numbers, 2)
14.0
scaled_average_evens(numbers=numbers, scalar=2)
14.0
scaled_average_evens(scalar=2, numbers=numbers)
14.0
scaled_average_evens(numbers, scalar=2)
14.0
def average_evens(numbers):
""" ... ... ... """
numbers = [round(n) for n in numbers]
evens = [n for n in numbers if n % 2 == 0]
average = sum(evens) / len(evens)
return average
def scaled_average_evens(numbers, scalar):
""" ... ... ... """
numbers = [round(n) for n in numbers]
evens = [n for n in numbers if n % 2 == 0]
average = sum(evens) / len(evens)
return scalar * average
def average_evens(numbers):
""" ... ... ... """
return scaled_average_evens(numbers, scalar=1)
def scaled_average_evens(numbers, scalar):
""" ... ... ... """
numbers = [round(n) for n in numbers]
evens = [n for n in numbers if n % 2 == 0]
average = sum(evens) / len(evens)
return scalar * average
def average_evens(numbers, scalar=1):
"""Calculate the average of all even numbers in a list.
Args:
numbers (list of int's/float's): numbers to be averaged;
if non-whole numbers are provided, they are rounded
scalar (float, optional): multiplies the average; defaults to 1
Returns:
scaled_average (float)
"""
numbers = [round(n) for n in numbers]
evens = [n for n in numbers if n % 2 == 0]
average = sum(evens) / len(evens)
return scalar * average
average_evens(numbers)
7.0
average_evens(numbers, 2)
14.0
average_evens(numbers, scalar=2)
14.0
def average_evens(numbers, *, scalar=1):
"""Calculate the average of all even numbers in a list.
Args:
numbers (list of int's/float's): numbers to be averaged;
if non-whole numbers are provided, they are rounded
scalar (float, optional): multiplies the average; defaults to 1
Returns:
scaled_average (float)
"""
numbers = [round(n) for n in numbers]
evens = [n for n in numbers if n % 2 == 0]
average = sum(evens) / len(evens)
return scalar * average
average_evens(numbers)
7.0
average_evens(numbers, scalar=2)
14.0
average_evens(numbers, 2)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Cell In[81], line 1 ----> 1 average_evens(numbers, 2) TypeError: average_evens() takes 1 positional argument but 2 were given