Overall the code is well presented however:
I would if possible add more comments in all 3 of your files to allow easier readability for other users and for your future self if ever you revisit the project.
Your code handles errors well and allows users to input incorrect items. The layout of the "Try" and "Catch" is well presented and easy to follow and accounts for multiple tries/attempts of incorrectness.
Overall the code is well presented however: I would if possible add more comments in all 3 of your files to allow easier readability for other users and for your future self if ever you revisit the project.