Issue
Writing a food ordering program for school, and am running into the issue of TypeError when trying to take the user input to select the menu item, then use that input to refer quantity value to that dictionary.
`
menu = {
1: {"item": "Green Beret Omelette", "price": "$12.99"},
2: {"item": "Get to the Chopped Salad", "price": "$14.99"},
3: {"item": "Pump You Up Protein Shake", "price": "$9.99"},
4: {"item": "I'll Be Baby Back Ribs", "price": "$22.99"},
5: {"item": "Let Off Some Steamed Vegetables", "price": "$4.99"},
6: {"item": "The Ice Cream Cometh", "price": "$15.99"}
}
key = int(input("Please select your item:\n"))
if int(key) < 1 or int(key) > 6:
print("Invalid selection. Please try again. \n")
isOrdering = True
continue
quan = int(input("Enter quantity: \n")), menu.update[key]({"quantity": quan})
The error I'm currently running into is "Exception has occurred: TypeError 'builtin_function_or_method' object is not subscriptable" for the line:
quan = int(input("Enter quantity: \n")), menu.update[key]({"quantity": quan})
I tried the code above based on a previous attempt at asking that a friend posted for me. Threw the same error as I had in my initial attempt at solving.
The expected/intended output/update (whatever you want to call it) is:
menu choice: 1
quantity: 3
dictionary update: 1: {"item": "Green Beret Omelette", "price": "$12.99", "quantity": 3}
Solution
Try:
menu = {
1: {"item": "Green Beret Omelette", "price": "$12.99"},
2: {"item": "Get to the Chopped Salad", "price": "$14.99"},
3: {"item": "Pump You Up Protein Shake", "price": "$9.99"},
4: {"item": "I'll Be Baby Back Ribs", "price": "$22.99"},
5: {"item": "Let Off Some Steamed Vegetables", "price": "$4.99"},
6: {"item": "The Ice Cream Cometh", "price": "$15.99"}
}
from pprint import pprint
print(" CHOOSE AN ITEM FROM THE MENU:")
pprint(menu)
print()
key = 0
while int(key) < 1 or int(key) > 6:
key = int(input("Please select your item (1 or 2 up to 6):\n"))
if int(key) < 1 or int(key) > 6:
print("Invalid selection. Please try again. \n")
quan = int(input("Enter quantity: \n"))
menu[key]["quantity"] = quan
pprint(menu)
print()
print(f'You ordered {key}: {menu[key]["item"]}, quantity: {quan}, total price=${quan*float(menu[key]["price"][1:])}')
Answered By - Claudio
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.