为什么我的变量突然变成无变量?

问题描述 投票:-1回答:1

这是我的代码,为什么我的变量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
1个回答
0
投票

如果Python函数到达其作用域的末尾,它将隐式返回None。这样,除非yes_or_no_=="y",否则您的函数将返回None。您可以通过在return individual_cost子句和else块的末尾添加if yes_or_no=="n"来解决此问题。

© www.soinside.com 2019 - 2024. All rights reserved.