这是我的代码,为什么我的变量individual_cost使用print语句正确打印,但在返回时变为非?
def determine_individual_menu_item(total_food_cost):
individual_cost = total_food_cost
food_item = input("Enter food item: ")
if food_item == "1" or food_item == "2" or food_item == "3" or food_item == "4" or food_item == "5" or food_item == "6" or food_item == "7":
food_item = int(food_item)
food_cost = get_cost_of_food_items(food_item)
else:
print("Please enter a food item on the menu.")
determine_individual_menu_item(total_food_cost)
yes_or_no = input("Is that the end of the order (y/n)? ")
if yes_or_no =="y":
individual_cost = acumulate_food_cost(individual_cost , food_cost)
print(str(individual_cost))
return individual_cost
if yes_or_no =="n":
individual_cost = acumulate_food_cost(individual_cost , food_cost)
determine_individual_menu_item(individual_cost)
如果Python函数到达其作用域的末尾,它将隐式返回None
。这样,除非yes_or_no_=="y"
,否则您的函数将返回None
。您可以通过在return individual_cost
子句和else
块的末尾添加if yes_or_no=="n"
来解决此问题。