Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Andrew
intro
Commits
976562fe
Commit
976562fe
authored
Apr 06, 2018
by
edne
Browse files
Revisione giorno 1
parent
058c9f08
Changes
1
Show whitespace changes
Inline
Side-by-side
day_1.md
View file @
976562fe
...
...
@@ -2,21 +2,20 @@

-
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/201
7
/python
](
https://slides.poul.org/201
7
/python
)
[
slides.poul.org/201
8
/python
](
https://slides.poul.org/201
8
/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.23
4
>>> 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
modific
a la
**visibilità**
delle variabili
-
Lo scoping
determin
a 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 "
alz
are" eccezioni all'interno del proprio
I più ardimentosi possono anche "
sollev
are" 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à
----
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment