Python Code to Collect an Order

menu =  {"burger": 3.99,
         "wings": 3.50,
         "fries": 2.50,
         "chips": 1.99,
         "soda": 0.99}
total = 0

#shows the user the menu and prompts them to select an item
print("Menu:")
print("-------------------------------")
for k,v in menu.items():
    print(k + "  $" + str(v)) #why does v have "str" in front of it?

yn = "y"

while yn == "y":
    print("------------------------------------")

    #ideally the code should prompt the user multiple times
    item = input("Please select an item from the menu")

    print("cost of: " + item)
    print("$" + str(menu[item]))
    #code should add the price of the menu items selected by the user 
    total += menu[item]

    yn = input("Would you like to buy anything else? (y/n)")

print("Cost of items: " + str(total))
print("Tax: " + str(round(0.0725*total, 2)))
tip = input("Enter tip amount here: ")
tip = tip.replace('%', '')
tipval = (float(tip)*.01)*total
print("Tip: " + str(round(float(tipval), 2)) + " (" + tip + "%)")
print("Total: " + str(round(1.0725*total, 2) + round(float(tipval), 2)))