Повторяющийся цикл ввода в словарь

«Создайте словарь, ключи которого являются именами и значение которого для ключа является любимой едой человека с этим именем следующим образом:
— Программа должна запрашивать имя и любимую еду и продолжать вводить имена и любимые продукты, пока пользователь не введет пустую строку для имени.»

До сих пор у меня есть:

mydict=dict()
def favorite_food_name():
    name=input(str("name:"))
    food=input(str("food:"))
    mydict[name]=food       
    print(mydict)
favorite_food_name()

Но я не могу заставить код повторяться в каком-либо цикле. Какую петлю вы бы использовали?

1 ответ

  1. Используйте While Trueloop, и тестовое значение nameпосле ее ввода.

    Кстати, некоторые советы при кодировании:

    • вам не нужноstr("name:"), так "name:"как есть str
    • если нет необходимости, поместите mydictв функцию часть, используйте returnинструкцию, Не используйте ее в качестве уровня модели
    • вы можете сделать больше для проверки ввода, здесь я вызываю stripфункцию для удаления опечатки ввода.

    Вот пример кода:

    def favorite_food_name():
        mydict = dict()
        while True:
            name = input("name:")
            name = name.strip()
            if name == '':
                break
            food = input("food:")
            food = food.strip()
            mydict[name] = food
        # print(mydict)
        return mydict
    
    
    if __name__ == '__main__':
        mydict = favorite_food_name()
        print(mydict)