In [11]:
class Dog :
def __init__(self, name, age):
self.name = name
self.age = age
def sit(self) :
print (f"{self.name} is now sitting.")
def roll_over(self) :
print (f"{self.name} rolled over!.")
mydog = Dog('bodhi', 6)
mydog.roll_over()
bodhi rolled over!.
In [10]:
class Restaurant :
def __init__ (self, name, cuisine) :
self.name = name
self.cuisine = cuisine
def describe_restaurant (self) :
return f"{self.name} serves {self.cuisine} food"
def open_restaurant (self) :
return f"{self.name} is open"
myrestaurant = Restaurant('Javiers', 'Mexican')
yourrestaurant = Restaurant('Marios', 'Italian')
print(myrestaurant.describe_restaurant())
print(myrestaurant.open_restaurant())
print(yourrestaurant.describe_restaurant())
Javiers serves Mexican food Javiers is open Marios serves Italian food
In [150]:
import copy
import random
class Hat:
def __init__(self, **hattypes):
self.contents = []
for key, value in hattypes.items():
self.contents += [key] * int(value)
def draw(self, number_select):
number_total = len(self.contents)
if number_select >= number_total:
return self.contents
results = []
for i in range(0, number_select):
trial = random.randint(0, number_total - 1)
results.append(self.contents.pop(trial))
number_total -= 1
return results
def experiment(hat, expected_balls, num_balls_drawn, num_experiments):
count = 0
for _ in range(0, num_experiments):
h = copy.deepcopy(hat)
balls = h.draw(num_balls_drawn)
d = {}
for b in balls:
v = d.get(b, 0)
d[b] = v + 1
found = True
for b, v in expected_balls.items():
if d.get(b, 0) < v:
found = False
break
if found:
count += 1
return print(count / num_experiments)
hat = Hat(black=6, red=4, green=3)
probability = experiment(hat=hat, expected_balls={"red":3,"green":1}, num_balls_drawn=4, num_experiments=200000)
0.016895
In [ ]: