Python'da belirli bir ifadeyi değerlendiren bir işlev yazın.
def Assessment_expression(ifade): 
 
 # tamsayı değerleri depolamak için bir yığın 
 değerler = [] 
 
 # operatörleri depolamak için bir yığın. 
 ops = [] 
i = 0
 
 while i < len(ifade): 
 
 # Geçerli belirteç bir boşluktur, 
 # atla.
 if ifade[i] == ' ': 
i += 1
 devam et
 
 # Geçerli belirteç bir açılıştır 
 # ayraç, 'ops' 
 elif ifade[i] == '(': 
 ops.append(ifade[i]) 
 
 # Geçerli belirteç bir sayıdır, sayıları kümelemek için 
 # itin 
 elif ifade[i].isdigit(): 
 val = 0
 
 # Sayıda birden fazla 
 # basamak olabilir. 
 while (i < len(ifade) ve
 ifade[i].isdigit()): 
 
 val = (val * 10) + int(ifade[i]) 
i += 1
 
 values.append(val) 
 
 # Kapanış ayracı ile karşılaşıldı, 
 # tüm parantezi çözün.
 elif ifade[i] == ')': 
 
 while len(ops) != 0 and ops [-1] != '(': 
 
 val2 = değerler.pop() 
 val1 = değerler.pop() 
 op = ops.pop() 
 
 values.append(performOp(val1) , val2, op)) 
 
 # pop açılış ayracı. 
 ops.pop() 
 
 # Geçerli belirteç bir operatördür. 
 else: 
 
 # 'işlemlerin' başı, bir operatör olan mevcut 
 # belirteciyle aynı veya 
 # daha büyük önceliğe sahipken. 
 # Operatörü 'operasyonların' üstüne uygula 
 # değerler yığınındaki en üstteki iki öğeye. 
 while (len(işlemler) != 0 ve
 öncelik(işlemler[-1]) >= öncelik(ifade[i]))): 
 
 val2 = değerler.pop() 
 val1 = değerler. pop() 
 op = ops.pop() 
 
 values.append(performOp(val1, val2, op)) 
 
 # Geçerli belirteci 'ops' konumuna itin. 
 ops.append(ifade[i]) 
 
i += 1
 
 # İfadenin tamamı bu 
 # noktasında ayrıştırıldı, kalan işlemleri kalan 
 # değerlere uygulayın. 
 while len(ops) != 0: 
 
 val2 = Values.pop() 
 val1 = Values.pop() 
 op = ops.pop() 
 
 Values.append(performOp( val1, val2, op)) 
 
 # 'değerler'in üstü sonucu içerir, onu döndürür. 
 return değerleri[-1]