https://www.youtube.com/playlist?list=PLhOuww6rJJNMxWhckg7FO4cEx57WgHbd_
Write a program that will randomly capitalize the letters in a given piece of text a la a ransom note. The text may be provided on the command line:
$ ./ransom.py 'The quick brown fox jumps over the lazy dog.' THe qUICk BrOWn fOX jumPS OVEr THE LAzy DOg. Or with a file:
$ ./ransom.py ../inputs/fox.txt THE QUicK BRown fox JuMPS OVER THe laZY dog. Given no arguments, the program should print a brief usage:
$ ./ransom.py usage: ransom.py [-h] [-s int] str ransom.py: error: the following arguments are required: str The program should accept a -s or --seed option to use as a random seed to ensure reproducibility:
$ ./ransom.py -s 1 ../inputs/fox.txt thE QUICk BrOWn Fox jumpS OveR tHe LAzY dOg. It should respond to -h and --help with a longer usage:
$ ./ransom.py -h usage: ransom.py [-h] [-s int] str Ransom Note positional arguments: str Input text or file optional arguments: -h, --help show this help message and exit -s int, --seed int Random seed (default: None) Run the test suite to ensure your program is correct:
$ make test pytest -xv test.py ============================= test session starts ============================== ... collected 6 items test.py::test_exists PASSED [ 16%] test.py::test_usage PASSED [ 33%] test.py::test_text1 PASSED [ 50%] test.py::test_text2 PASSED [ 66%] test.py::test_file1 PASSED [ 83%] test.py::test_file2 PASSED [100%] ============================== 6 passed in 0.62s ===============================