dictionary - 尝试,除了休息
问题描述
我正在尝试创建一个代码,将用户的输入附加到 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
解决方案
看起来问题是您在尝试将输入转换为整数后尝试将其与空字符串进行比较。因此,当您输入一个空字符串时,在您的代码到达 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
推荐阅读
- vue.js - 单水疗微应用 beforeRouteLeave 在 vue 应用程序中不起作用
- android - 导航:多个返回堆栈而不会丢失视图状态、任何已保存的实例状态和附加到该片段的 ViewModel
- javascript - 使用 Chrome 扩展程序/JavaScript 循环遍历 URL 数组
- java - 回退到 Elasticsearch 密码包含“@”和“$”
- java - java类如何根据需要发送其参数?
- sql - 如何在一个表中有两个外键?(SQL-Server)
- excel - 使用 ActiveObject 在 Word (JScript, Javascript) 中选择收件人
- javascript - 显示 auth 表中的所有用户
- javascript - 同一列中具有 2 个页脚的垫表
- react-native - React 测试渲染器 JSON 没有子级的 Typescript 错误