This is a problem set. Some of these are easy, others are far more difficult. The purpose of these problems sets are:
- to build your skill applying computational thinking to a problem
- to assess your knowledge and skills of different programming practices
What is this problem set trying to do
You are given a list of names in a list. The list will only have one first name and one last name. You must construct a program to process the names so they are in reverse order by last name. YOU WILL NOT BE GIVEN AN ALPHABETICAL LIST!
names = ["Bill MacKenty", "Joe Shmoe", "Jan Kowalski", "Max Haltre"] # the output should be: Joe Shmoe, Bill MacKenty, Jan Kowalski, Max Haltre
How you will be assessed
Your solution will be graded using the following axis:
- To what extent does your code implement the features required by our specification?
- To what extent is there evidence of effort?
- To what extent did your code meet specifications?
- To what extent did your code meet unit tests?
- To what extent is your code free of bugs?
- To what extent is your code written well (i.e. clearly, efficiently, elegantly, and/or logically)?
- To what extent is your code eliminating repetition?
- To what extent is your code using functions appropriately?
- To what extent is your code readable?
- To what extent is your code commented?
- To what extent are your variables well named?
- To what extent do you adhere to style guide?
A possible solution
Click the expand link to see one possible solution, but NOT before you have tried and failed!
# This code is used with consent from Daniel, who gave this to us on 25 September 2019 names = ["Bill MacKenty", "Joe Shmoe", "Jan Kowalski", "Max Zaltre"] alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" for name in names: first_letter_name = name.split(" ") first_letter_names = names.split(" ") if(alphabet.index(first_letter_name) > alphabet.index(first_letter_names)): current_name = name del names[names.index(name)] names.insert(0, current_name) print(names)