我正在尝试捕获用户的输入错误。输入应该是一个浮点数。我无法弄清楚逻辑。
如果用户输入无效输入,我希望用户重定向到 material_vars 中的相同键值。目前我可以让它工作,所以如果不正确,它会回到第一个键输入而不是发生无效输入的键。
def material_costs(update=False):
global material_vars
while update:
try:
for key in material_vars:
material_vars[key] = float(input(f"Enter {key}:\n"))
except ValueError:
print ('Please enter a valid input')
else:
save_defaults('material_vars', material_vars)
update = False
else:
material_vars = open_defaults('material_vars')
return material_vars
您可以像这样修改您的功能
def material_costs(update=False):
global material_vars
while update:
for key in material_vars:
correct = False
while (not correct):
try:
material_vars[key] = float(input(f"Enter {key}:\n"))
correct = True
except ValueError:
print ('Please enter a valid input')
correct = False
save_defaults('material_vars', material_vars)
update = False
else:
material_vars = open_defaults('material_vars')
return material_vars
为每个输入运行一个 while 循环,直到用户输入正确的输入。输入将由 while 中的 try-except 块验证。
我希望这有帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句