Sei sulla pagina 1di 5

PYTHON - LINGUAGGIO

1 INTRODUZIONE
1.1 REPL
Python è un linguaggio di programmazione. Segue il REPL, ossia un protocollo tra utente e
programma.
1. Read – il programma legge e capisce ciò che scrivi
2. Evaluate – il programma risolve la domanda o svolge l’input dato
3. Print – il programma da un output
4. Loop – ripeti
Programmare in Python significare aggiungere celle “code” all’interno del quali scrivo un codice;
inoltre, un altro tipo di cella “text”, permette di scrivere un testo, tipo un mini documento word.
Python è quindi un elenco di codici, che hanno un senso cronologico: ad esempio, se devo usare
una variabile, devo definirla in un codice precedente, cioè sopra, al codice in cui la usa (oppure
nella riga precedente in caso io faccia tutto dentro un unico codice). Per cambiare l’ordine delle
celle basta usare “move selected cell up” o “move selected cell down” ossia i simboli accanto a
+code e +text
Nota: ogni parola chiave che scrivo tra <> non fa parte del linguaggio di programmazione ma indica
un generale.

1.2 TIPI DI ISTRUZIONI/STATEMENTS <stmt>


Python è praticamente una lista di statements <stmt>; ogni riga è un statement. Esistono diversi tipi di
statements:

• ESPRESSIONI
• ASSEGNAZIONI
• DEFINIZIONI DI FUNZIONI
• IMPORTARE FUNZIONI DA LIBRERIE
• COMPOUND STATEMENTS

2 ESPRESSIONI <expr>
2.1 I VALORI
I valori sono:
- Valori numerici es. 5, 3875.
- Stringhe, ossia parole o numeri o segni scritti tra virgolette, “” o ‘’, es. “hello”, “5”, ‘ciao,4’.
- True o False, che se messi in liste assumono valori numerici rispettivamente 0 e 1.
2.2 LE VARIABILI <var>
Una variabile è un contenitore di un valore e ha:
- Un nome, (non per forza scritto in lettere), es. x, my_string1. NOTA: si differenzia dalle
stringhe in lettere poiché non è compreso tra virgolette; non posso usare lo spazio es. my
string poiché non lo prendo, ma si usa il _, quindi my_string).
- Un valore, assegnato con un’assegnazione (un tipo di <stmt>).
- Un tipo di valore ha assegnato.
Nota: le variabili hanno dei livelli detti “scope”: se definisco una variabile dentro una funzione, la
variabile non è definita fuori dalla funzione, mentre se è definita fuori lo è anche dentro la
funzione.

2.3 LE FUNZIONI <function>


Le funzioni si scrivono con nomefunzione(<var>, <var>, …) in cui tra parentesi tonde si mettono le
variabili, a cui sono assegnati valori. Ci possono essere tante variabili, una sola o nessuna
Alcuni esempi di funzioni sono:

• print() da un output. Si usa all’interno di funzioni per avere un output dopo ogni <stmt> per
vedere se c’è un errore dov’è, oppure dopo aver assegnato qualcosa a una variabile
<var>=<expr> faccio print(<var>) per vedere se la <var> è giusto.
• str() trasforma un valore in una stringa. Tra le parentesi tonde si mette il valore.
• int() trasforma un valore numerico in una stringa. Tra le parentesi tonde si mette il valore
numerico.
• len() dice il numero di elementi in un insieme o in una lista, o il numero di caratteri in una
stringa. Tra le parentesi ci va la <var> della lista o della stringa.
• list() crea una lista da un insieme.
• set() crea un insieme da una lista.
• random(,)
• randint(,)
• choice()
• shuffle() mischia a caso gli elementi di una lista.
• sum() somma gli elementi di una lista o di un insieme.
• range() crea un intervallo di numeri. Serve ad esempio per creare una lista con un
intervallo di numeri, facendo [e for e in range()]. Tra le parentesi tonde ci vanno il numero
d’inizio dell’intervallo x e quello di fine dell’intervallo y, tenendo conto che quest’ultimo y
verrà escluso. Dunque l’intervallo effettivo comprenderà tutti i numeri da x a y-1, inclusi gli
estremi.
• enumerate() data una mylist=<lista> da mettere tra parentesi tonde, crea una lista formata
da coppie il cui primo elemento è la posizione dell’elemento della mylist, e il secondo
elemento è l’elemento di mylist nella posizione.
• zip()
• “”.join()
• <var>.split()
2.4 CONTENITORI DI ESPRESSIONI
Ci sono diversi tipi di contenitori di espressioni, qualunque tipo:
- Una lista, che si indica con le parentesi quadre [] e gli elementi son divisi da virgole. In essa
ogni elemento è associato a una posizione, dunque cambiando la posizione degli elementi
si crea una nuova lista.
Nota: posso controllare che elemento c’è in una determinata posizione facendo una slice
<variabiledellalista>[numero della posizione] mentre se è un intervallo <variabile della
lista>[posizione dell’elemento iniziale:posizione dell’elemento finale].
- Un insieme, che si indica con le parentesi graffe  e gli elementi sono divisi da virgole. In
esso gli elementi non sono associati a una posizione, dunque cambiando la posizione degli
elementi si ottiene sempre lo stesso insieme.
- Tuple
- Dict

