Solution 1

``````def parse_number(number):
try:
return int(number)
except ValueError:
pass

try:
return float(number)
except ValueError:
pass

raise ValueError("Invalid number")``````

# Parse Number

If you use the input() function, remember how everything entered is received as a string (regardless of if it was a number or not)?

Write a function `parse_number` to receive a number in string format like '7' and use `try/except` blocks to `try` to change its type into an `int` or a `float`. If that doesn't work, raise a ValueError.

Examples:

``````parse_number("3") # 3

parse_number("3.2") # 3.2

parse_number("invalid") # Raises ValueError
``````

### Test Cases

test parse number float -

``````def test_parse_number_float():
assert parse_number("3.2") == 3.2

``````

test parse number invalid -

``````import pytest

def test_parse_number_invalid():
with pytest.raises(ValueError):
parse_number("invalid")``````

test parse number integer -

``````def test_parse_number_integer():
assert parse_number("3") == 3``````
def parse_number(number): pass