 # Python mean, std dev value error problem

``````import numpy as np
from numpy.core.fromnumeric import var

def calculate(list):
try:
#Make the list into an NumPy Array
list = np.array(list)

#Reshape the Array into a 3D Array
new_ar = list.reshape(3,3)

#Get the mean
mean_column = np.mean(new_ar, axis = 0).tolist()
mean_row = np.mean(new_ar, axis =1).tolist()
flat = np.mean(list)

#Get the variance
variance_column = np.var(new_ar, axis=0).tolist()
variance_row = np.var(new_ar, axis=1).tolist()
flat_var = np.var(list)

#Get the Standard Deviation
std_dev_col= np.std(new_ar, axis = 0).tolist()
std_dev_row= np.std(new_ar, axis = 1).tolist()
std_flat = np.std(list)

#Get Maximum , Minumum and Sum
max_col = np.max(new_ar, axis=0).tolist()
max_row = np.max(new_ar,axis = 1).tolist()
max_flat = np.max(list)

min_col = np.min(new_ar, axis=0).tolist()
min_row = np.min(new_ar,axis = 1).tolist()
min_flat = np.min(list)

sum_col = np.sum(new_ar, axis=0).tolist()
sum_row = np.sum(new_ar,axis = 1).tolist()
sum_flat = np.sum(list)

# Create a Dictionary and Join it all together
answer['standard deviation'] = [std_dev_col, std_dev_row, std_flat]

except ValueError:
print("List must contain nine numbers.")

``````

Here’s the Error

I don’t know what to is the expected output on the ValueError part

To raise exception with a specific text, the text needs to be used to instantiate exception.

For example:

``````raise ZeroDivisionError('Cannot divide by zero')
``````

As a side note, wrapping whole code with the `try/except` syntax can make it a hard to find exceptions raised by other parts of code. If some other line is causing the `ValueError`, it would be handled the same way, as if it’d be case of not having nine numbers in list.

It’s best to wrap with `try/except` the possible minimum, where such exception is expected and intended to be handled.

2 Likes

Thank you! I did now know how to do that.