为了账号安全,请及时绑定邮箱和手机立即绑定

如何在while循环python中切换函数

如何在while循环python中切换函数

holdtom 2021-10-19 17:07:10
我正在尝试制作一个程序,可以添加、删除和查看用户输入的菜肴。然而,这看起来很简单,我的 while 循环遇到了问题。当我输入 add 时,我可以将项目添加到我的列表中,但是,当我输入 view 时,addDish 函数会继续循环。我以为我用 if 语句修复了它,但是缺少一些东西......!dish_list = []user_input = ''def addDish(dish_list):    user_input = input("Please type the dish you want: ")    dish_list.append(user_input)#def deleteDish(dish_list):def viewDish(dish_list):    for i in range(len(dish_list)):        print(dish_list[i])user_input = input("Please enter a command: ")while True:    if user_input == '':        user_input = input("Please enter a command: ")    elif user_input == 'add':        addDish(dish_list, user_input)    elif user_input == 'view':        viewDish(dish_list)
查看完整描述

3 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

您的变量 user_input 永远不会被设置回空,因此您永远无法输入新命令,因为它只需要您输入到 user_input 的最后一个条目,这将是 addDish 函数中读取的菜肴类型。此外,您对 addDish 的调用有一个额外的参数。我还建议将所有内容都放入 main 方法中。


def addDish(dish_list):


    user_input = input("Please type the dish you want: ")


    dish_list.append(user_input)



def viewDish(dish_list):


    for i in range(len(dish_list)):


    print(dish_list[i])



def main():


dish_list = []


while True:


    user_input = ''


    if user_input == '':


         user_input = input("Please enter a command: ")


    elif user_input == 'add':


         addDish(dish_list)


    elif user_input == 'view':


         viewDish(dish_list)



main()


查看完整回答
反对 回复 2021-10-19
?
冉冉说

TA贡献1877条经验 获得超1个赞

您应该调用一个函数,在处理完先前的输入后要求用户输入,而不是使用 while 循环。


dish_list = []


def addDish(dish_list):


    user_input = input("Please type the dish you want: ")


    dish_list.append(user_input)


#def deleteDish(dish_list):


def viewDish(dish_list):


    for i in range(len(dish_list)):


        print(dish_list[i])


def get_input(): 


    user_input = input("Please enter a command: ")


    if user_input == 'add':


        addDish(dish_list, user_input)


    elif user_input == 'view':


        viewDish(dish_list)


    getInput()


getInput()


查看完整回答
反对 回复 2021-10-19
?
波斯汪

TA贡献1811条经验 获得超4个赞

干净一点:


dish_list = []



def add_dish(dish_list):

    user_input = input("Please type the dish you want: ")

    dish_list.append(user_input)



def view_dish(dish_list):

    # for dish in dish_list:

    #     print(dish)

    print('\n'.join(dish_list))



while True:

    user_input = input("Please enter a command: ")


    if user_input == 'add':

        add_dish(dish_list)

    elif user_input == 'view':

        view_dish(dish_list)

    else:

        print("Unknown command %s" % user_input)


查看完整回答
反对 回复 2021-10-19
  • 3 回答
  • 0 关注
  • 192 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信