Skip to content

Commit f465001

Browse files
authored
Merge pull request #18 from realpython/clean-wax-poetic-challenge
Clean-up Wax Poetic challenge solution
2 parents a5d6327 + c6d0c31 commit f465001

File tree

1 file changed

+30
-27
lines changed

1 file changed

+30
-27
lines changed

ch09-lists-tuples-and-dictionaries/5-challenge-wax-poetic.py

+30-27
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
# Generate a random poem based on a set structure
66

7-
from random import choice
7+
import random
88

99
noun = [
1010
"fossil",
@@ -57,54 +57,57 @@
5757
def make_poem():
5858
"""Create a randomly generated poem, returned as a multi-line string."""
5959
# Pull three nouns randomly
60-
n1 = choice(noun)
61-
n2 = choice(noun)
62-
n3 = choice(noun)
60+
n1 = random.choice(noun)
61+
n2 = random.choice(noun)
62+
n3 = random.choice(noun)
6363
# Make sure that all the nouns are different
6464
while n1 == n2:
65-
n2 = choice(noun)
65+
n2 = random.choice(noun)
6666
while n1 == n3 or n2 == n3:
67-
n3 = choice(noun)
67+
n3 = random.choice(noun)
6868

6969
# Pull three different verbs
70-
v1 = choice(verb)
71-
v2 = choice(verb)
72-
v3 = choice(verb)
70+
v1 = random.choice(verb)
71+
v2 = random.choice(verb)
72+
v3 = random.choice(verb)
7373
while v1 == v2:
74-
v2 = choice(verb)
74+
v2 = random.choice(verb)
7575
while v1 == v3 or v2 == v3:
76-
v3 = choice(verb)
76+
v3 = random.choice(verb)
7777

7878
# Pull three different adjectives
79-
adj1 = choice(adjective)
80-
adj2 = choice(adjective)
81-
adj3 = choice(adjective)
79+
adj1 = random.choice(adjective)
80+
adj2 = random.choice(adjective)
81+
adj3 = random.choice(adjective)
8282
while adj1 == adj2:
83-
adj2 = choice(adjective)
83+
adj2 = random.choice(adjective)
8484
while adj1 == adj3 or adj2 == adj3:
85-
adj3 = choice(adjective)
85+
adj3 = random.choice(adjective)
8686

8787
# Pull two different prepositions
88-
prep1 = choice(preposition)
89-
prep2 = choice(preposition)
88+
prep1 = random.choice(preposition)
89+
prep2 = random.choice(preposition)
9090
while prep1 == prep2:
91-
prep2 = choice(preposition)
91+
prep2 = random.choice(preposition)
9292

9393
# Pull one adverb
94-
adv1 = choice(adverb)
94+
adv1 = random.choice(adverb)
9595

96-
if "aeiou".find(adj1[0]) != -1: # first letter is a vowel
96+
if "aeiou".find(adj1[0]) != -1: # First letter is a vowel
9797
article = "An"
9898
else:
9999
article = "A"
100100

101-
# add lines to poem
102-
poem = f"{article} {adj1} {n1}\n\n"
103-
poem = poem + f"{article} {adj1} {n1} {v1} {prep1} the {adj2} {n2}\n"
104-
poem = poem + f"{adv1}, the {n1} {v2}\n"
105-
poem = poem + f"the {n2} {v3} {prep2} a {adj3} {n3}"
101+
# Create the poem
102+
poem = (
103+
f"{article} {adj1} {n1}\n\n"
104+
f"{article} {adj1} {n1} {v1} {prep1} the {adj2} {n2}\n"
105+
f"{adv1}, the {n1} {v2}\n"
106+
f"the {n2} {v3} {prep2} a {adj3} {n3}"
107+
)
106108

107109
return poem
108110

109111

110-
print(make_poem())
112+
poem = make_poem()
113+
print(poem)

0 commit comments

Comments
 (0)