Я бы проанализировал его как сложный, а затем вывел бы действительную часть, только если мнимая часть равна нулю:
try:
num = complex(input('Enter something: '))
except ValueError:
print('Invalid input')
if num.imag:
print(num / 2)
else:
print(num.real / 2)
Другой вариант - вложенный try
- except
:
num = input('Enter something: ')
try:
print(int(num) / 2)
except ValueError:
try:
print(float(num) / 2)
except ValueError:
try:
print(complex(num) / 2)
except ValueError:
print('Invalid input')