Skip to content

Commit

Permalink
implement multiplication and division
Browse files Browse the repository at this point in the history
  • Loading branch information
yashinomi committed Nov 6, 2020
1 parent 8b6597a commit 380ba64
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion calc_py/calc_str_eval.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,20 @@ def readline() -> str:


def parse_multi_or_div(equation: str) -> Union[int, float]:
return int(equation)
mult_index = equation.rfind("*")
div_index = equation.rfind("/")

if mult_index == -1 and div_index == -1:
return int(equation.strip())
elif mult_index == -1:
return parse_multi_or_div(equation[:div_index]) / parse_multi_or_div(equation[div_index + 1:])
elif div_index == -1:
return parse_multi_or_div(equation[:mult_index]) * parse_multi_or_div(equation[mult_index + 1:])
else:
if -1 < mult_index and mult_index < div_index :
return parse_multi_or_div(equation[:div_index]) / parse_multi_or_div(equation[div_index + 1:])
elif -1 < div_index and div_index < mult_index :
return parse_multi_or_div(equation[:mult_index]) * parse_multi_or_div(equation[mult_index + 1:])


def parse_add_or_minus(equation: str) -> Union[int, float]:
Expand Down

0 comments on commit 380ba64

Please sign in to comment.