Задать вопрос
@viskas20

Не могу завершить последний этап, суммирование, можете подсказать каков должен быть следующий шаг?

menu = {
1: {"name": 'espresso',
"price": 1.99},
2: {"name": 'coffee',
"price": 2.50},
3: {"name": 'cake',
"price": 2.79},
4: {"name": 'soup',
"price": 4.50},
5: {"name": 'sandwich',
"price": 4.99}
}

def calculate_subtotal(order):
""" Calculates the subtotal of an order

[IMPLEMENT ME]
1. Add up the prices of all the items in the order and return the sum

Args:
order: list of dicts that contain an item name and price

Returns:
float = The sum of the prices of the items in the order
"""
print('Calculating bill subtotal...')
# WRITE SOLUTION HERE
subtotal = 0
item_price = [item['price'] for item in order]

for i in item_price:
subtotal = subtotal + i

return subtotal

def calculate_tax(subtotal):
""" Calculates the tax of an order

[IMPLEMENT ME]
1. Multiply the subtotal by 15% and return the product rounded to two decimals.

Args:
subtotal: the price to get the tax of

Returns:
float - The tax required of a given subtotal, which is 15% rounded to two decimals.
"""
print('Calculating tax from subtotal...')
# WRITE SOLUTION HERE
tax = subtotal*15/100
tax = "%.2f" % tax

return tax

def summarize_order(order):
""" Summarizes the order

[IMPLEMENT ME]
1. Calculate the total (subtotal + tax) and store it in a variable named total (rounded to two decimals)
2. Store only the names of all the items in the order in a list called names
3. Return names and total.

Args:
order: list of dicts that contain an item name and price

Returns:
tuple of names and total. The return statement should look like

return names, total

"""
print_order(order)
# WRITE SOLUTION HERE
total = order
print(total)

# This function is provided for you, and will print out the items in an order

def print_order(order):
print('You have ordered ' + str(len(order)) + ' items')
items = []
items = [item["name"] for item in order]
print(items)
return order

# This function is provided for you, and will display the menu

def display_menu():
print("------- Menu -------")
for selection in menu:
print(
f"{selection}. {menu[selection]['name'] : <9} | {menu[selection]['price'] : >5}")
print()

# This function is provided for you, and will create an order by prompting the user to select menu items

def take_order():
display_menu()
order = []
count = 1
for i in range(3):
item = input('Select menu item number ' +
str(count) + ' (from 1 to 5): ')
count += 1
order.append(menu[int(item)])
return order

'''
Here are some sample function calls to help you test your implementations.
Feel free to change, uncomment, and add these as you wish.
'''

def main():
order = take_order()
print_order(order)

subtotal = calculate_subtotal(order)
print("Subtotal for the order is: " + str(subtotal))

tax = calculate_tax(subtotal)
print("Tax for the order is: " + str(tax))

subtotal = summarize_order(order)

if __name__ == "__main__":
main()
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Простой 2 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы