Look at your code. You have a loop:
while choice != QUIT:
When does the loop exit? After the loop exits, what is the value of choice?
Another thing to think about. Why are you doing this?
choice = int(input("option: "))
You have the user input "1", "2", "3" etc. Do you actually need to convert those number strings to an int? Are you planning to do math? int(str) is fraught with peril and should be used only when you really need a number for doing number things. If I run your program and type "a <enter>" the program crashes. If I type "1.0 <enter>" the program crashes. If I type anything that is not a valid int string, the program crashes.
I would write the choice input something like this:
DISPLAY = "1"
GENERATE = '2'
QUIT = '3'
while True:
#Display menu & prompt user for choice
print("\nChoose one of the following options")
print("\t1. Display 10 ways to cut 500 calories")
print("\t2. Generate next semester expected weight table")
print("\t3. Quit")
choice = input("option: ")
if choice in (DISPLAY, GENERATE, QUIT):
break
print(f"{choice} is not a valid choice\n\n")
This part only gets the choice and validates. You'll have to implement the different actions, including quit.