def set_value(self, value: str):
[digit.clear() for digit in self._digits]<EOL>grouped = self._group(value)  <EOL>digits = self._digits[::-<NUM_LIT:1>]  <EOL>has_period = False<EOL>for i, digit_value in enumerate(grouped):<EOL><INDENT>try:<EOL><INDENT>if has_period:<EOL><INDENT>digits[i].set_value(digit_value + '<STR_LIT:.>')<EOL>has_period = False<EOL><DEDENT>elif grouped[i] == '<STR_LIT:.>':<EOL><INDENT>has_period = True<EOL><DEDENT>else:<EOL><INDENT>digits[i].set_value(digit_value)<EOL><DEDENT><DEDENT>except IndexError:<EOL><INDENT>raise ValueError('<STR_LIT>'<EOL>'<STR_LIT>'.format(value))<EOL><DEDENT><DEDENT>
Sets the displayed digits based on the value string.
:param value: a string containing an integer or float value
:return: None