Anonymní profil rontorto – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil rontorto – Programujte.comAnonymní profil rontorto – Programujte.com

 

Příspěvky odeslané z IP adresy 2a02:8308:23d:fb00:9d44:d631:51b5:df0f...–

rontorto
Python › prefix do infix
5. 12. 2019   #384946

 Ahoj, mám problém s prefixu do infixu kodem
Poteřbuji změnit kod tak, aby bral inputy v tomto stylu: +-4 2 3 nebo *4-2 3
s tím, že output musí být bez zbytečných závorek ............ 4-2+3 nebo 4*(2-3)

Protože kod funguje,ale vkládá závorky mezi všechny operátory (např (7+7)+7)+7)

Dokážete mi pomoci? Díky

class Calculator:
    def __init__ (self):
        self.stack = []
 
    def push (self, p):
        if p in ['+', '-', '*', '/']:
            op1 = self.stack.pop ()
            op2 = self.stack.pop ()
            self.stack.append ('(%s %s %s)' % (op1, p, op2) )
        elif p == '!':
            op = self.stack.pop ()
            self.stack.append ('%s!' % (op) )
        elif p in ['sin', 'cos', 'tan']:
            op = self.stack.pop ()
            self.stack.append ('%s(%s)' % (p, op) )
        else:
            self.stack.append (p)
 
    def convert (self, l):
        l.reverse ()
        for e in l:
            self.push (e)
        return self.stack.pop ()
 
c = Calculator ()

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý