Il 0% ha trovato utile questo documento (0 voti)
1 visualizzazioni40 pagine

Basi Di Python-1

Il documento fornisce un'introduzione al linguaggio di programmazione Python, coprendo commenti, indentazione, tipi primitivi, strutture di controllo e cicli. Viene spiegata la tipizzazione dinamica, l'uso delle stringhe e dei dizionari, oltre a esempi pratici di operazioni su liste e file di testo. Infine, vengono proposti esercizi pratici per applicare le conoscenze acquisite.

Caricato da

mozzagiochi
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
1 visualizzazioni40 pagine

Basi Di Python-1

Il documento fornisce un'introduzione al linguaggio di programmazione Python, coprendo commenti, indentazione, tipi primitivi, strutture di controllo e cicli. Viene spiegata la tipizzazione dinamica, l'uso delle stringhe e dei dizionari, oltre a esempi pratici di operazioni su liste e file di testo. Infine, vengono proposti esercizi pratici per applicare le conoscenze acquisite.

Caricato da

mozzagiochi
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Introduzione al linguaggio

di programmazione Python
Commenti
Utilizzare `#` per commenti su singola linea e ''' testo ''' o """ testo """ per
commenti multi-linea.

Indentazione
L’indentazione in Python è obbligatoria, non è solo una questione di
leggibilità del codice. In sua assenza viene segnalato un errore.
Tipi primitivi
Tipo Python Esempi

Numero intero int 5, -21

Numero reale float (equivale al double in C++ o Java, 3.25, -4.145


essendo già in precisione doppia)

Valore booleano bool True, False

Sequenza di str "ciao", 'saluti'


caratteri, stringa
Tipi primitivi
Tipo Python Esempi

Numero intero int 5, -21

Liste mutabili (permessa l’aggiunta di list [1, 2, 3], ["a", "b", "c"]
elementi, rimozione o modifica)

Tuple immutabili (non permessa la modifica, tuple (1, 2, 3), ("x", "y")
né in valore né in lunghezza)

Intervalli: range() è una funzione che genera range range(5)


una sequenza di numeri
Tipi primitivi
Tipo Python Esempi

Dizionari: collezioni di chiave - valore dict {"a" : 1, "b" : 2}

Insiemi immutabili: sono utili se non vuoi set {1, 2, 3}


elementi ripetuti e quando l'ordine non
è importante.

Assenza di valore o valore nullo None None


Tipi primitivi
In Python i tipi primitivi sono implementati come classi (Programmazione
Objecy-Oriented, OOP). Ogni valore di questi tipi è, quindi, un'istanza della
corrispondente classe, ne è un oggetto. Una classe ha attributi (variabili) e
metodi (funzioni). Quindi quando si parlerà di “metodo” pensate ad una
funzione che chi ha creato la classe vi ha messo a disposizione e voi
dovrete solo richiamarla per usarla. Per usare i metodi si inserisce il nome
dell’elemento seguito da un punto (.) e dal metodo:
[Link]()
Tipizzazione dinamica

A differenza di linguaggi di programmazione come C++ e Java, Python


non richiede la dichiarazione esplicita del tipo delle variabili:
x = 10 # int
y = "ciao" # str
pi_greco = 3.14 # float
trovato = True # bool
Output
#print() -> metodo che manda l’output a video (termina con andata a capo)
print("Si tratta di un messaggio")
x=10
print(x)
y=1.78
print("valore:", y) #la virgola separa gli elementi da mettere in output
#gli elementi saranno stampati separati da uno spazio
#Per non andare a capo uso il parametro end:
print(y, end=" ") # specifica che a fine output ci sarà uno spazio
Blocco condizionale if
if

if condizione:
# blocco di codice da eseguire se la condizione è vera
x = 10
if x > 5:
print("x è maggiore di 5")

Output: x è maggiore di 5
If - else
if condizione:
# blocco se la condizione è vera
else:
# blocco se la condizione è falsa
x=3
if x > 5:
print("x è maggiore di 5")
else:
print("x non è maggiore di 5")
if - elif - else
if condizione1:
# blocco se condizione1 è vera
elif condizione2:
# blocco se condizione2 è vera
else:
# blocco se nessuna delle condizioni precedenti è vera
x = 10
if x < 5:
print("x è minore di 5")
elif x == 10:
print("x è uguale a 10")
else:
print("x è maggiore di 5 ma diverso da 10")
Operatori logici and or not
x = 10
if x > 5 and x < 15:
print("x è compreso tra 5 e 15")
x=3
if x < 5 or x > 15:
print("x è minore di 5 o maggiore di 15")
x = False
if not x:
print("x è vero")
Ciclo for

for variabile in sequenza:


# codice da iterare
Iterare su un intervallo di numeri
for i in range(3): #da 0 a parametro di range meno 1
print(i)
Output:
0
1
2
Ciclo for
Iterare su una stringa
parola = "Ciao"
for lettera in parola:
print(lettera)
Output:
C
i
a
o
Ciclo while
while condizione:
# codice da iterare
i=0
while i < 3:
print(i)
i += 1 # incrementa i
Output:
0
1
2
Esempio con le LISTE
import time
#Definisco una lista di oggetti diversi
prova = ['uno', 1, 1, 1.0]
#voglio stampare qualunque valore (x) che si trovi nella lista
for x in prova:
print(x)
[Link](1)

Nella slide successiva vedremo lo stesso esercizio sfruttando range e len:


● voglio iterare sulla lista per ogni indice x nell’intervallo (range) che va
da 0 a len(prova) - 1.
● Per ogni iterazione, il valore di x sarà rispettivamente 0, 1, 2, e così via
fino a coprire tutti gli indici degli elementi della lista da stampare
import time
#Definisco una lista di oggetti diversi
prova = ['uno', 1, 1, 1.0]
#per qualunque cosa (x) si trovi in prova lo stampa
for x in range(len(prova)):
print(prova[x]) #stampa gli elementi x-esimi della lista
[Link](1)

Esempio con una struttura più complessa

prova = [['uno', 'due', 'tre'],[1, 2, 3],[1.0, 2.0, 3.0]]


#leggo e stampo i valori riga per riga
for a, b, c in prova:
print('primo: ', a, 'secondo: ', b, 'terzo: ', c)
Le stringhe - Index
Accedere a ciascun carattere della stringa in base
all’indice
s = 'Esempio'

s[0] # elemento in posizione 0 (il primo) 'E'

s[5] # elemento in posizione 5 (il sesto) 'i'

s[-1] # elemento in posizione -1 (l'ultimo) 'o'

s[-4] # elemento in posizione -4 (il quartultimo) ‘m’


Le stringhe - Slicing
Ottenere una sottostringa della stringa originale a partire dall'indice inizio
(incluso) fino all'indice fine (escluso). Se manca inizio gli elementi verranno
presi dall'inizio, se manca fine gli elementi verranno presi fino alla fine.

str = ‘Esempio’

str[0:2] # sottostringa con elementi da 0 (incluso) a 2 (escluso) 'Es'

str[:2] # dall'inizio all'elemento con indice 2 (escluso) 'Es'

str[3:5] # dall'elemento con indice 3 (incluso) a 5 (escluso) 'mp'

str[4:] # dall'elemento con indice 4 (incluso) alla fine 'pio'

str[-2:] # dall'elemento con indice -2 (incluso) alla fine 'io'


Stringhe - contenimento - in e n
Gli operatori in e not in possono essere usati per verificare se un elemento
fa parte di una sequenza o no. Nel caso delle stringhe, è anche possibile
verificare se una sottostringa è contenuta in una stringa:
str = ‘Esempio’
'P' in str # ritorna False
's' in str # ritorna T
'x' not in str # ritorna True
'Es' in str # ritorna True
Stringhe - concatenamento o ripetizione
È possibile usare l'operatore + per concatenare sequenze, e * per ripetere
sequenze:

‘Ciao ’ + 'mondo'

'Ciao mondo'

'Ciao' * 2

'CiaoCiao'

'Ba' + 'na' * 2

'Banana'

funzione len() applicata ad una stringa -> len('Esempio') # 7


Stringhe - alcuni metodi
● upper(): converte ciascun carattere in lettera maiuscola.
testo = "ciao a voi"
testoMaiusc = [Link]()
print(testoMaiusc) #'CIAO A VOI'
● lower(): converte ciascun carattere in lettera minuscola
testo = "Ciao a Voi"
testoMinusc = [Link]()
print(testoMinusc) # 'ciao a voi'
● endswith(str): restituisce True se la stringa termina con str, False altrimenti
Stringhe - alcuni metodi
● split(): divide una stringa in una lista di sottostringhe
○ usa un delimitatore specifico (detto separatore): se non specificato,
il separatore è uno spazio bianco, un tab, …
testo = "ciao a voi"
testoDiviso = [Link]()
print(testoDiviso) #'ciao', 'a', 'voi'
testo = "ciao, a, voi"
testoDiviso = [Link](",")
print(testoDiviso) # 'ciao', 'a', 'voi'
Stringhe - alcuni metodi
str = "ciao siamo qui"
count() conta il numero delle occorrenze di una sottostringa

[Link]("ia") # 2
find() cerca un carattere o una sottostringa (sub).
○ se presente, restituisce la posizione della prima occorrenza a partire
da sinistra
○ se non presente restituisce -1.
str.find("ia") # 1
Stringhe - alcuni metodi

str = "ciao siamo qui"


replace() sostituisce una sottostringa con un'altra

str1=[Link]("ciao", "Noi")

print(str) #ciao siamo qui

print(str1) # Noi siamo qui


I dizionari
#Definizione di un dizionario - coppia chiave/valore
diz = {'Ciao': 1, 'Come': 2, 'stai': 3}

#stampo l'intero dizionario


print(diz)

#stampo le chiavi ed i valori ad esse associati


print([Link]())
print([Link]())

#estraggo un valore, data la chiave


print(diz['Ciao'])
I dizionari
#inserisco un nuova coppia chiave-valore nel dizionario
diz['?'] = 4

#inserisco i valori del dizionario in una lista


lista_valori = []
lista_valori.append([Link]())
print(lista_valori
Esercizi proposti

1) Dopo aver definito una lista di valori interi, trovare il massimo dei suoi
numeri.
2) Crea un traduttore per tradurre la frase “il cane è nero” sfruttando un
dizionario che abbia come chiavi le singole parole italiane e come
valori le rispettive traduzioni
Soluzione esercizi proposti
1) Dopo aver definito una lista di valori interi, trovare il massimo dei suoi
numeri.

#Definisco una lista di elementi


prova = [12, 3, 24, 35]
#definisco una variabile che conterrà il massimo
max = 0
for x in range(len(prova)):
if max < prova[x]:
max = prova[x]
print("massimo valore: ", max)
2) diz = {'il': 'the', 'gatto': 'cat', 'cane': 'dog', 'è': 'is', 'bianco': 'white', 'nero': 'black'}
testo = 'il cane è nero' #testo da tradurre
#definisco una lista vuota dove mettere le parole che traducono il testo
testoTradotto = []
#uso un for per inserire tutte le parole nella stringa appena creata
for parola in [Link]():
[Link](diz[parola])
#concateno tutte le parole lasciando uno spazio tra esse
frase = ''
for parola in testoTradotto:
frase = frase + ' ' +parola
'''la stessa cosa l'avrei potuta fare con il metodo join: frase = '
'.join(testoTradotto)
frase = ' '.join(testoTradotto) '''
File di testo
Esplorare un file di testo

• I contenuti che ci interessano sono, tipicamente, all'interno di file


