Commit c4dbf2bc authored by Tancredi Orlando's avatar Tancredi Orlando
Browse files

Initial import.

parents
# Corsi Python 2017
----
Potete ottenere questa presentazione recandovi all'indirizzo:
[slides.poul.org/2017/python](https://slides.poul.org/2017/python)
---
# Perché Python?
- Ottimo per i principianti
- Facile da usare
- Estremamente diffuso
- Moduli per qualunque cosa
----
## C
```c
#include <stdio.h>
int main() {
printf("Hello World!\n");
return 0;
}
```
----
## Java
```java
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Goodbye, World!");
}
}
```
----
## Python
```python
print('Hello World!')
```
----
![import antigravity](https://imgs.xkcd.com/comics/python.png)
----
## Breve storia
- Nasce nel 1991 per mano di Guido van Rossum
- Prende il nome dai Monty Python
- È in continua evoluzione
- Convivono due versioni (2 e 3)
- Noi useremo Python 3 (3.6.1)
- Fatelo anche voi
Notes:
Ricordatevi il nome di Guido
Aggiungere statistiche sullo sviluppo di python
----
## Interpretato vs. compilato
- Compilato: tradotto in linguaggio macchina
- Interpretato: eseguito da un altro programma
- Python è interpretato (forse no...)
Notes:
Parlare della VM Python
---
## Cosa serve
- Editor di testo (Atom, Notepad++)
- Interprete Python
- Linux: generalmente preinstallato, altrimenti utilizzare il package manager
- macOS: [Installer](https://www.python.org/ftp/python/3.6.1/python-3.6.1-macosx10.6.pkg)
- Windows: [32bit](https://www.python.org/ftp/python/3.6.1/python-3.6.1.exe)
o [64bit](https://www.python.org/ftp/python/3.6.1/python-3.6.1-amd64.exe)
----
## REPL
**R**ead, **E**val, **P**rint **L**oop
```bash
$ python3
Python 3.6.1 (default, Mar 27 2017, 00:27:06)
[GCC 6.3.1 20170306] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello world!')
Hello world!
```
Per uscire: quit()
Notes:
Differenza tra interprete (il software che converte le istruzioni in bytecode e
poi esegue quest'ultimo) e REPL (il software che si interfaccia con l'utente)
----
## Espressioni
```python
>>> 2 + 2
4
>>> 3 * 3
9
>>>4 < 5
True
```
----
## Errori
o "Il segreto degli hacker"
```python
>>> 3 / 0
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ZeroDivisionError: division by zero
```
([Lettura consigliata](http://www.girodivite.it/Diario-di-un-aspirante-hacker.html))
----
## Variabili
Diamo nomi alle cose.
```python
>>> x = 6
>>> x
6
>>> 2 * x
12
>>> y = x + 4
>>> y
10
```
----
### Cosa ho di fronte?
```python
>>> type(3)
<class 'int'>
>>> type(3.14)
<class 'float'>
```
----
### Interi
- Interi (int)
- `x = 3`
----
### Decimali
- `y = 3.14`
- `z = y / 1.27391`
----
### Bool
- Booleani (bool)
- `x = False`
- `y = 1 < 2`
- `z = x or y`
----
### Stringhe
- Stringhe (str)
- `k = 'Una stringa!'
- `s = "Un'altra stringa"
- Stringhe su più righe:
```q = """riga 1
riga 2
- "#" * 5
"""
```
----
### Liste
Contengono una certa qualtità di elementi, anche di tipi diversi.
```
lista = [1, "due", 3.0]
```
----
### Tuple
Esattamente come le liste, ma immutabili.
```
tupla = ('a', 1, 2, 'bcd')
```
----
### Insiemi
- Come gli insiemi matematici,
- Non contengono elementi duplicati
```
insieme = {"mele", "pere", 2, "arance"}
```
---
### Dizionari
- Associano una chiave ad un valore
- Le chiavi devono essere immutabili
```
dizionario = {
"nome":"Tancredi",
"cognome":"Orlando"
}
```
----
## Strutture di controllo
----
### if
----
### while
----
### for
---
Tancredi Orlando
`<`[`tancredi@coselosche.org`](mailto:tancredi@coselosche.org)`>`
Niccolò Izzo `<`[`izzo.niccolo@gmail.com`](mailto:izzo.niccolo@gmail.com)`>`
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