Solutions
Try solving the exercise yourself first before checking the solution!
Python Basics: Exercises
Data Types
# 1.
(11 - 3)/(5 - 2)# 2.
(150 - 120)/120# 3.
(80 * 0.3) + (90 * 0.5) + (70 * 0.2)# 4.
0.3 * 0.5# 5.
1000*(1 + 0.05)**3Variables
# 1.
weight / (height**2)# 2.
(C * (9/5)) + 32# 3.
(x - mu) / sigma# 4.
sigma**2# 5.
1 - prob_aData Structures
# 1.
sum(data)/len(data)# 2.
[ [1,0,0], [0,1,0], [0,0,1] ]# 3.
len(notes["Math"]) + len(notes["Data"]) + len(notes["Stats"])# 4.
((v[0]-u[0])**2 + (v[1]-u[1])**2)**0.5# 5.
max(data) - min(data)Python Intermediate: Exercises
Indexing
# 1.
exam_scores.sort()
n = len(exam_scores)
mid1 = n//2 - 1
mid2 = n//2
(exam_scores[mid1] + exam_scores[mid2]) / 2# 2.
course["course_id"][4:14]# 3.
data.sort()
idx = int(0.25 * len(data))
data[idx]# 4.
matrix[14][6]# 5.
product_code[:27] + product_code[28:]Conditional Statements
# 1.
if category == "A":
result = [1,0]
else:
result = [0,1]# 2.
if probability > 0.5:
result = "Buy"
else:
result = "No Buy"# 3.
if predicted == actual:
result = "Correct"
else:
result = "Incorrect"# 4.
if x > 0:
result = x
else:
result = 0# 5.
"Class A" if feature1 > 5 and feature2 <= 3 else "Class B" if feature1 > 5 and feature2 > 3 else "Class C"Loops
# 1.
expected = 0
for i in range(len(outcomes)):
expected += outcomes[i] * probabilities[i]# 2.
variance = 0
for i in range(len(data)):
variance += (data[i] - mean) ** 2
variance /= len(data)# 3.
for first in letters:
for second in letters:
combinations.append(first + second)# 4.
for x in values:
if x < 10:
bins[0] += 1
elif x < 20:
bins[1] += 1
else:
bins[2] += 1# 5.
scaled = []
for x in data:
scaled.append((x - x_min) / (x_max - x_min))Python Advanced: Exercises
Functions
# 1.
def abs_error(y, yhat):
errors = []
for true, pred in zip(y, yhat):
errors.append(abs(true - pred))
return errors# 2.
def normalize(xs):
total = sum(xs)
probs = []
for x in xs:
probs.append(x / total)
return probs# 3.
def bernoulli(outcomes, p):
probs = [0.3 if x == 1 else 0.7 for x in outcomes]
return probs# 4.
def fib(n):
sequence = [1,1]
for i in range(2,n):
sequence.append(sequence[i-1] + sequence[i-2])
return sequence# 5.
def f(xs):
ys = []
for x in xs:
ys.append(x**3 + 2*x**2 + 5*x + 10)
return ysObjects
# 1.
class Counter:
def __init__(self, values):
self.values = values
def count_above(self, threshold):
return sum(1 for x in self.values if x > threshold)# 2.
class Scaler:
def __init__(self, values):
self.values = values
def scale(self, factor):
return [factor * value for value in self.values]# 3.
class Text:
def __init__(self, content):
self.content = content
def word_count(self):
return len(self.content.split())# 4.
class Text:
def __init__(self, content):
self.content = content
def count_char(self, char):
return self.content.count(char)# 5.
class Text:
def __init__(self, content):
self.content = content
def first_word(self):
return self.content.split()[0]Import Statements
# 1.
math.factorial(15)# 2.
Counter(data)# 3.
[random.randint(1, 10) for _ in range(5)]# 4.
np.dot(matrix, vector)# 5.
data["A"].mean()