• Un file in Python si apre con la funzione open() invocata all'interno del codice.
Ha come parametri il path al file da aprire e la modalità di accesso al file
• la funzione close() chiude il file
• la funzione input(str) fornisce input al programma durante la sua esecuzione,
str è il messaggio che apparirà all’utente con la richiesta di inserire un input
• la funzione read() legge il contenuto del file aperto in lettura e lo pone in una
stringa
• la funzione write() scrive in un file aperto in scrittura
File - funzione write()
import nltk
stringhe = ["ciao,come stai?", "Io sto bene"]
with open("fi[Link]", "w") as file:
for stringa in stringhe:
print(stringa)
fi[Link](stringa+"\n")
File - funzione open()
Ha due parametri: filename (path del file nel filesystem) e mode può valere:
"r" – read, valore di default, apre il file in sola lettura; "w" – write, apre il file (lo
crea, se non esiste) e lo rende "modificabile" via codice e se esiste già, lo
sovrascrive, "a" – append, apre il file (lo crea, se non esiste) e lo rende
"modificabile" via codice. Se il file esiste ciò che scriviamo sarà aggiunto in
coda al contenuto del file. Senza mode si legge dal file.

f_open = open("[Link]")
for linea in f_open:
for parola in [Link](" "):
if [Link]("ma"): #controllo se la stringa termina con "ma"
print(parola)
File - funzione close()
Una volta aperto il file, terminato il suo uso, deve essere chiuso per liberare la
memoria necessaria per lasciarlo aperto.

Si usa, a tale scopo, il metodo close():

f_open.close() #f_open contiene il file aperto

Si può evitare l’uso del metodo close usando:

with expression as target:

che delimita un blocco del programma in cui l'elemento target assume il


valore di expression. Fuori dal blocco target = expression non è più valido
Senza uso della funzione close()
Applicando al nostro esempio, si ha:
with open("[Link]", "r") as infile:
for line in infile:
for parola in [Link](" "):
if [Link]("ma"):
print(parola)
Fuori dal blocco infile = open("[Link]", "r") il file non è più aperto
with open("[Link]", "r") as infile:
contenuto = infi[Link]()
print(contenuto)
for parola in [Link](" "):
print(parola)
input()
Possiamo leggere i dati forniti in input dall'utente attraverso lo standard
input (str)
• Può tornare utile in molti casi: leggere il contenuto di file, ma anche chiedere
all'utente di fornire dati su cui effettuare operazioni…

La funzione input() è usata per leggere lo standard input del programma


durante l'esecuzione e prende come parametro una stringa che rappresenta il
messaggio da mostrare all'utente prima che questi inserisca l'input

• Vediamo un semplice esempio con un ciclo while nfinito che legge da


standard input e stampa a video il risultato finché non
viene immessa la stringa "Exit"
input()
while True:
data = input("Scrivi qualcosa: ")
if data == "Exit":
break
print("Hai scritto:",data)
print("Fine!")
Esercizi proposti
1) Scrivere un programma che, dati due numeri interi, stampi il loro prodotto
se e solo se questo è inferiore o uguale a 1000, altrimenti stampi la
somma
2) Scrivere un programma che
1. chieda all'utente di inserire il suo nome e la sua età
2. calcoli l'anno in cui compirà 100 anni
3. restituisca a video il risultato

Attenzione: utilizzando la funzione input() il tipo di dato ottenuto sarà sempre


una stringa. Potete convertirlo in un numero intero attraverso la funzione int()
Soluzione esercizi
1) dato1 = input("Scrivi il primo numero:")
num1 = int(dato1)
dato2 = input("Scrivi il secondo numero:")
num2 = int(dato2)
prod = num1*num2
somma = num1 + num2
if prod>=1000:
print("prodotto:",prod)
else:
print("somma:",somma)
Soluzione esercizi
2) eta = input("Scrivi il tuo nome:")
dato2 = input("Scrivi il tuo anno di nascita:")
anno = int(dato2)
anno100 = anno + 100
print("anno in cui compirai 100 anni:",anno100)

Potrebbero piacerti anche