Python 3.7.3 | packaged by conda-forge | (default, Jul 1 2019, 21:52:21)

Type "copyright", "credits" or "license" for more information.


IPython 7.10.1 -- An enhanced Interactive Python.


In [1]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')


In [2]: x.vincente('o')

Out[2]: False


In [3]: x.strategia_vincente('o')

Traceback (most recent call last):


File "<ipython-input-3-0a97c85736cd>", line 1, in <module>

x.strategia_vincente('o')


File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15.py", line 73, in strategia_vincente

mosse = self.mosse(pg)


File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15.py", line 49, in mosse

if self.piena():


AttributeError: 'NodoTris' object has no attribute 'piena'



In [4]:


In [4]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [5]: x.strategia_vincente('o')

Out[5]: True


In [6]: x.strategia_vincente('x')

Out[6]: False


In [7]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [8]: x.strategia_vincente('x')

Out[8]: True


In [9]: x.strategia_vincente('o')

Out[9]: False


In [10]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [11]: x.strategia_vincente2('x')

Out[11]: (True, [(0, 0, 'x')])


In [12]: x.strategia_vincente2('o')

Out[12]: (False, [(0, 0, 'x')])


In [13]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [14]: x.strategia_vincente2('o')

Out[14]: (True, [(0, 0, 'o')])


In [15]: x.strategia_vincente2('x')

Out[15]: (False, [(0, 0, 'o')])


In [16]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [17]: x.strategia_vincente2('x')

Out[17]: (False, [])


In [18]: x.strategia_vincente2('o')

Out[18]: (False, [(0, 0, 'x')])


In [19]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [20]: x.strategia_vincente2('o')

Out[20]: (True, [(0, 0, 'o')])


In [21]: x.strategia_vincente2('x')

Out[21]: (False, [(0, 0, 'o')])


In [22]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [23]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [24]: print(espressione)

(5*(8+x))


In [25]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [26]: cinque.calcola()

Traceback (most recent call last):


File "<ipython-input-26-ab8e7fa82706>", line 1, in <module>

cinque.calcola()


TypeError: calcola() missing 1 required positional argument: 'variabili'



In [27]:


In [27]: cinque.calcola({})

Out[27]: 5


In [28]: ics.calcola({'x': 42})

Out[28]: 42


In [29]: ics.calcola({'y': 42})

Traceback (most recent call last):


File "<ipython-input-29-70cedcde6016>", line 1, in <module>

ics.calcola({'y': 42})


File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py", line 36, in calcola

return variabili[self.nome]


KeyError: 'x'



In [30]:


In [30]: espressione.calcola({'x':4})

Out[30]: 60


In [31]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [32]: print(espressione)

(5*(0+x))


In [33]: espressione.semplifica()


In [34]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [35]: espressione.semplifica()

Out[35]: <__main__.Operatore at 0x7fc22600c358>


In [36]: print(espressione.semplifica())

(5*(0+x))


In [37]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [38]: e2 = espressione.semplifica()

Traceback (most recent call last):


File "<ipython-input-38-47bef0bf6a17>", line 1, in <module>

e2 = espressione.semplifica()


File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/rtrace.py", line 44, in __call__

answer = self.f(*args,**kargs)


TypeError: semplifica() missing 1 required positional argument: 'self'



In [39]:


In [39]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [40]: %debug espressione.semplifica()

NOTE: Enter 'c' at the ipdb> prompt to continue execution.

> <string>(1)<module>()



ipdb>

ipdb> l



ipdb> p

*** SyntaxError: unexpected EOF while parsing


ipdb> ?


Documented commands (type help <topic>):

========================================

EOF cl disable interact next psource rv unt

a clear display j p q s until

alias commands down jump pdef quit source up

args condition enable l pdoc r step w

b cont exit list pfile restart tbreak whatis

break continue h ll pinfo return u where

bt d help longlist pinfo2 retval unalias

c debug ignore n pp run undisplay


Miscellaneous help topics:

==========================

exec pdb


> /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py(77)semplifica()

75

76 def semplifica(self):

5--> 77 if self.op == '*' and self.sx == Numero(1):

78 return self.dx

79 if self.op == '*' and self.sx == Numero(0):



ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py(79)semplifica()

5 77 if self.op == '*' and self.sx == Numero(1):

78 return self.dx

---> 79 if self.op == '*' and self.sx == Numero(0):

80 return Numero(0)

81 if self.op == '*' and self.dx == Numero(1):



ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py(81)semplifica()

79 if self.op == '*' and self.sx == Numero(0):

80 return Numero(0)

---> 81 if self.op == '*' and self.dx == Numero(1):

82 return self.sx

83 if self.op == '*' and self.dx == Numero(0):



ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py(83)semplifica()

81 if self.op == '*' and self.dx == Numero(1):

82 return self.sx

---> 83 if self.op == '*' and self.dx == Numero(0):

84 return Numero(0)

85



ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py(86)semplifica()

84 return Numero(0)

85

---> 86 if self.op == '+' and self.sx == Numero(0):

87 return self.dx

88 if self.op == '+' and self.dx == Numero(0):



ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py(88)semplifica()

86 if self.op == '+' and self.sx == Numero(0):

87 return self.dx

---> 88 if self.op == '+' and self.dx == Numero(0):

89 return self.sx

90



ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py(91)semplifica()

89 return self.sx

90

---> 91 if self.op == '+' and self.sx == self.dx:

92 return Operatore('*', Numero(2),self.sx)

93



ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py(94)semplifica()

92 return Operatore('*', Numero(2),self.sx)

93

---> 94 return self

95

96 cinque = Numero(5)



ipdb> --Return--

<__main__.Ope...x7fc21c39ceb8>

> /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py(94)semplifica()

92 return Operatore('*', Numero(2),self.sx)

93

---> 94 return self

95

96 cinque = Numero(5)



ipdb>

ipdb>

ipdb>

ipdb>

ipdb>

ipdb>


In [41]: e2 = espressione.semplifica()


In [42]: print(e2)

(5*(0+x))


In [43]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [44]: e2 = espressione.semplifica()


In [45]: print(e2)

(5*x)


In [46]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione15-bis.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')

Reloaded modules: rtrace


In [47]: e1 = parse("(54*(032+x))")


In [48]: print(e1)

(<__main__.Operatore object at 0x7fc21c3b88d0>, 12)


In [49]: print(e1[0])

(54*(32+x))


In [50]: print(e1[0].calcola({'x':17}))

2646


In [51]: e1 = parse("(1*(0+x))")


In [52]: print(e1[0].semplifica())

x


In [53]: