The objective of this project is to create a Python application that may be executed from the command line and performs some kind of service using the skills you’ve learned thus far.
Choose a project that challenges you appropriately and is of interest to you! Chad reserves the right to make all final decisions on what topic you choose, so plan to have some backup topics in mind.
The expectations for your program is as follows:
- The program executes cleanly without error and meets its intended purpose.
- The program has been designed to accommodate human errors.
- The program is designed as efficiently as possible (do more with less!)
- The program’s output is easy to read and is presented well (and free of spelling errors)
- Wherever possible, the program follows PEP 8 standards:
- Keep code inside of functions
- Indent consistently (4 spaces)
- """title/purpose of script at top of document"""
- Comment your code well, and often!
The following is a list of topics to choose from, but you may present original topic ideas to Chad as well!
The topics listed below generally rank from easier to harder.
• Math conversions! Make a program that first asks a user if they’re converting temperatures, determining if a number is odd or even, or perhaps even currency conversions (what you convert is up to you). After the selection has been made, prompt the user for the necessary input, and output the results to the screen!
• A program that checks the local file system for the presence of a file (or directory), and if it does not exist, creates it. If your program needs to create the file, write something into the first line (your name, the date the file was created, etc.)
• Write a program that randomly returns one of 10 poems you’ve written. Store each poem as a separate file outside of your program. It may be useful to check out the import random library to complete this exercise, but it's not a requirement.
• Find some ASCII art online and store each in separate files. When your program launches, offer the user a menu of possible ASCII art to view. When selected, be sure to display that art on the screen.
• Write a program that returns a listing of the top 10 to 100 shows or movies that interest you. You can pull this information from a static file you construct, or from a dynamic source (such as a public API). Print all of the titles within your database to the screen, then prompt the user for a selection. When your user makes a selection, return something of interest to them about that show, such as: short description, actors / voice artists, IMDB rating, etc.
• You’ve been hired as an entry level coder for the IMF, an elite, top-secret espionage and covert operations agency that handles dangerous and highly sensitive international missions that have been deemed "impossible". Your mission, should you choose to accept it, is to write a program that can scan top-secret documents and replace any/all instances of words (or phrases) that the user inputs with asterisks. Be sure only the new file remains when you’re done.
• Data conversion. Write a program that accepts data of one type, and converts it to another (CSV to JSON, JSON to YAML, Excel to JSON, etc.). To accomplish this, you’ll need to use an import statement, and work with (at least one) additional library. Those to check out include (import json, import csv, import yaml, import panadas, import pyexcel). If you need help installing any of these libraries, please reach out!
• Catch ‘em all (or at least one)... Pokemon, that is! First install the requests library (python3 -m pip install requests), and then use it to make a GET request to https://pokeapi.co (the API service is pretty straight forward, and does not require any authentication. Check out https://pokeapi.co/api/v2/pokemon/ditto/ for an example). Print the returned data out in an easy to understand format.
• Write a program that allows you to explore a simple building (perhaps your home, or the TLG offices). The user should be able to move between rooms, and not move outside of your ‘world’.
• Build a text-based adventure game that you can move between rooms, pick up objects, interact with characters, solve puzzles, or even incorporate a combat system!
• Write a program that takes input from a user (either at the command line or by reading a spreadsheet) that executes commands to configure network settings.