Hello @ nishit,
Indentation means the space from margin to the begin of characters in a line. In most popular programming languages, spaces or indentation are just used to make the code look better and be easier to read. In Python , it is actually part of this programming language. Because the Python language is a very sensitive language for indentation, it has caused confusion for many beginners. Putting in an extra space or leaving one out where it is needed will surely generate an error message . Some common causes of this error include:
- Forgetting to indent the statements within a compound statement
- Forgetting to indent the statements of a user-defined function.
The error message IndentationError: expected an indented block would seem to indicate that you have an indentation error. It is probably caused by a mix of tabs and spaces.
Here is the code which remove your IndentationError: expected an indented block:
class Solution(object):
def calculate(self, s):
"""
:type s: str
:rtype: int
"""
stack = []
i = 0
x=""
for j in s:
if j !=" ":
x+=j
s = x
n = len(s)
while i<n:
if s[i] == '/':
i+=1
num,i = self.make_num(s,i)
if stack[-1]<0:
stack[-1] = -1*(abs(stack[-1])/num)
else:
stack[-1] = stack[-1]/num
elif s[i] == '*':
i+=1
num,i = self.make_num(s,i)
stack[-1] = stack[-1]*num
elif s[i] == '-':
i+=1
num,i = self.make_num(s,i)
stack.append(-num)
elif s[i] =='+':
i+=1
num,i = self.make_num(s,i)
stack.append(num)
else:
num,i = self.make_num(s,i)
stack.append(num)
i+=1
return sum(stack)
def make_num(self,s,i):
start = i
while i<len(s) and s[i]!= '/' and s[i]!= '*' and s[i]!= '-' and s[i]!='+':
i+=1
return int(s[start:i]),i-1
Hope it resolve your error!!
Related FAQ
Why am I getting "IndentationError: expected an indented block"?
Thank you!