首页 > 解决方案 > 尝试,除了休息

问题描述

我正在尝试创建一个代码,将用户的输入附加到 alimentos_taco 字典中。

该代码的想法是:有一本书,人们在其中搜索具有特定编号的特定食物(例如:大米= 78)。因此,人员在第一个输入中输入,这是为食物的数量保留的(例如:78),然后,在第二个输入中,人是为食物的克数保留的。如果没有更多要输入的食物编号,则此人应按 Enter 键,以停止将数字附加到字典中。但是我遇到了问题,因为当我输入 ENTER 时,循环又开始了。抱歉英语不好。

alimentos_taco = {}
alimentos_taco["Número"] = []
alimentos_taco["Quantidade (em gramas)"] = []

while True:
    try:
        number = int(input("Type the food number (or type ENTER if you don't have more foods"))
        if number == "":
            break
        alimentos_taco["Número"].append(number)
    except ValueError:
        print("Type a valid number:")
        continue
    try:  
        quantidade = int(input("Type the food quantity (in grams)"))
        alimentos_taco["Quantidade (em gramas)"].append(quantidade)
    except ValueError:
        print("Type only numbers")
        continue

标签: dictionaryinputbreaktry-except

解决方案


看起来问题是您在尝试将输入转换为整数后尝试将其与空字符串进行比较。因此,当您输入一个空字符串时,在您的代码到达 if 语句之前会出现错误。通过在 if 语句之后转换为整数,我认为问题解决了。

alimentos_taco = {}
alimentos_taco["Número"] = []
alimentos_taco["Quantidade (em gramas)"] = []

while True:
    try:
        number = input("Type the food number (or type ENTER if you don't have more foods")
        if number == "":
            break
        
        alimentos_taco["Número"].append(int(number))
    except ValueError:
        print("Type a valid number:")
        continue
    try:  
        quantidade = int(input("Type the food quantity (in grams)"))
        alimentos_taco["Quantidade (em gramas)"].append(quantidade)
    except ValueError:
        print("Type only numbers")
        continue

推荐阅读