Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Fondamenti di Informatica (27006253) - Modulo Python, Appunti di Fondamenti di informatica

Il PDF contiene la sintassi fondamentale del linguaggio Python ampliata con diverse osservazioni personali e diversi approfondimenti personali. Alcune informazioni sono state integrate dopo lo sviluppo delle lezioni di SoloLearn (esterne all'università) e consentono di capir bene tutti i concetti in poco tempo affinché ci si possa muover bene durante le esercitazioni d'esame.

Tipologia: Appunti

2018/2019

In vendita dal 31/10/2021

giuseppe-a-cotroneo
giuseppe-a-cotroneo 🇮🇹

5

(3)

25 documenti

1 / 11

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
# Syntax.py - Sintassi di Python (Created by Giuseppe A. Cotroneo)
# COMMENTI #
# Commento su riga singola
"""
Commento su riga multipla
quindi anche andando a capo resto
nel commento e chiudo con
"""
# FINE COMMENTI #
# Stampa
print('Hello world!') # Print (in file.py) = Echo (in file.php)
# Fine Stampa
# Operatori Semplici
2 + 2 # Output: 4
2 - 2 # Output: 0
6 * 2 # Output: 12
2 ** 3 # Output: 8 (Potenza)
4 / 2 # Output: 2.0 (Float)
4 // 2 # Output: 2 (Int)
3 % 2 # Output: 1 (Modulo o Resto)
# Fine operatori semplici
# In-Place Operators ("Operatori sul posto")
x = 2 # Operatore Assegnamento (utile per dichiarare il value (valore) di una var)
x += 1 # Operatore Incremento
x -= 1 # Operatore Decremento
x *= 2 # Operatore Moltiplicazione (Come dire: x * 2)
x **= 2 # Operatore Potenza (Come dire: x ** 2)
x /= 2 # Operatore Divisione con risultato float (Come dire: x / 2)
x //= 2 # Operatore Divisione con risultato int (Come dire: x // 2)
x %= 2 # Operatore Modulo (Come dire: x % 2)
# Fine In-Place Operators
# Stringhe
'Ciao Pino' # Uno se dentro abbiamo frasi prive di apostrofo
"Com'è andata oggi?" # Doppie se all'interno abbiamo apostrofo
#or
'Com\'è andata oggi?'
'Salve,\n come va?' # \n viene usato per andare a capo
# Operatori con le Stringhe
"Spam" + 'eggs' # Pirnt: 'Spameggs'
print("First string" + ", " + "second string") # Print: First string, second string
print(3 * '7') # Output: 777
# Fine operatori con le stringhe
# !ATTENZIONE: Le scritte sono immutabili.. per poterle modificare in Python usiamo lo Slicing
x = 'Ciaone'
y = slice(1,3) #uso slice con gli indici di inizio e fine
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Fondamenti di Informatica (27006253) - Modulo Python e più Appunti in PDF di Fondamenti di informatica solo su Docsity!

Syntax.py - Sintassi di Python (Created by Giuseppe A. Cotroneo)

COMMENTI

Commento su riga singola

""" Commento su riga multipla quindi anche andando a capo resto nel commento e chiudo con """

FINE COMMENTI

Stampa

print('Hello world!') # Print (in file.py) = Echo (in file.php)

Fine Stampa

Operatori Semplici

2 + 2 # Output: 4 2 - 2 # Output: 0 6 * 2 # Output: 12 2 ** 3 # Output: 8 (Potenza) 4 / 2 # Output: 2.0 (Float) 4 // 2 # Output: 2 (Int) 3 % 2 # Output: 1 (Modulo o Resto)

Fine operatori semplici

In-Place Operators ("Operatori sul posto")

x = 2 # Operatore Assegnamento (utile per dichiarare il value (valore) di una var) x += 1 # Operatore Incremento x -= 1 # Operatore Decremento x *= 2 # Operatore Moltiplicazione (Come dire: x * 2) x **= 2 # Operatore Potenza (Come dire: x ** 2) x /= 2 # Operatore Divisione con risultato float (Come dire: x / 2) x //= 2 # Operatore Divisione con risultato int (Come dire: x // 2) x %= 2 # Operatore Modulo (Come dire: x % 2)

Fine In-Place Operators

Stringhe

'Ciao Pino' # Uno se dentro abbiamo frasi prive di apostrofo "Com'è andata oggi?" # Doppie se all'interno abbiamo apostrofo #or 'Com'è andata oggi?' 'Salve,\n come va?' # \n viene usato per andare a capo

Operatori con le Stringhe

"Spam" + 'eggs' # Pirnt: 'Spameggs' print("First string" + ", " + "second string") # Print: First string, second string print(3 * '7') # Output: 777

Fine operatori con le stringhe

!ATTENZIONE: Le scritte sono immutabili.. per poterle modificare in Python usiamo lo Slicing

x = 'Ciaone' y = slice(1,3) #uso slice con gli indici di inizio e fine

output --> iao

oppure tagliamo:

x = 'Ciaone' print(x[1:3])

Fine stringhe

Operatori Booleani e Paragone (Comparazione) [True and False]

2 == 2 # Output: True 3 == 2 # Output: False 'Hello' = 'Hello' # Output: True 'Hello' = 'Hello1' # Output: False 6 == 2+4 # Output: True 6 == 2+5 # Output: False 1 != 1 # Output: False 2 != 3+8 # Output: True 12 > 5 # Output: True 12 < 5 # Output: False 7 <= 8 # Output: True 7 >= 8 # Output: False 8 == 8.0 # Output: True

Fine valori booleani

Altri Operatori Particolari

is # è is not # non è in # in not in # Non in | # = or & # = and

Altri Operatori particolari

(Operatori Logici) Logica Booleana e uso dell' and, or, not (True, False con operatori logici: and, or,

not)

and (Si verifica questo e quest'altro)

1 == 1 and 2 == 2 # Output: True (Poichè si verificano entrambe) 1 == 1 and 2 != 2 # Output: False (Poichè solo la prima è valida)

or ( Si verifica questo o quest'altro)

10 == 10 or 2 != 2 # True (Poichè si verifica almeno una delle due) 10 != 10 or 2 == 2 # True (Poichè si verifica almeno una delle due) 10 == 10 or 2 == 2 # True (Poichè si verifica almeno una delle due -> In questo caso entrambe) 10 == 2 or 2 == 3 # False (Poichè NON si verifica nessuna delle due)

not (Il risultato è opposto poichè lo è l'argomento)

not 2 == 2 # False not 1 > 7 # True not True == False # True not True == True # False not False == True # True not False == False # False

Precedenza degli operatori

False == False or True # True False == (False or True) # False (False == False) or True # True

if x == 5: # Se si verifica la condizione... print("Yes") # ...stampa questo. else: # Altrimenti... print("No") # Stampa questo.

Altro esempio utile

num = 7 if num == 5: print("Number is 5") else: if num == 11: print("Number is 11") else: if num == 7: print("Number is 7") else: print("Number isn't 5, 11 or 7") # Output: Number is 7

Fine altro esempio utile

Fine else

Elif (if + else) (Altrimenti se... / Se invece...)

num = 7 if num == 5: # Se... print("Number is 5") elif num == 11: # Se invece... print("Number is 11") elif num == 7: # Se invece... print("Number is 7") else: # Altrimenti... print("Number isn't 5, 11 or 7")

Fine Elif

While Loop (Finchè... / Fin quando... / Fino a quando...)

i = 1 while i <=5: # Fin quando i è minore o uguale a 5 stampa la i incrementandola di 1 ogni volta che lo fai print(i) i = i + 1 print("Finished!") # Al termine del while stampa: Finished!

Fine While Loop

Break e Continue (Arresta il processo / Ferma / Stop) e (Continua)

Break

i = 0 while 1==1: print(i) i = i + 1 if i >= 5: # Se si verifica questo (dunque quando i arriva da 0 a 5)... print("Breaking") # Stampa: 'Breaking' e... break # FERMA IL LOOP! print("Finished") # Al termine stampa: Finished

Fine Break

Continue

i = 0

while True: i = i + 1 if i == 2: print("Skipping 2") continue # Arrivato qui ferma la precedente iterazione e prosegui con la prossima istruzione! if i == 5: print("Breaking") break print(i) print("Finished")

Fine Continue

Fine Break e Continue

For Loop (Ciclo for)

words = ["hello", "world", "spam", "eggs"] for word in words: # scelgo word(singolare) per indicar ogni singolo elemento della lista words(plurale) print(word + "!") # Stampera: # Hello! # world!# spam! # eggs! ( In colonna andando a capo ad ogni asterisco) for i in range(5): # per i volte nel range da 0 a 5(-1) QUINDI: per 5 volte poichè si parte da 0 print("hello!") # Stamperà in colonna 5 'hello!'

Fine del for loop

Liste

Lista Vuota

empty_list = [] # [] senza elementi all'interno

Fine Lista vuota

words = ["Hello", "world", "!"] #Lista contenente 3 elementi, ciascuno diviso dalla virgola (comma = , = virgola) print(words[0]) print(words[1]) print(words[2]) # Tra [parentesi quadre] indichiamo l'indice corrispondente a gli elementi per richiamarli o stamparli

Gli indici partono da 0 proseguono per ogni elemento della lista.

L'indice ultimo della lista può essere indicato con [-1]

list = [1, 1, 2, 3, 5, 8, 13] print(list[list[4]]) # Stampa l'indice dato dall'indice dunque: prima cerco indice 4 e dopo il suo valore sarà il mio nuovo indice da cercare. DUNQUE Staperò: 8

Solitamente si usa un Type ma possono essercene anche di più

number = 3 things = ["string", 0, [1, number, 2], 4.56] print(things[1]) # Stampa: 0 print(things[2]) # Stampa [1, 3, 2] print(things[2][1]) # L'indice della lista che è indice di una lista.. dunque stampa: 3

Fine esempio

Indice di una stringa

str = "Hello world!" print(str[6]) # Stampa: w print(str[8]) # Stampa: r

Fine indice di una stringa

Operatori in lista

Esercizio dimsotrativo della differenza tra .append & .insert

nums = [9, 8, 7, 6, 5] nums.append(4) nums.insert(2, 11) print(len(nums)) # Stampa: 7 poichè il nuovo numero di elementi è tale print(nums) # Stampa: [9, 8, 11, 7, 6, 5, 4] poichè la lista aggiornata è

Fine Esercizio dimostrativo

Fine .insert

.index (A quale indice corrisponde l'elemento?)

letters = ['p', 'q', 'r', 's', 'p', 'u'] print(letters.index('r')) # Stampa 2 poichè r è di indice 2 in lista letters print(letters.index('p')) # Stampa 0 poichè p è di indice 0 in lista letters print(letters.index('z')) # Stampa Error poichè z NON è in lista letters e dunque non esiste il suo indice l = [1, 2, 3, 4, 5, 6, 2] print(l.index(2)) # Stampa l'indice del primo 2 in lista. Dunque stampa: 1 print(l.index(2, 2)) # Stampa l'indice del secondo 2 in lista. Dunque stampa: 6

Fine .index

Range (Range Function / Funzione Range)

numbers = list(range(10)) # La lista è formata da tutti i numeri compresi nel range (raggio) da 0 a 9 poichè il range parte da 0 e termina a -1 (come per gli indici) print(numbers) # Stampa [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] h = list(range(4, 12)) # h è formata dai numeri compresi da 4 a 12(-1) print(h) # Stamperà una lista h = [4, 5, 6, 7, 8, 9, 10, 11] s = list(range(2, 10, 2)) # s è formata dai numeri compresi da 2 a 10(-1) a passi da 2 print(s) # Stamperà una lista s = [2, 4, 6, 8] t = list(range(2, 10, 3)) # t è formata dai numeri compresi da 2 a 10(-1) a passi da 3 print(s) # Stamperà una lista t = [3, 6, 9] print(range(20) == range(0, 20)) # Restituisce True poichè dire range(20) o dire range(0, 20) vuol dire in entrambi i casi che il range andrà da 0 a 20

Fine Range

Fine List Functions

Fine Liste

matrix - Matrici - Liste di Liste - Array di Array

matrix = [[1,2,3], [4,5,6], [7,8,9]] #oppure date a, b, c a = [1,2,3] b = [4,5,6] c = [7,8,9] m = [a,b,c]

Per scorrere una matrici possiamo abbozzare l'uso del while ma la metodologia principale è l'uso

del doppio for

Per scorrere una lista usiamo un for, dunque per scorrere liste di liste ne usiamo uno dentro un

altro

m = [...matrice...] for i in range(len(x)): for j in range(len(x[i])): ...

fine matrix

def ( definiamo la funzione )

def my_func(): # Il def apre la definizione di una funzione nome_funzione(): print("spam") print("spam") # Questo è il contenuto della nostra funzione print("spam") my_func() # Questo è il richiamo alla funzione definita precedentemente

L'Output sarà: spam (x3 in colonna)

#! La funzione va NECESSARIAMENTE prima definita e poi chiamata! def print_with_exclamation(word): print(word + "!") print_with_exclamation("spam") print_with_exclamation("eggs") print_with_exclamation("python") # L' Output sarà composto da una colonna con le parole seguite da! def print_sum_twice(x, y): print(x + y) print(x + y * 2) print_sum_twice(5, 8) # Output: 13 e 21 poichè 13 e 5+(8*2) def function(variable): variable += 1 print(variable) function(7) # Output: 8 print(variable) # Output: Error poichè la variabile è definita solo dentro la funzione def even(x): if x%2 == 0: # x%2 != 0 (dispari) print("Yes") else: print("No") even(4) # Output: Yes even(7) # Output: No

Fine def(funzione)

print("Errore Generico non Riconosciuto: Contattare il creatore!") except ZeroDivisionError: print("Errore Riconosciuto: la divisione per 0 non è accettabile.") except (ValueError, TypeError): print("Errore riconosciuto: Value or Type Error")

Per provare se un codice funzioni o meno:

try: # Prova il seguente blocco di codice print("Hello") print(1 / 0) except ZeroDivisionError: # Non stampare la divisione per zero ma Specifica l'errore print("Divisione per 0 presente nel blocco") finally: # Se si verifica stampami questa stringa di spiegazione print("Questo codice non funziona correttamente.\nPer info sul tipo di erroe contatta il creatore!")

Fine Errori Comuni

Raise Statemant (Specifica il tipo di errore all'utente)

name = "123" raise NameError("Invalid name!") # Print: NameError: Invalid name!

Assert Statemant (Affermo, Impongo una condizione)

def my_func(x): assert x > 0, "Error!" print(x)

Opening and Manage Files (Apri e Gestisci i tuoi files)

myfile = open("filename.txt") # Aprirà il file filename.txt

write mode

open("filename.txt", "w")

read mode

open("filename.txt", "r") open("filename.txt")

binary write mode (Su Immagini ed Audio)

open("filename.txt", "wb")

Close Metod (Chiudere un fil dopo le modifiche ad esso apportate)

file = open("filename.txt", "w") #apri

do stuff to the file

file.close() #chiudi

Apri file, leggi contenuto, stampa e chiudi

file = open("nome_file.txt") contenuto = file.read() print(contenuto) file.close()

Leggi le n righe del file

len(open("test.txt").readlines())

Scrivo dentro al file

file = open("newfile.txt", "w") file.write("This has been written to a file") file.close()

To Delete (Cancella tutto il contentuto di un file aprendolo in write mode e chiudendolo subito)

file = open("newfile.txt", "w") file.close() # Cancella il contenuto #esempio finale scrivi = open('testo.txt', 'w') a = 'come \nstai' scrivi.write(a) scrivi.close() leggi = open('testo.txt', 'r') print(leggi.read()) leggi.close()

Random - Restituire un numero Random di ...

import random l = [1,2,3] random.choice(l) #or result = random.choice(range(3)) print(result) #or numero_casuale = random.randint(0,100) # sceglie ed assegna un valore casuale da 0 a 100

Count - Quante volte un elemento è presente in una lista

lista = [1,2,3,1] lista.count(3) #restituisce 1 poichè il 3 è presente una sola volta lista.count(100) # restituisce 0 poichè 100 non è mai presente nella lista lista.count(1) # restituisce 2 poichè il numero 1 è presente due volte in lista

Altre Built-In Functions (Sum, Max, Min...)

L = [12, 6, 25, 78] sum(L) # Stampa la somma di tutti i valori interni alla lista: 12+6+25+78 = 121 max(L) # Restituisce il valore più alto interno alla lista: 78 min(L) # Restituisce il valore più basso interno alla lista: 6 len(L) # Restituisce la lunghezza della lista (generata dal numero di valori al suo interno): 4 range(L) # Verifica ed utilizza il range della lista (generata dagli indici che la compongono): 0 to 3 L.append(1) # Aggiunge il valore 1 all'interno della lista come ultimo valore: [12, 6, 25, 78, 1] L.remove(25) # Rimuove il numero 25 in lista, nel caso in cui ci siano più di un 25 rimuove il primo da sinistra verso destra L.count(6) # Restituisce il numero di volte che è presente il 6 nella lista: 1 L.reverse() # Restituisce la lista con i valori invertiti: [1,2,3] -> [3,2,1] dunque in questo caso: [78, 25, 6, 12] T = sorted(L) # Restituisce una NUOVA LISTA ordinata MANTENENDO quella precedente: T = [6, 12, 25, 78] ma L = [12, 6, 25, 78]

Fine Sintassi