i have run the test and the printing are exact like the test printing but i am getting some weired error

Hi @Zvi_Boiangou ,

Where is p1 created? Python doesn’t know what p1 is and hence reporting the error.

it is created in the proc below . the test of this proc passed OK.

def compute_entropy(y):

```
# You need to return the following variables correctly
entropy = 0.
### START CODE HERE ###
if len(y) != 0:
# Your code here to calculate the fraction of edible examples (i.e with value = 1 in y)
p1 = len(y[y == 1]) / len(y)
# For p1 = 0 and 1, set the entropy to 0 (to handle 0log0)
if p1 != 0 and p1 != 1:
# Your code here to calculate the entropy using the formula provided above
entropy = -p1 * np.log2(p1) - (1 - p1) * np.log2(1 - p1)
else:
entropy = 0
### END CODE HERE ###
print(entropy)
return entropy
```

And what happens to your p1 = statement if len(y) equals zero?

Passing the unit tests does not mean your code is perfect.

Hi @Zvi_Boiangou ,

The problem is with the indentation. When len(y) ==0, the **second if statement** is executed, here p1 has not been created because your code said p1 is only created when len(y) !=0.

The second **if and else statement** should be **within the first if statement block**.

OK , i got you .

it should have been

if bla

if blabla

thanks

i mean - 2 chaining if statements .

from some reason the tab is not reflected .