[SOLVED] Function not Printing two separate print statements

Issue

I am new to personal projects and am working on a library book management system through the python terminal.

I’m running into an issue that has had been stuck for a while.

I’m trying to get my code to print out into the console

—— Main Menu ——

  1. All Books
  2. Check In
  3. Check Out
  4. Look Up

But instead it just gives me over and over again just "Choose Option". I’m not sure what I’m doing wrong as I’ve tried iterating a bunch of times over but I can’t find the resolution.

Source Code:
Source Code

Terminal Output:
Terminal Output

Solution

In the future try pasting your code directly into your question rather than as an image.

Regardless, try moving the line starting with option i.e.:

option = input("Choose options: ")

into inside the mainMenu
function (main_menu in the attempted reconstruction of your attempt below):

#
#
# Print menu
# Menu will include a list if menu options
# Create a main menu function that will control the main menu
# Then call functions as they are requested by the user
# Will require a dictionary using id's as the key and book info as values
#
#

import pprint
import os

# Books in the System
books = [
    {"ID": 100001, "title": "Meditations", "author": "Marcus Aurelius", "year": 180},
    {"ID": 100002, "title": "To Kill a Mockingbird", "author": "Harper Lee", "year": 1960},
    {"ID": 100003, "title": "The Great Gatsby", "author": "F. Scott Fitzgerald", "year": 1925},
    {"ID": 100004, "title": "Don Quixote", "author": "Miguel de Cervantes", "year": 1615},
    {"ID": 100005, "title": "The Little Prince", "author": "Antoine de Saint-Exupery", "year": 180}
]

menu = " ------ Main Menu ------ \n\n 1. All Books \n 2. Check In \n 3. Check Out \n 4. Look Up \n"


def menu1():
    pprint.pprint(books)
    option1 = input("Type 0 to go back: ")
    if option1 == "0":
        os.system("clear")
        return main_menu()


def main_menu():
    print(menu)
    option = input("Choose option: ")
    if option == "1":
        os.system("clear")
        return menu1()


if __name__ == '__main__':
    main_menu()

Example Usage:

 ------ Main Menu ------ 

 1. All Books 
 2. Check In 
 3. Check Out 
 4. Look Up 

Choose option: 1
[{'ID': 100001,
  'author': 'Marcus Aurelius',
  'title': 'Meditations',
  'year': 180},
 {'ID': 100002,
  'author': 'Harper Lee',
  'title': 'To Kill a Mockingbird',
  'year': 1960},
 {'ID': 100003,
  'author': 'F. Scott Fitzgerald',
  'title': 'The Great Gatsby',
  'year': 1925},
 {'ID': 100004,
  'author': 'Miguel de Cervantes',
  'title': 'Don Quixote',
  'year': 1615},
 {'ID': 100005,
  'author': 'Antoine de Saint-Exupery',
  'title': 'The Little Prince',
  'year': 180}]

Answered By – Sash Sinha

Answer Checked By – Timothy Miller (BugsFixing Admin)

Leave a Reply

Your email address will not be published.