Commit 976562fe authored by edne's avatar edne
Browse files

Revisione giorno 1

parent 058c9f08
...@@ -2,21 +2,20 @@ ...@@ -2,21 +2,20 @@
![POuL logo](lib/img/logo-text-white.svg) ![POuL logo](lib/img/logo-text-white.svg)
- Niccolò Izzo - Mario Antani
`<izzo.niccolo_chiocciola_gmail.com>` [antani at gmx.com]()
- Tancredi Orlando - Mario Antani
`<tancredi_chiocciola_coselosche.org>` [antani at gmx.com]()
---- ----
Potete ottenere questa presentazione recandovi all'indirizzo: Potete ottenere questa presentazione recandovi all'indirizzo:
[slides.poul.org/2017/python](https://slides.poul.org/2017/python) [slides.poul.org/2018/python](https://slides.poul.org/2018/python)
--- ---
# Perché Python? Perché Python?
- Ottimo per i principianti - Ottimo per i principianti
- Facile da usare - Facile da usare
...@@ -116,7 +115,7 @@ Type "help", "copyright", "credits" or "license" for more info... ...@@ -116,7 +115,7 @@ Type "help", "copyright", "credits" or "license" for more info...
Hello world! Hello world!
``` ```
Per uscire: `quit()` Per uscire: `quit()` o `CTRL-D`
Notes: Notes:
Mostrare la differenza tra interprete (il software che converte le istruzioni Mostrare la differenza tra interprete (il software che converte le istruzioni
...@@ -164,9 +163,7 @@ Traceback (most recent call last): ...@@ -164,9 +163,7 @@ Traceback (most recent call last):
ZeroDivisionError: division by zero ZeroDivisionError: division by zero
``` ```
Il segreto degli hacker? Leggere le scritte! Il segreto degli [hacker](http://www.girodivite.it/Diario-di-un-aspirante-hacker.html)? Leggere le scritte!
([Lettura consigliata](http://www.girodivite.it/Diario-di-un-aspirante-hacker.html))
---- ----
...@@ -214,9 +211,7 @@ Il segreto degli hacker? Leggere le scritte! ...@@ -214,9 +211,7 @@ Il segreto degli hacker? Leggere le scritte!
---- ----
## Interi (`int`) ## Numeri interi (`int`)
Cifre senza punto
``` ```
12 # notazione decimale 12 # notazione decimale
...@@ -226,12 +221,10 @@ Cifre senza punto ...@@ -226,12 +221,10 @@ Cifre senza punto
---- ----
## Decimali (`float`) ## Numeri decimali (`float`)
Cifre con punto
``` ```
>>> 3.14 + 1.234 >>> 3.14 + 1.23
4.3740000000000006 4.3740000000000006
``` ```
...@@ -274,8 +267,8 @@ int ...@@ -274,8 +267,8 @@ int
## Booleani (`bool`) ## Booleani (`bool`)
- Possono assumere due valori: `True` o `False` - Possono assumere due valori: **True** o **False**
- Supportano operazioni logiche (`and`, `or`, `not`) - Supportano operazioni logiche (**and**, **or**, **not**)
- Sono il risultato delle operazioni di confronto - Sono il risultato delle operazioni di confronto
---- ----
...@@ -302,6 +295,8 @@ False ...@@ -302,6 +295,8 @@ False
---- ----
## Short-circuit evaluation
``` ```
>>> (3.14 < 2) or print('Hello world!') >>> (3.14 < 2) or print('Hello world!')
Hello world! Hello world!
...@@ -414,6 +409,10 @@ lista = [False, 1, "due", 3.0, 4, 5] ...@@ -414,6 +409,10 @@ lista = [False, 1, "due", 3.0, 4, 5]
['due', 3.0, 4] ['due', 3.0, 4]
``` ```
----
### Slicing
- È possibile indicare tutti gli elementi dall'inizio o fino alla fine di una - È possibile indicare tutti gli elementi dall'inizio o fino alla fine di una
lista omettendone l'indice lista omettendone l'indice
...@@ -424,6 +423,13 @@ lista = [False, 1, "due", 3.0, 4, 5] ...@@ -424,6 +423,13 @@ lista = [False, 1, "due", 3.0, 4, 5]
[4, 5, 'sei'] [4, 5, 'sei']
``` ```
- Utilizzando indici negativi si parte a contare dal fondo
```
>>> lista[-4:]
[3.0, 4, 5, 'sei'] # ultimi 4 elementi
```
---- ----
### Unpacking ### Unpacking
...@@ -758,6 +764,8 @@ Hello world! ...@@ -758,6 +764,8 @@ Hello world!
- I parametri diventano variabili visibili all'interno della funzione per essere - I parametri diventano variabili visibili all'interno della funzione per essere
usati usati
----
## Valore di ritorno ## Valore di ritorno
- Il valore di ritorno è ciò che fornisce in uscita la funzione, il proprio - Il valore di ritorno è ciò che fornisce in uscita la funzione, il proprio
...@@ -765,8 +773,6 @@ Hello world! ...@@ -765,8 +773,6 @@ Hello world!
- Lo si specifica inserendo l'istruzione `return` seguita dal valore di ritorno - Lo si specifica inserendo l'istruzione `return` seguita dal valore di ritorno
- La funzione termina subito dopo l'istruzione return - La funzione termina subito dopo l'istruzione return
----
``` ```
>>> def somma(a, b): >>> def somma(a, b):
... return a + b ... return a + b
...@@ -811,7 +817,7 @@ def f(a, b=3, c=6): ...@@ -811,7 +817,7 @@ def f(a, b=3, c=6):
## Scoping ## Scoping
- Lo scoping modifica la **visibilità** delle variabili - Lo scoping determina la **visibilità** delle variabili
- Le variabili definite all'interno di uno scope sono accessbili solo al - Le variabili definite all'interno di uno scope sono accessbili solo al
suo interno suo interno
- Gli scope sono definiti da funzioni, classi e moduli - Gli scope sono definiti da funzioni, classi e moduli
...@@ -867,25 +873,6 @@ assegnata. Infatti dentro la funzione la variabile `x` non esiste. ...@@ -867,25 +873,6 @@ assegnata. Infatti dentro la funzione la variabile `x` non esiste.
---- ----
### Evadere dallo scope
È tuttavia possibile accedere in scrittura a una variabile globale,
specificandolo esplicitamente con l'istruzione **`global`**.
```
>>> x = 'globale'
>>> def f():
... global x
... print(x)
... x = 'variabile ' + x
... print(x)
>>> f()
globale
variabile globale
```
----
## None ## None
- Equivale al `NULL` di C - Equivale al `NULL` di C
...@@ -980,10 +967,10 @@ importati alcuni elementi con la sintassi `from ... import`. ...@@ -980,10 +967,10 @@ importati alcuni elementi con la sintassi `from ... import`.
---- ----
È possibile eseguire del codice solo se il modulo è eseguito direttamente È possibile eseguire del codice solo se il file è eseguito direttamente
e non è stato importato (o il contrario) e non è stato importato come modulo
```python
if __name__ == '__main__': if __name__ == '__main__':
print('Programma eseguito direttamente') print('Programma eseguito direttamente')
else: else:
...@@ -1035,6 +1022,12 @@ Successfully installed shouty-0.1.dev6 ...@@ -1035,6 +1022,12 @@ Successfully installed shouty-0.1.dev6
'Corsi antani avanzati' 'Corsi antani avanzati'
``` ```
```
from math import pi
>>> '{:.2f}'.format(pi)
3.14
```
---- ----
## Input dall'utente ## Input dall'utente
...@@ -1107,6 +1100,7 @@ with open("documento.txt", "w") as f: ...@@ -1107,6 +1100,7 @@ with open("documento.txt", "w") as f:
- All'interno del blocco, `f` è un riferimento al file - All'interno del blocco, `f` è un riferimento al file
- Non serve chiudere esplicitamente - Non serve chiudere esplicitamente
- Se vengono sollevati errori o eccezioni il file viene chiuso - Se vengono sollevati errori o eccezioni il file viene chiuso
- Usate `with` quando potete
---- ----
...@@ -1124,7 +1118,6 @@ FileNotFoundError: [Errno 2] No such file or directory ... ...@@ -1124,7 +1118,6 @@ FileNotFoundError: [Errno 2] No such file or directory ...
``` ```
- Queste situazioni si chiamano **eccezioni**. - Queste situazioni si chiamano **eccezioni**.
- Gli errori hanno un nome.
---- ----
...@@ -1137,15 +1130,15 @@ FileNotFoundError: [Errno 2] No such file or directory ... ...@@ -1137,15 +1130,15 @@ FileNotFoundError: [Errno 2] No such file or directory ...
``` ```
>>> try: >>> try:
... f = open("documento.txt", "r") ... with open("documento.txt", "r") as f:
... print('Do stuff')
... except FileNotFoundError: ... except FileNotFoundError:
... print("Acciderba, questo file non esiste! Lo creo.") ... print("Ops")
... f = open("documento.txt", "w")
``` ```
---- ----
I più ardimentosi possono anche "alzare" eccezioni all'interno del proprio I più ardimentosi possono anche "sollevare" eccezioni all'interno del proprio
codice con l'istruzione `raise`. codice con l'istruzione `raise`.
``` ```
...@@ -1161,14 +1154,12 @@ Exception: No internet connection! ...@@ -1161,14 +1154,12 @@ Exception: No internet connection!
Lunedì 15 alle 17.15 in aula 5.0.3. Lunedì 15 alle 17.15 in aula 5.0.3.
- Programmazione funzionale - List comprehensions
- Lambda - Decoratori
- List comprehensions - yield
- Generatori - Classi
- Programmazione orientata agli oggetti - Metodi
- Classi - Ereditarietà
- Metodi
- Ereditarietà
---- ----
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment