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
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Picnic

https://www.youtube.com/playlist?list=PLhOuww6rJJNMuQohHrNxRjhFTR9UlUOIa

Write a program that will correctly format the items we're taking on our picnic. For one item, it should print the one item:

$ ./picnic.py sandwiches
You are bringing sandwiches.

For two items, place "and" in between:

$ ./picnic.py sandwiches chips
You are bringing sandwiches and chips.

For three or more items, use commas and "and":

$ ./picnic.py sandwiches chips cake
You are bringing sandwiches, chips, and cake.

If the --sorted flag is present, the items should first be sorted:

$ ./picnic.py sandwiches chips cake --sorted
You are bringing cake, chips, and sandwiches.

If no items are given, print a brief usage:

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

Respond to -h and --help with a longer usage:

$ ./picnic.py -h
usage: picnic.py [-h] [-s] str [str ...]

Picnic game

positional arguments:
  str           Item(s) to bring

optional arguments:
  -h, --help    show this help message and exit
  -s, --sorted  Sort the items (default: False)

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_one PASSED                                                 [ 42%]
test.py::test_two PASSED                                                 [ 57%]
test.py::test_more_than_two PASSED                                       [ 71%]
test.py::test_two_sorted PASSED                                          [ 85%]
test.py::test_more_than_two_sorted PASSED                                [100%]

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