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.8.0 -- An enhanced Interactive Python.
In [1]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
In [2]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[2, 3, 5, 7, 11]
In [3]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
In [4]:
Removing all variables...
In [4]: debugfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
> /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(7)<module>()
5
6 @author: andrea
----> 7 """
8
9 def quadrati_distruttiva(L):
ipdb> [4, 9, 16, 25]
> /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(20)cubi_distruttiva()
18
19 def cubi_distruttiva(L):
2--> 20 L3 = [ x**3 for x in L ]
21 L = L3
22 print(L)
ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(20)<listcomp>()
18
19 def cubi_distruttiva(L):
2--> 20 L3 = [ x**3 for x in L ]
21 L = L3
22 print(L)
ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(20)<listcomp>()
18
19 def cubi_distruttiva(L):
2--> 20 L3 = [ x**3 for x in L ]
21 L = L3
22 print(L)
ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(20)<listcomp>()
18
19 def cubi_distruttiva(L):
2--> 20 L3 = [ x**3 for x in L ]
21 L = L3
22 print(L)
ipdb>
ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(20)<listcomp>()
18
19 def cubi_distruttiva(L):
2--> 20 L3 = [ x**3 for x in L ]
3 21 L = L3
22 print(L)
ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(20)<listcomp>()
18
19 def cubi_distruttiva(L):
2--> 20 L3 = [ x**3 for x in L ]
3 21 L = L3
22 print(L)
ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(20)<listcomp>()
18
19 def cubi_distruttiva(L):
2--> 20 L3 = [ x**3 for x in L ]
3 21 L = L3
22 print(L)
ipdb>
ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(21)cubi_distruttiva()
19 def cubi_distruttiva(L):
20 L3 = [ x**3 for x in L ]
2--> 21 L = L3
22 print(L)
23
ipdb> > /home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py(22)cubi_distruttiva()
20 L3 = [ x**3 for x in L ]
2 21 L = L3
---> 22 print(L)
23
24 valori2 = [2, 3, 5, 7, 11]
ipdb> [8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
ipdb>
In [5]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
[8, 27, 125, 343, 1331]
In [6]: valori2[100]
Traceback (most recent call last):
File "<ipython-input-6-3bae95a10a1b>", line 1, in <module>
valori2[100]
IndexError: list index out of range
In [7]:
In [7]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
[8, 27, 125, 343, 1331]
Traceback (most recent call last):
File "<ipython-input-7-18bc86396a84>", line 1, in <module>
runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 50, in <module>
f3(42)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 48, in f3
return f1(y)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 45, in f1
return f2(x)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 42, in f2
return x/0
ZeroDivisionError: division by zero
In [8]:
In [8]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
[8, 27, 125, 343, 1331]
Traceback (most recent call last):
File "<ipython-input-8-18bc86396a84>", line 1, in <module>
runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 50, in <module>
f3(42)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 48, in f3
return f1(y)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 45, in f1
return f2(x)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 42, in f2
return x/0
ZeroDivisionError: division by zero
In [9]:
In [9]: f3(3)
Traceback (most recent call last):
File "<ipython-input-9-3129c922f606>", line 1, in <module>
f3(3)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 48, in f3
return f1(y)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 45, in f1
return f2(x)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 42, in f2
return x/0
ZeroDivisionError: division by zero
In [10]:
In [10]: try:
...: f3(7)
...: except:
...: print("qualcosa non ha funzionato")
...:
qualcosa non ha funzionato
In [11]: try:
...: f3(7)
...: except ZeroDivisionError:
...: print("ho diviso per zero!!!!")
...:
ho diviso per zero!!!!
In [12]: try:
...: f3(7)
...: except IndexError:
...: print("ho diviso per zero!!!!")
...:
Traceback (most recent call last):
File "<ipython-input-12-229cacf46712>", line 2, in <module>
f3(7)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 48, in f3
return f1(y)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 45, in f1
return f2(x)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 42, in f2
return x/0
ZeroDivisionError: division by zero
In [13]:
In [12]:
In [13]: L = [1, 2, 3, 4]
In [14]: try:
...: f3(L[7])
...: except IndexError:
...: print("l'indice non esiste")
...:
l'indice non esiste
In [15]: try:
...: f3(L[7])
...: except IndexError:
...: print("l'indice non esiste")
...: except ZeroDivisionError:
...: print("ho diviso per zero!!!")
...:
l'indice non esiste
In [16]: try:
...: f3(L[1])
...: except IndexError:
...: print("l'indice non esiste")
...: except ZeroDivisionError:
...: print("ho diviso per zero!!!")
...:
ho diviso per zero!!!
In [17]: try:
...: f3(L[1])
...: except IndexError:
...: print("l'indice non esiste")
...: except ZeroDivisionError:
...: print("ho diviso per zero!!!")
...: except:
...: print("errore sconosciuto")
...:
ho diviso per zero!!!
In [18]: try:
...: f3(L[1])
...: except:
...: print("errore sconosciuto")
...: except IndexError:
...: print("l'indice non esiste")
...: except ZeroDivisionError:
...: print("ho diviso per zero!!!")
...:
File "<ipython-input-18-ff0b8145b29a>", line 5
except IndexError:
^
SyntaxError: default 'except:' must be last
In [19]:
In [19]: try:
...: f3(L[1])
...: except IndexError:
...: print("l'indice non esiste")
...: except ZeroDivisionError:
...: print("ho diviso per zero!!!")
...: finally:
...: print("finita l'eccezione")
...:
ho diviso per zero!!!
finita l'eccezione
In [20]: try:
...: print(L[1])
...: except IndexError:
...: print("l'indice non esiste")
...: except ZeroDivisionError:
...: print("ho diviso per zero!!!")
...: finally:
...: print("finita l'eccezione")
2
finita l'eccezione
In [21]: try:
...: 4/0
...: except IndexError:
...: print("l'indice non esiste")
...: except ZeroDivisionError:
...: pass
...: finally:
...: print("finita l'eccezione")
finita l'eccezione
In [22]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
[8, 27, 125, 343, 1331]
Traceback (most recent call last):
File "<ipython-input-22-18bc86396a84>", line 1, in <module>
runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 50, in <module>
f3(42)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 48, in f3
return f1(y)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 45, in f1
return f2(x)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 42, in f2
return x/0
ZeroDivisionError: division by zero
In [23]:
In [23]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
[8, 27, 125, 343, 1331]
Traceback (most recent call last):
File "<ipython-input-23-18bc86396a84>", line 1, in <module>
runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 60, in <module>
raise ValorinegativiError
ValorinegativiError
In [24]:
In [24]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
[8, 27, 125, 343, 1331]
Traceback (most recent call last):
File "<ipython-input-24-18bc86396a84>", line 1, in <module>
runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 827, in runfile
execfile(filename, namespace)
File "/opt/anaconda3/envs/F19/lib/python3.7/site-packages/spyder_kernels/customize/spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)
File "/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py", line 60, in <module>
raise ValorinegativiError(f"attento, il valore {x} è negativo")
ValorinegativiError: attento, il valore -4 è negativo
In [25]:
In [25]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
[8, 27, 125, 343, 1331]
cavolo, ho sbagliato
In [26]: runfile('/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni/lezione5.py', wdir='/home/andrea/Documents/Uni/Didattica/Prog1/2019-20/Lezioni')
[4, 9, 16, 25]
[8, 27, 125, 343, 1331]
[2, 3, 5, 7, 11]
[8, 27, 125, 343, 1331]
cavolo, ho sbagliato un valore
['uno', 'venticinque', 'paperino', 'minnie', 'quo']
In [27]: stringhe.sort()
In [28]: stringhe
Out[28]: ['minnie', 'paperino', 'quo', 'uno', 'venticinque']
In [29]: lista2 = [ (len(x), x) for x in stringhe ]
In [30]: lista2
Out[30]: [(6, 'minnie'), (8, 'paperino'), (3, 'quo'), (3, 'uno'), (11, 'venticinque')]
In [31]: lista2.sort()
In [32]: lista2
Out[32]: [(3, 'quo'), (3, 'uno'), (6, 'minnie'), (8, 'paperino'), (11, 'venticinque')]
In [33]: [ coppia[1] for coppia in lista2 ]
Out[33]: ['quo', 'uno', 'minnie', 'paperino', 'venticinque']
In [34]: S = stringhe.copy()
In [35]: S.sort(key=len)
In [36]: S
Out[36]: ['quo', 'uno', 'minnie', 'paperino', 'venticinque']
In [37]: S.sort(key=len, reverse=True)
In [38]: S
Out[38]: ['venticinque', 'paperino', 'minnie', 'quo', 'uno']
In [39]: def coppia(x):
...: return len(x), x
...:
In [40]: S.sort(key=coppia, reverse=True)
In [41]: S
Out[41]: ['venticinque', 'paperino', 'minnie', 'uno', 'quo']
In [42]: S.sort(key=lambda x: (len(x), x))
In [43]: S
Out[43]: ['quo', 'uno', 'minnie', 'paperino', 'venticinque']
In [44]: sorted(S, key=lambda x: (len(x), x))
Out[44]: ['quo', 'uno', 'minnie', 'paperino', 'venticinque']
In [45]: sorted(S, key=lambda x: (len(x), x), reverse=True)
Out[45]: ['venticinque', 'paperino', 'minnie', 'uno', 'quo']
In [46]: