Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
 
 

Rhymer

https://www.youtube.com/playlist?list=PLhOuww6rJJNPNn2qa5ATHJ0qd-JUgM_s0

Write a program that will create rhyming words for a given word by removing the initial consonant sounds and substituting other sounds. Note that the given word should not appear in the output, so "cake" will be omitted from this run:

$ ./rhymer.py cake | head
bake
blake
brake
chake
clake
crake
dake
drake
fake
flake

The rhyming words will be created by adding all the consonants plus the following consonant clusters:

bl br ch cl cr dr fl fr gl gr pl pr sc 
sh sk sl sm sn sp st sw th tr tw thw wh wr 
sch scr shr sph spl spr squ str thr

The output should be sorted alphabetically. If there is no initial consonant sound, then apply all the consonant sounds to the given word:

$ ./rhymer.py apple | tail
thwapple
trapple
twapple
vapple
wapple
whapple
wrapple
xapple
yapple
zapple

If provided no arguments, the program should print a short usage:

$ ./rhymer.py
usage: rhymer.py [-h] str
rhymer.py: error: the following arguments are required: str

And a longer usage for -h or --help:

$ ./rhymer.py -h
usage: rhymer.py [-h] str

Make rhyming "words"

positional arguments:
  str         A word to rhyme

optional arguments:
  -h, --help  show this help message and exit

Run the test suite to ensure your program is correct:

$ make test
pytest -xv test.py
============================= test session starts ==============================
...
collected 7 items

test.py::test_exists PASSED                                              [ 14%]
test.py::test_usage PASSED                                               [ 28%]
test.py::test_take PASSED                                                [ 42%]
test.py::test_chair PASSED                                               [ 57%]
test.py::test_chair_uppercase PASSED                                     [ 71%]
test.py::test_apple PASSED                                               [ 85%]
test.py::test_no_vowels PASSED                                           [100%]

============================== 7 passed in 0.47s ===============================
Morty Proxy This is a proxified and sanitized view of the page, visit original site.