store = input('Name of store: ')
food = input('Type of food served: ')
serverName = 'Will'
drinkPrice = '' #If it's a price (number why not set it to an integer example : drinkPrice = 0. '' refers to an empty string.
foodPrice = ''
drink = input('Hello! My name is {0} and I will be your server today! What can I get you to drink?: '.format(serverName))
if drink == "Water":
drinkPrice = 1
else : # in python if-else are written as elif <condition>: so it would be elif drink == "Coke":
if drink == "Coke":
drinkPrice = 2
else : # will never reach here
if drink == "Beer":
drinkPrice = 5
else : #will never reach here
print("The item you are trying to order is not on the menu!")
drink = input("What else would you like to drink?:") # you aren't looping here so you might want a loop.
food = input('What will you be ordering tonight?: ')
if food == "Steak":
foodPrice = 25
else : #same issue as the drink.
if food == "Pizza":
foodPrice = 10
else :
if food == "Salad":
foodPrice = 5
else :
print("The item that you are trying to order is not on the menu!")
totalPrice = str(drinkPrice) + str(foodPrice) #Python allows '+' to be used on strings as a form of concatination (combining strings).
#You want int(drinkPrice) + int(foodPrice) or just do drinkPrice + foodPrice
#since you set those value to 1, 2, 5, etc..
print('Thanks for eating at {0} and ordering {1} ! Server name: {2} Price total: {3}'.format(store, food, serverName, totalPrice))
要總結我的評論點:
如果語句寫成如下:
if <condition>:
#do something
elif <condition>:
#do something
else:
#default if the top two didn't pass
您需要在循環讀了,但我想你可能想要的是while
循環:
while <condition>:
#loops until the condition is False
while循環的意義在於,您可以不斷詢問,直到獲得您想要的有效答案。 See this link for more details
的Python允許在非數字使用+
對象,如字符串:
x = "5"
y = "6"
print(x+y)
>> 56
你必須確保你的變量是數字:
x = 5
y = 6
print(x+y)
>> 11
「5」不一樣5,第一個是5的字符串表示形式,後者是數字值5.這延伸到「」是一個空字符串不爲0.
你的代碼不起作用,所以你不應該擔心微觀優化。
這是你的代碼應該是什麼樣子:
store = input('Name of store: ')
food = input('Type of food served: ')
serverName = 'Will'
drinkPrice = 0
foodPrice = 0
drink = input('Hello! My name is {0} and I will be your server today! What can I get you to drink?: '.format(serverName))
while drinkPrice == 0:
if drink == "Water":
drinkPrice = 1
elif drink == "Coke":
drinkPrice = 2
elif drink == "Beer":
drinkPrice = 5
else :
print("The item you are trying to order is not on the menu!")
drink = input("What else would you like to drink?:")
food = input('What will you be ordering tonight?: ')
while foodPrice == 0:
if food == "Steak":
foodPrice = 25
elif food == "Pizza":
foodPrice = 10
elif food == "Salad":
foodPrice = 5
else :
print("The item that you are trying to order is not on the menu!")
food = input("What else would you like to eat?:")
totalPrice = drinkPrice + foodPrice
print('Thanks for eating at {0} and ordering {1} ! Server name: {2} Price total: {3}'.format(store, food, serverName, totalPrice))
這個問題比堆棧溢出更適合於[代碼審查(http://codereview.stackexchange.com)。 – CoryKramer
如果你有功能代碼,那麼這個問題可能更適合https://codereview.stackexchange.com/,但閱讀[常見問題](https://codereview.stackexchange.com/help/dont-ask)來檢查是否這是關於話題 – EdChum
我不認爲這會適合Code Review,因爲代碼中存在錯誤。 – MooingRawr