Week 7 Refresher, Part 2¶
In the second part of this refresher, you will have 30 minutes to make a couple of the functions below. Don’t spend time being stuck. You have two options if you aren’t sure how to make something work or if there is a weird bug that you aren’t sure how to fix:
- Look at the cookbook, see if you can find an example that fits what you want to do.
- Ask me for help
Exercise 1¶
Reminder of syntax
1 2 3 4 5 6 | def function_name():
print("inside the function")
print("going to call the function")
function_name()
print("just called the function")
|
Write a function which prints out your name and your favorite food.
Name this function intro.
Then, write code which calls this function.
Goal:
- function name:
intro- arguments: None
- code inside function: print name and favorite food.
- returns: Nothing
Exercise 2¶
Write a function named madlibs. This function should take as input
four variables: noun1, noun2, and adjective. Inside the function, it should
have one of the following versions of a print statement. I have given you 3 version
because they are different ways of printing the same thing. You can use any of the 3.
You can change any of the words, if you want.
1 2 3 4 5 6 7 8 | # version 1
print("Did you know that ", noun1, " are actually ", adjective, noun2)
# version 2
print("Did you know that {} are actually {} {}".format(noun1, adjective, noun2))
# version 3
print("Did you know that "+noun1+" are actually "+adjective+" "+noun2)
|
Goal:
- function name:
madlibs- arguments:
noun1, noun2, adjective- code inside function: print statement from below
- returns: Nothing
Exercise 3¶
Write a function named make_superhero. The function should
take 2 arguments, select_power, and select_name.
Inside the function, you will have the following code. The function
should return back the result variable from below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | ### put this at the top of your file
import random
### code for inside the function
powers = ['time travel', 'super strength', 'super intelligence']
adjectives = ['Incredible', 'Unstoppable', 'Unflappable', 'Amazing', 'Scrumtrilescent', 'Purple', 'Bioluminescent']
nouns = ['Bat', 'Wolf', 'Wolverine', 'Donkey', 'Spider', 'Monkey', 'Fighting',
'Alien', 'Baby', 'Dino', 'Computer']
result = dict()
if select_power: ## select_power should be true or false
power = random.choice(powers)
result['power'] = power
else:
result['power'] = 'unknown'
if select_name:
adjective = random.choice(adjectives)
noun = random.choice(nouns)
name = "The {} {}".format(adjective, noun)
result['name'] = name
else:
result['name'] = 'unknown'
|
Goal:
- function name:
make_superhero- arguments:
select_power, select_name- code inside function: the selection process from the code above
- returns:
result
Exercise 4¶
Revise the code from Exercise 3 so the select power and select_name
have default arguments of True and True.
When you get this far¶
Please let me know.
For this bonus, you will make the following code more advanced.
First, read through the code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import random
def make_monster():
simple_monster = {'name': 'bugs',
'health': 5}
return simple_monster
def make_hero():
simple_hero = {'name': 'Super Coder',
'health': 10}
return simple_hero
def battle(hero, monster):
print("A round of battle with hero and monster!")
hero_alive = hero['health'] > 0
monster_alive = monster['health'] > 0
while hero_alive and monster_alive:
print("Hero attacks!")
amount = random.randint(1,3)
monster['health'] -= amount
print("Monster attacks!")
amount = random.randint(0,1)
hero['health'] -= amount
hero_alive = hero['health'] > 0
monster_alive = monster['health'] > 0
print("Either the hero or the monster is dead!")
print("If only there was an if statement here to figure out who...")
hero = make_hero()
monster = make_monster()
battle(hero, monster)
|
In this code, there are three functions: make_monster, make_hero,
and battle.
Try to do as many of the following things:
1. Add arguments to make_monster and make_hero so that you can
custom set the name.
2. Change the code in make_monster and make_hero so the health
is from the random.randint(low,high) function.
3. Add another property inside the monster and hero dictionaries
called power. Then, inside the battle, the hero gets
their amount as random.randint(1, hero['power']). Same pattern with the
monster.