我的代码一直运行到最后一行,需要输入

时间:2016-03-06 16:38:01

标签: python-3.x

print("Welcome to my calorie counter program")def disp_menu():choice_list = ["a", "d", "m", "q"]

初始循环

    while True:
        print("What do you want to do?")
        print("a = add an item")
        print("d = delete an item")
        print("q = quit")
        choice = input("make a selection>")

        if choice in choice_list:
            return choice
        else:
            print("not a valid selection, try again")
    while True:
        choice = disp_menu()

        if choice == "a":
            tot_cals, item_cnt = add_process(tot_cals, item_cnt)
        elif choice == "d":
            del_item()
        elif choice == "q":
            break
        disp_meal()

#create lists
item_list = [] #list of items ordered
cals_list = [] #

#create variables

cont = str("y") 
item_cnt = int(0)
tot_cals = int(0)

#define functions here

#calculates calories per grams
def calc_cals(g_type, grams):
    if g_type =="f":
        return grams * 9
    else:
        return grams * 4

#first loop
while cont.lower() =="y":

    valid_data = False   #this is the boolean flag for data validation


#Capture input
    while not valid_data:

        item_name = input("please enter the item> ")

         if len(item_name) > 20:
         print("not a valid food name")
         elif len(item_name) == 0:
         print("you need to enter a name")
         else:
            valid_data = True

#reset the flag for the next data item
    valid_data = False

    while not valid_data:
        try:g_carbs = int(input("enter grams of carbs> "))
        except Exception is detail:
            print("carbs error: ", detail)
        else:
            valid_data = True
#reset the flag for the next data item

    valid_data = False

    while not valid_data:
        try:g_fats = int(input("enter grams of fats> "))
        except Exception is detail:
            print("fats error: ", detail)
        else:
            valid_data = True 


    valid_data = False

    while not valid_data:
        try:g_protein = int(input("enter grams of protein> "))
        except Exception is detail:
            print("protein error: ", detail)
        else:
            valid_data = True 

新功能

def add_process(tot_cals, item_cnt):
    item_name = input_name()
    g_carbs = input_grams("carbs")
    g_fats = input_grams("fats")`
    g_prot = input_grams("protein")

#Do the math

cals = calc_cals(" c",g_carbs)+ calc_cals(" f",g_fats)+ calc_cals(" p",g_prot)           #output         打印(" {}的总卡路里是{}" .format(item_name,cals))

    incl = input("do you want to include {}? (y/n)>".format(item_name))

    if incl.lower() == "y":
        add_item(item_name, cals)
        #accumulate totals
        tot_cals = tot_cals + cals
        item_cnt += 1   #shortcut method
        print("item {} entered.".format(item_name))
    else:
        print("Item {} not entered.".format(item_name))
    return tot_cals, item_cnt
    #new function

def del_item():
    if len(item_list == 0):
        print("you have no items to delete")
    else:
        print("\nDelete an item")
        disp_meal()

        valid_data = False
        while not valid_data:
            try:
                choice = int(input("Enter the item number you want to delete>"))
                if 1<= choice <= len(item_list):

                    choice = choice - 1
                    print("Item {}. {} with {} calories will be deleted".format(choice + 1,
                                                                                   item_list[choice],
                                                                                   cals_list[choice]))

                    del item_list[choice]
                    del cals_list[choice]
                    valid_data = True

            except Exception as detail:
                print("error: ",detail)
                print("try again")
#new function
def disp_meal():
    print("\nMeal Calorie Counter")
    print("Num\tItem\t\tcals")
    print("---\t----\t\----")
    meal_cals = 0

    for c in range(len(item_list)):
        meal_cals += cals_list[c]
        print("{}.\t{}\t\t{}".format(c+1,item_list[c],

        print("\nYour meal has {} items for a total of {} calories\n".format(len(item_list), meal_cals)
        print("-" * 20)

#this last line给了我一个eof错误

0 个答案:

没有答案