Построение функции
Задание решил следующим образом:
def func(n):
acc='+*%-/'
n1=str(n)
n2=list(n1)
n3=''.join(n2 for n2 in n1 if n2 in acc)
if n3=='%':
n4=n2.remove('%')
n5=''.join(i for i in n2)
answer=int(n5)/100
return answer
if n3=='+':
t=n2.index('+')
n4=''.join(i for i in n2[0:t])
n5=''.join(i for i in n2[t+1:])
answer=int(n4)+int(n5)
return answer
if n3=='-':
t=n2.index('-')
n4=''.join(i for i in n2[0:t])
n5=''.join(i for i in n2[t+1:])
answer=int(n4)-int(n5)
return answer
if n3=='/':
t=n2.index('/')
n4=''.join(i for i in n2[0:t])
n5=''.join(i for i in n2[t+1:])
answer=int(n4)/int(n5)
return answer
if n3=='*':
t=n2.index('*')
n4=''.join(i for i in n2[0:t])
n5=''.join(i for i in n2[t+1:])
answer=int(n4)*int(n5)
return answer
if n3=='**':
t=n2.index('*')
if len(n2)-t>2:
n4=int(''.join(i for i in n2[:t]))
n5=int(''.join(i for i in n2[t+2:]))
answer=n4**n5
return answer
else:
n4=int(''.join(i for i in n2[:t]))
answer=n4**2
return answer
Есть иное(более компактное) решение для данного задания? Мой код решает арифметическое выражение только с двумя числами. Каким образом написать код для трех и более?