2.5 OPERAZIONI <op>


Ci sono diversi tipi di operazioni, ad esempio:
1. OPERAZIONI CHE RESTITUISCONO VALORI NUMERICI O STRINGHE:
Somma: indico con + tra due addendi ad es.
Prodotto: indico con * tra due fattori ad es.
Divisione: indico con / tra dividendo e divisore ad es.
Potenza: indico con ** tra base e esponente
Sottrazione: si può fare solo con valori numerici, es. len([<list>])-8. Con gli altri valori e con i
contenitori non si può fare poiché non so cosa succede: se ad esempio sottraggo a una
stringa una lettera che non c’è in quella stringa, o se sottrago a una lista un elemento che
non ha, la sottrazione non ha davvero senso.
2. OPERAZIONI CHE RESTITUISCONO True O False:
Uguaglianza: si indica con due uguali ==, ad es.
Minoranza, Maggioranza: si indicano con <,>
%

3 ASSEGNAZIONI
Un’assegnazione è un qualcosa che assegna a una variabile <var> una espressione <exp>. Si indica
con <var>=<exp>.
4 DEFINIZIONE DI FUNZIONE E IMPORT
4.1 DEFINIZIONE DI FUNZIONE <function>
def nomefunzioneascelta (<var>, <var>, …):
<stmt> #qui scrivi tutto quello che vuoi calcolare

return <stmt>

Diamo un nome a scelta alla funzione, tra parentesi tonde mettiamo su quali variabili agisce: poi
per applicare la funzione assegneremo alle variabili numeri o stringhe o liste ecc. Poi scriviamo un
po’ di statements, ossia funzioni, operazioni o compound statements su come vogliamo cambi un
qualcosa, solitamente le <var> nelle parentesi tonde. Poi scriviamo return e uno statement cosi la
funzione ci darà come output un determinato valore (liste, stringhe, numeri ecc o true/false) da
quello statement.

4.2 IMPORT FROM


Ci sono funzioni già definite in Python: alcune basta che le scriviamo e le conosce, altre dobbiamo
importarle da librerie <module>
from <module> import <function>

5 COMPOUND STATEMENTS
5.1 IF CYCLE
if <expr>:
<stmt>
else:
<stmt>
Questo permette di dire che per una variabile faccio una cosa, altrimenti (cioè per le altre variabili)
faccio altro. La <expr> deve avere come output un True o False. La parte con else è opzionale.
If si usa anche nelle list comprehension per aggiungere una condizione:
<stmt> for e in <lista> if <stmt>
Cosi per ogni elemento e di una lista faccio una cosa solo se e soddisfa una condizione con if.
5.2 FOR CYCLE
<stmt>
for <var> in <iterable>:
<stmt>

<stmt>
Quello che fa è applicare gli statements descritti dopo il : ogni volta che incontra un nuovo
elemento <var> in un <iterable>, cioè una lista, un insieme, un range ecc.
Per creare una lista col for cycle basta scrivere:
<iterable> = <range> o >list> ecc.
<nomelista> = []
For <var> in >iterable>:
<stmt>

5.4 LIST COMPREHENSION


Le list comprehensions sono un modo veloce di scrivere dei for cycles che generano liste. Il for
cycle però permette di scrivere più statements, non solo uno, quindi è una versione più generale
sempre utilizzabile, mentre le list comprehensions permettono solo un <stmt>:
<var>=[<expr> for <var> in <iterable>]
Posso aggiungere una condizione con if <stmt> che la <var> deve soddisfare per rientrare nella
lista.

5.3 WHILE CYCLE

6 INPUT
Si scrive input(“”) affinché una volta avviato lo <stmt> mi chieda che cosa inserire al posto
dell’input. NOTA: qualsiasi cosa io scriva all’interno della barra dell’input, verrà presa come una
stringa; dunque, se ad es. ho messo un numero, devo fare int(input) se voglio trasformare la
stringa del numero in un valore numerico. Tra le virgolette scrivi una breve istruzione che
comparirà a fianco alla barra dove inserire l’input quando avvii lo <stmt>, ad es. “insert here”. Se
non vuoi scrivere nulla lasci “”.