ارزیابی روش Postfix چیست ؟
رزیابی روش Postfix چیست ؟
بهمنظور ارزیابی یک عبارت postfix ما از تجزیه کنندة بخش قبـل و الگـوریتم مربـوط بـه بخش قبل از آن (دو بخش پیش) استفاده میکنیم. براي حفظ سادگی، کار را با یـک ارزیـاب کـه تنهـا عملگرهاي + و * را اجرا میکند، آغاز مینماییم:
def evalPostfix(expr):
import re
tokenList = re.split(“([^0-9])”, expr)
stack = Stack()
for token in tokenList:
if token == ” or token == ‘ ‘:
continue
if token == ‘+’:
sum = stack.pop() + stack.pop()
stack.push(sum)
elif token == ‘*’:
product = stack.pop() * stack.pop()
stack.push(product)
else:
stack.push(int(token))
return stack.pop()
شرط اول فواصل خالی و رشتههاي تهی را بررسی میکند و دو شرط بعدي عملگرها را کنتـرل میکنند. در حال حاضر فرض میکنیم هر کـاراکتر دیگـر بایـد یـک عملونـد باشـد. البتـه بهتـر اسـت وروديهاي نادرست را بررسی نماییم و پیغـام خطـایی گـزارش دهـیم. امـا در آینـده بـه ایـن موضـوع میپردازیم. بیایید این کد را با ارزیابی فرم postfix عبارت 2)*47+56 (آزمایش نماییم:
>>> print evalPostfix “56 47 + 2
206
به اندازة کافی دقیق است.
برای اموزش های ویدیویی زبان پایتون به بستر ویدیو های اموزشی بروید