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

Revisione giorno 1

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