Я пытаюсь отловить ошибки ввода от пользователя. Вход должен быть с плавающей точкой. Не могу понять лог c.
Я хочу, чтобы пользователь перенаправлялся на то же значение ключа в 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