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