Hey guys, I’m stuck on 2 issues.
1 - When I run the experiment, i get an error on test #1 which according to the test_module.py should return expected = [“red”,“red”,“red”,“blue”,“blue”], which is exactly what my code returns. However the test indicated that it should return:
- [‘green’,
- ‘green’,
- ‘blue’,
- ‘blue’,
- ‘green’,
- ‘green’,
- ‘blue’,
- ‘green’,
- ‘blue’,
- ‘green’,
- ‘red’,
- ‘red’,
- ‘red’,
- ‘red’,
- ‘red’,
- ‘blue’,
- ‘blue’]
2 - I keep getting None as a result for my sort method, which I am using to compare the strings. I’ve looked everywhere and I can’t figure out what is going on.
if drawn.sort() == expected.sort():
M +=1
Below is my replit code
import copy
import random
# Consider using the modules imported above.
class Hat:
contents = []
drawn = []
def __init__(self,**data):
v = 0
for key,value in data.items():
while v < value:
self.contents.append(key)
v+=1
v=0
# print(contents)
def __str__(self):
a = str(self.contents)
return a
def draw(self,number):
if number <= len(self.contents):
for n in range(number):
n = random.randint(0,len(self.contents)-1)
self.drawn.append(self.contents.pop(n))
# print(len(self.contents))
return self.drawn
else:
for n in range(len(self.drawn)):
self.contents.append(self.drawn.pop(0))
return self.drawn
def experiment(hat, expected_balls, num_balls_drawn, num_experiments):
prob = 0
# print("hat is ",hat)
M = 0
expected = []
v=0
for key,value in expected_balls.items():
while v < value:
expected.append(key)
v+=1
v=0
for n in range(num_experiments):
drawn = []
myhat = hat
drawn = myhat.draw(num_balls_drawn)
if drawn.sort() == expected.sort():
M +=1
#print(M)
#essa linha zera drawn e myhat
myhat.draw(len(hat.contents)+1)
prob = M / num_experiments
return prob
Link to the challenge: