Shkruani një funksion në Python që vlerëson një shprehje të caktuar.
def vlerësim_shprehje(shprehje):
      
    # një pirg për të ruajtur vlerat e numrave të plotë
    vlerat = []
  
    # një pirg për të ruajtur operatorët.
    ops = []
    i = 0
      
    ndërsa i < len(shprehje):
          
        # Shenja aktuale është një hapësirë e bardhë,
        # kapërceje.
        nëse shprehja[i] == ' ':
            i += 1
            vazhdojnë
              
        # Shenja aktuale është një hapje
        # mbajtëse, shtyje atë në "ops"
        shprehje elif[i] == '(':
            ops.append(shprehje[i])
              
        # Shenja aktuale është një numër, shtyje
        # të grumbullohet për numra.
        shprehja elif[i].isdigit():
            val = 0
              
            # Mund të ketë më shumë se një
            # shifra në numër.
            ndërsa (i < len(shprehje) dhe
                shprehje[i].isdigit()):
                  
                val = (val * 10) + int(shprehje[i])
                i += 1
                  
            vlerat.append(val)
  
        # Kllapa mbyllëse e hasur, zgjidh
        # i gjithë mbajtësja.
        shprehja elif[i] == ')':
              
            ndërsa len(ops) != 0 dhe ops[-1] != '(':
                  
                val2 = vlerat.pop()
                val1 = vlerat.pop()
                op = ops.pop()
                  
                values.append(performOp(val1, val2, op))
              
            # mbajtëse hapëse.
            ops.pop()
              
        # Shenja aktuale është një operator.
        tjetër:
              
            # Ndërsa në krye të 'ops' ka të njëjtat ose
            # përparësi më e madhe ndaj rrymës
            # shenjë, e cila është një operator.
            # Aplikoni operatorin në krye të 'ops'
            # në krye të dy elementeve në raftin e vlerave.
            ndërsa (len(ops) != 0 dhe
                përparësi(ops[-1]) >= përparësi (shprehje[i])):
                  
                val2 = vlerat.pop()
                val1 = vlerat.pop()
                op = ops.pop()
                  
                values.append(performOp(val1, val2, op))
                  
            # Shtyjeni shenjën aktuale në 'ops'.
            ops.append(shprehje[i])
          
        i += 1
          
     # E gjithë shprehja është analizuar në këtë
    # pikë, zbato opsionet e mbetura për të mbetur
    # vlera.
    ndërsa len(ops) != 0:
          
        val2 = vlerat.pop()
        val1 = vlerat.pop()
        op = ops.pop()
          
        values.append(performOp(val1, val2, op))
      
    # Në krye të 'vlerave' përmban rezultatin, kthejeni atë.
    kthen vlerat[-1]