第一个while循环用于验证用户是否输入'p','d'或其他任何内容。如果用户输入了错误的输入,它应该再次询问,一旦收集到信息,披萨菜单应打印出来,但它会循环回来要求提货或送货。
import re
pickupCost = 0
deliveryCost = 5
running = True
menu = {}
menu['Pepperoni'] = 9
menu['Hawaiian'] = 9
menu['Cheese'] = 9
menu['Italian'] = 9
menu['Margherita'] = 9
menu['Apricot Chicken'] = 13
menu['BBQ Meatlovers'] = 13
menu['Chicken and Cranberry'] = 13
while running == True:
delivery = raw_input("please select either p for pickup or d for delivery")
delivery = delivery.lower()
if delivery == "p":
while running == True: #puts code in loop if user enters invalid input#
customer_name = raw_input("Name: ")
if not re.match("^[a-zA-Z ]*$", customer_name): #checks that no numbers and symbols are used#
print "Please only use letters"
elif len(customer_name) == 0: #checks user doesnt try leaving it empty#
print "Cannot be left blank"
elif customer_name == " ": #checks they don't just push space then enter#
print "Please enter a valid input"
else:
customer_name = customer_name.title()
break #breaks loop
elif delivery =="d":
while running == True: #puts code in loop if user enters invalid input#
customer_name = raw_input("Name: ")
if not re.match("^[a-zA-Z ]*$", customer_name):
print "Please only use letters"
elif len(customer_name) == 0:
print "Cannot be left blank"
elif customer_name == " ":
print "Please enter a valid input"
else:
customer_name = customer_name.title()
break
while running == True:
house_num = raw_input("House Number: ")
if not re.match("^[0-9]*$", house_num): #checks user only enters numbers
print "Please only use numbers"
elif len(house_num) == 0:
print "Cannot be left blank"
else:
break
while running == True:
street_name = raw_input("Street Name: ")
if not re.match("^[a-zA-Z ]*$", street_name):
print "Please only use letters"
elif len(street_name) == 0:
print "Cannot be left blank"
elif street_name == " ":
print "Please enter a valid input"
else:
street_name = street_name.title()
break
while running == True:
suburb = raw_input("Suburb: ")
if not re.match("^[a-zA-Z ]*$", suburb):
print "Please only use letters"
elif len(suburb) == 0:
print "Cannot be left blank"
elif suburb == " ":
print "Please enter a valid input"
else:
suburb = suburb.title()
break
while running == True:
postcode = raw_input("Postcode: ")
if not re.match("^[0-9]*$", postcode):
print "Please only use numbers"
elif len(postcode) == 0:
print "Cannot be left blank"
else:
break
while running == True:
city = raw_input("City: ")
if not re.match("^[a-zA-Z ]*$", city):
print "Please only use letters"
elif len(city) == 0:
print "Cannot be left blank"
elif city == " ":
print "Please enter a valid input"
else:
city = city.title()
break
else:
print "invalid input"
break
def print_menu(menu):
x = 1
for key in menu:
print x,key,menu[key]
x += 1
print_menu(menu)