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]: