appunti3s:introduzione_a_python
Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
appunti3s:introduzione_a_python [2018/04/25 07:55] – external edit 127.0.0.1 | appunti3s:introduzione_a_python [2020/06/08 22:19] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Python ====== | ||
+ | |||
+ | >> indice: [[appunti3s: | ||
+ | |||
+ | ===== Prerequisiti ===== | ||
+ | |||
+ | - conoscere il concetto di variabile e costante | ||
+ | - conoscere il concetto di algoritmo | ||
+ | - saper trovare un algoritmo risolutore di un problema generico | ||
+ | - conoscere la differenza tra programmatore ed utente | ||
+ | - conoscere la differenza tra linguaggio compilato ed interpretato | ||
+ | - conoscere la differenza tra programma nel terminale e GUI. | ||
+ | |||
+ | ===== Cosa faremo? ===== | ||
+ | Sperimenteremo per la prima volta il lavoro del programmatore... | ||
+ | * **Quiz**: qual è il lavoro del programmatore? | ||
+ | Python è un linguaggio di programmazione, | ||
+ | Le istruzioni sono scritte dal programmatore e il computer le esegue per risolvere automaticamente i problemi dell' | ||
+ | |||
+ | Python è un linguaggio interpretato, | ||
+ | Perché il computer possa comprendere il linguaggio Python deve essere installato il programma interprete Python. | ||
+ | * **Quiz**: Nel tuo computer è già installato questo programma? | ||
+ | ===== Esempi di uso dell' | ||
+ | L' | ||
+ | * La modalità **interattiva** si avvia // | ||
+ | * < | ||
+ | 3 | ||
+ | >>> | ||
+ | * La modalità **non interattiva** consiste nel preparare un file di testo contenente tutte le istruzioni da far eseguire al computer (questo file si chiama programma). Per i programmi scritti in linguaggio Python è consuetudine usare l' | ||
+ | <file python sommare.py> | ||
+ | print 1 + 2 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Editor a sintassi evidenziata ===== | ||
+ | |||
+ | Il testo del programma può essere scritto usando la tastiera e qualsiasi programma editor di testo. | ||
+ | * **Quiz**: Quali programmi editor di testo conosci? | ||
+ | * **Quiz**: Salvano il testo in modo // | ||
+ | * **Quiz**: In che codifica salvano? | ||
+ | |||
+ | Alcuni esempi di programmi che colorano le parole chiave sono: | ||
+ | |||
+ | * http:// | ||
+ | * http:// | ||
+ | | ||
+ | Alcuni di questi programmi hanno una scorciatoia anche per eseguire il codice (RUN) | ||
+ | |||
+ | ===== Traduzione ===== | ||
+ | Le istruzioni scambiate tra gli uomoni sono descritte usando un linguaggio naturale. Le istruzioni contenute in un programma sono espresse in un linguaggio artificiale, | ||
+ | Le istruzioni possono essere descritte a parola oppure tramite un diagramma. Ogni diverso tipo di istruzione, nei diagrammi di flusso, si rappresenta con una forma geometrica diversa (ad esempio, con un parallelogramma). Per poter far eseguire le istruzioni di un diagramma di flusso ad un computer, si deve effettuare una " | ||
+ | |||
+ | ===== Parole chiave ===== | ||
+ | |||
+ | Leggendo un programma troveremo delle parole della lingua inglese, come //print//, che potrebbe essere tradotto come //stampa//. Il computer non comprende la lingua umana, nè l' | ||
+ | (cioè il programma viene sempre eseguito, fino a che è possibile farlo, anche se poi dentro si trova un errore) | ||
+ | |||
+ | ===== Esempio (output) ===== | ||
+ | |||
+ | Un programmatore deve dare delle istruzioni al computer. Ad esempio, può chiedere di stampare sul monitor il risultato di un calcolo difficile. | ||
+ | * **Quiz**: Come si può dare questo tipo di istruzione (stampa) usando il linguaggio Python? | ||
+ | Stampa è un' | ||
+ | Per iniziare con qualcosa di molto semplice, proveremo delle stupide istruzioni che fanno solo output. **Notare** che il testo si può racchiudere tra // | ||
+ | |||
+ | Ad esempio: | ||
+ | <file python 01.py> | ||
+ | print " | ||
+ | </ | ||
+ | * **Esercizio**: | ||
+ | |||
+ | Se il programmatore vuole descrivere un commento a fianco di un' | ||
+ | <file python 02.py> | ||
+ | print "Ciao a tutti!" | ||
+ | </ | ||
+ | |||
+ | Nota: print è un costrutto predefinito del linguaggio e __non__ ci sono le parentesi. Si vedrà più avanti che questo significa che print __non__ è una funzione. | ||
+ | ===== Esempio di assegnazione ===== | ||
+ | Come memorizzare il risultato di un' | ||
+ | <file python 03.py> | ||
+ | totale = 2 # inizializzazione | ||
+ | print "la variabile usata si chiama totale" | ||
+ | print "il valore calcolato vale", totale | ||
+ | </ | ||
+ | |||
+ | * **Esercizio**: | ||
+ | * **Esercizio**: | ||
+ | |||
+ | ===== Assegnazioni ===== | ||
+ | |||
+ | A volte capita che alcuni numeri debbano essere memorizzati, | ||
+ | * Come si memorizza un numero nella memoria del computer? | ||
+ | * A cosa serve una variabile? | ||
+ | Per memorizzare un valore temporaneamente, | ||
+ | < | ||
+ | In Python la variabile viene creata quando si memorizza il primo valore. Questo istante si chiama " | ||
+ | < | ||
+ | L' | ||
+ | Per vedere il contenuto di una variabile (che sia stata inizializzata) si può usare //print// (senza virgolette) | ||
+ | < | ||
+ | Al posto di un valore numerico costante (come 44) ci può essere anche un'// | ||
+ | < | ||
+ | Per questo motivo spesso l' | ||
+ | < | ||
+ | < | ||
+ | È possibile assegnare una variabile su se stessa: | ||
+ | < | ||
+ | Quello che segue è un esempio di un' | ||
+ | < | ||
+ | La precedente scrittura, ovviamente, non deve essere letta come se fosse un' | ||
+ | In Python, invece di scrivere | ||
+ | < | ||
+ | c = 11</ | ||
+ | è più efficiente scrivere | ||
+ | < | ||
+ | |||
+ | ===== Esempio (input) ===== | ||
+ | |||
+ | Se invece il programmatore vuole ricevere i dati dall' | ||
+ | |||
+ | <file python 04.py> | ||
+ | # nome e' una variabile su cui si esegue un' | ||
+ | nome = raw_input(" | ||
+ | print "ciao a tutti, tranne che a", nome | ||
+ | </ | ||
+ | * **Quiz**: di che tipo è la variabile nome? Contiene un numero o un testo? | ||
+ | * **Esercizio**: | ||
+ | |||
+ | Nota: // | ||
+ | |||
+ | raw_input() memorizza **come testo** una o più parole in input. Per chiedere in input dei numeri sarebbe necessario applicare una trasformazione, | ||
+ | |||
+ | <file python 05.py> | ||
+ | # anno e' una variabile che contiene un numero intero | ||
+ | anno = input(" | ||
+ | print "sei nato nel", anno | ||
+ | </ | ||
+ | |||
+ | * **Esercizio**: | ||
+ | |||
+ | ===== Esempi di operazioni ===== | ||
+ | |||
+ | Continuiamo con una serie di istruzioni molto semplici, solo per capire come il computer esegue le operazioni matematiche per i numeri interi e per i numeri con la virgola mobile. **Nota**: nel mondo anglosassone si usa il punto al posto della virgola. | ||
+ | <file python 06.py> | ||
+ | print "la somma di 11 piu' 2 fa sempre", | ||
+ | print "il rapporto tra 11 e 2 fa sempre", | ||
+ | </ | ||
+ | |||
+ | <file python 07.py> | ||
+ | print "la somma di 11.0 piu' 2.0 fa sempre", | ||
+ | print "il rapporto tra 11.0 e 2.0 fa sempre", | ||
+ | </ | ||
+ | * **Esercizio**: | ||
+ | * **Esercizio**: | ||
+ | * **Quiz**: cosa visualizzerà il seguente programma? Quanto fa 1.1 meno 1.0 ? Provare... | ||
+ | |||
+ | <file python 08.py> | ||
+ | differenza = 1.1 - 1.0 | ||
+ | print " | ||
+ | print " | ||
+ | </ | ||
+ | |||
+ | * **Quiz**: cosa visualizzerà il seguente programma ESEGUITO DA LINEA DI COMANDO? | ||
+ | < | ||
+ | |||
+ | * **Soluzione**: | ||
+ | |||
+ | Cosa accade se proviamo a sommare due caratteri alfanumerici? | ||
+ | <file python 09.py> | ||
+ | operazione = ' | ||
+ | print " | ||
+ | </ | ||
+ | Il risultato è diverso dalla somma dei numeri per questo motivo questa operazione è detta " | ||
+ | * **Esercizio**: | ||
+ | * **Esercizio**: | ||
+ | ===== Tipo di dato ===== | ||
+ | Il valore contenuto in una variabile può essere modificato, ma deve essere sempre dello stesso tipo. | ||
+ | Abbiamo già usato diversi tipo di dato: nei precedenti esempi si è visto che le variabili possono contenere numeri interi e numeri con la virgola e che i risultati delle operazioni (come la divisione) possono essere diversi se non si presta attenzione al tipo di dato. | ||
+ | Si è visto infatti che, se forniamo due numeri interi e li dividiamo, l' | ||
+ | |||
+ | Quali tipi di dato abbiamo usato in Python? | ||
+ | - Tipo intero: -3, 44, ... | ||
+ | - Tipo virgola mobile: 4.15, 980.00, ... | ||
+ | - Tipo carattere alfanumerico: | ||
+ | * Ogni tipo di dato (intero, carattere, ecc.) richiede una quantità di memoria diversa dall' | ||
+ | * Ogni tipo di dato offre la possibilità di effettuare un certo tipo di operazioni invece di altre: il tipo carattere non può essere sommato come il tipo intero. | ||
+ | |||
+ | Esistono due tipi di linguaggi: | ||
+ | * nei primi, detti fortemente tipizzati, una variabile può essere creata per contenere un solo tipo di dato, quindi il linguaggio è detto // | ||
+ | * nei secondi, i // | ||
+ | |||
+ | Esistono i tipi primitivi predefiniti (built-in), come //bool//, //int//, //long//, //float//, //str//, //list//, ma il programmatore può creare anche nuovi tipi di dati. | ||
+ | Inoltre la libreria standard fornisce nuovi tipi di dati come // | ||
+ | |||
+ | |||
+ | |||
+ | ===== Esercizi ===== | ||
+ | |||
+ | Preparare una mappa concettuale con gli argomenti di questo capitolo (parole chiave) | ||
+ | |||
+ | Preparare programmi che devono essere copiati, ma senza fare copia incolla. | ||
+ | |||
+ | Scovare gli errori nei programmi | ||
+ | |||
+ | Indovinare il risultato dei programmi | ||