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


Python formulario perfetto, Appunti di Informatica Industriale

perfetto per esame in python per il tuo esame, ecco come uscire dall'incubo

Tipologia: Appunti

2020/2021
In offerta
30 Punti
Discount

Offerta a tempo limitato


Caricato il 28/04/2021

imma0002
imma0002 🇮🇹

4.3

(14)

4 documenti

1 / 33

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
I PRIMI PASSI
print e input.
Queste funzioni servono rispettivamente a mostrare e a chiedere
valori all’utente.
PRINT
Abbiamo già visto, nelle passate lezioni, la funzione print, che
serve a “stampare” in output (tipicamente sullo schermo) il valore
di una variabile o di una espressione.
ESEMPIO:
>>> a = 12
>>> b = 3
>>> print(a, b, a-b)
12 3 9
>>>
>>> c = 'Hello'
>>> print(c, 'World!')
Hello World!
Si può notare che la funzione print accetta in input un numero
variabile di argomenti (anche di tipi diversi), li converte in
stringhe, e li mostra in output separati da uno spazio e seguiti
da un carattere di ritorno a capo (\n).
ATTENZIONE
Quando si lavora dall’interprete interattivo non è necessario
utilizzare print per vedere il valore di una variabile o
espressione, ma è sufficiente digitarla, questa possibilità è
disponibile solo dall’interprete interattivo; quando si esegue un
programma, invece, è necessario utilizzare print esplicitamente.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
Discount

In offerta

Anteprima parziale del testo

Scarica Python formulario perfetto e più Appunti in PDF di Informatica Industriale solo su Docsity!

I PRIMI PASSI

print e input. Queste funzioni servono rispettivamente a mostrare e a chiedere valori all’utente. PRINT Abbiamo già visto, nelle passate lezioni, la funzione print, che serve a “stampare” in output (tipicamente sullo schermo) il valore di una variabile o di una espressione. ESEMPIO: >>> a = 12 >>> b = 3 >>> print(a, b, a-b) 12 3 9 >>> >>> c = 'Hello' >>> print(c, 'World!') Hello World! Si può notare che la funzione print accetta in input un numero variabile di argomenti (anche di tipi diversi), li converte in stringhe, e li mostra in output separati da uno spazio e seguiti da un carattere di ritorno a capo (\n). ATTENZIONE Quando si lavora dall’interprete interattivo non è necessario utilizzare print per vedere il valore di una variabile o espressione, ma è sufficiente digitarla, questa possibilità è disponibile solo dall’interprete interattivo; quando si esegue un programma, invece, è necessario utilizzare print esplicitamente.

INPUT

La funzione input viene usata per consentire all’utente di immettere dati da tastiera, che verranno poi utilizzati dal programma. input accetta un singolo argomento opzionale: una stringa che viene mostrata a video prima di leggere il valore digitato. Una volta che l’utente ha digitato un valore e premuto il tasto Invio, input restituisce il valore come stringa, come mostra il seguente esempio: ESEMPIO >>> nome = input('Inserisci il tuo nome: ') Inserisci il tuo nome: Ezio >>> nome 'Ezio' Nell'esempio sopra possiamo vedere che:

  • la stringa passata a input che chiede di inserire il nome viene mostrata a video;
  • input attende che l’utente digiti il nome (Ezio) e prema Invio;
  • input restituisce il nome inserito come stringa;
  • la stringa restituita da input viene assegnata alla variabile nome;
  • la variabile nome può poi essere utilizzata per accedere al nome inserito dall’utente.

Questo significa che, in Python, l’indentazione è significativa, e che indentare in modo incorretto può portare a comportamenti sbagliati del programma o a errori. Vediamo un semplice esempio. Di seguito usiamo il costrutto if. ESEMPIO print("eseguito sempre all'inizio") if condizione: print('eseguito in mezzo solo se la condizione è vera') print('eseguito in mezzo solo se la condizione è vera') print('eseguito in mezzo solo se la condizione è vera') print('eseguito sempre alla fine') Nell'esempio sopra possiamo vedere che:

  • il primo print, l’if, e l’ultimo print hanno lo stesso livello di indentazione, e vengono eseguiti sempre;
  • dopo l’if c’è un blocco di codice con un livello di indentazione maggiore, che include tre print;
  • se la condizione dell’if è vera, i tre print vengono eseguiti;
  • se la condizione dell’if è falsa, i tre print non vengono eseguiti È quindi molto importante fare attenzione all’indentazione, perché viene sempre valutata nel processo di parsing del programma. Python ha reso disponibile un documento chiamato PEP 8 , che raccoglie diverse convenzioni e linee guida, che suggerisce tra le altre cose di:
  • usare sempre 4 spazi per livello di indentazione;
  • evitare l’uso dei caratteri di tabulazione;
  • non mischiare mai l’uso di tabulazioni e spazi (Anche se la PEP 8 suggerisce di seguire queste convenzioni, è possibile (sebbene fortemente sconsigliato) usare tab o un numero diverso di spazi. Fintanto che i livelli di indentazione sono consistenti, il programma comunque funzionerà.) VARIABILI E COMMENTI

LE VARIABILI

Per definire variabili in Python, è sufficiente utilizzare l’operatore di assegnamento (=): ESEMPIO numero = 10 stringa = "Python" lista = [1, 2, 3] Come si vede, in Python non è necessario né definire le variabili prima di utilizzarle, né specificare il loro tipo. ESEMPIO x = 10 x = "Python" x = [1, 2, 3] In questo esempio la variabile/etichetta x viene “spostata” dall’intero 10 alla stringa "Python" , e infine alla lista [1, 2, 3].

In Python è possibile usare il carattere # per aggiungere commenti al codice. Ogni riga di commento deve essere preceduta da un #, ed è anche possibile aggiungere commenti in seguito a istruzioni: **ESEMPIO

Questo commento occupa diverse righe, e ogni riga

è preceduta da un # per indicare a Python di

ignorarle tutte

a = 3 # questo commento segue un'istruzione** Python ignorerà automaticamente tutto ciò che segue il carattere # fino al termine della riga. NUMERI E OPERATORI LOGICI Abbiamo anche visto che è possibile usare l’interprete interattivo come una calcolatrice, e come convertire diversi tipi di dato. È inoltre possibile definire numeri interi usando la notazione binaria, ottale, ed esadecimale: *ESEMPIO >>> 6 + 4 18 >>> 9 / 2 # la divisione tra due numeri interi restituisce un float

>>> 2j * 2j # moltiplicazione tra numeri complessi (-4+0j) >>> int(10.6) # conversione esplicita dal tipo float al tipo int 10 >>> float(20) # conversione esplicita dal tipo int al tipo float

>>> 0b11111111 # intero in notazione binaria (prefisso 0b) 255 >>> 0o377 # intero in notazione ottale (prefisso 0o) 255 >>> 0xFF # intero in notazione esadecimale (prefisso 0x) 255 Operatori Aritmetici** Le operazioni sui tipi numerici sono le più classiche:

Operatore Descrizione Esempi

  • addizione 10 + 12 → 22
  • sottrazione 5 - 1 → 4
  • moltiplicazione 10 * 12 → 120 / divisione 9 / 4 → 2. // divisione intera 9 // 4 → 2 % modulo (resto della divisione) 9 % 4 → 1 Operatori Di Confronto Python supporta anche operatori di confronto, che restituiscono True o False: Operatore Descrizione Esempi == uguale^ a 8 == 8 → True 3 == 5 → False != diverso da 3 != 5 → True 8 != 8 → False < minore di 3 < 5 → True 5 < 3 → False <= minore o uguale a 3 <= 5 → True 8 <= 8 → True > maggiore^ di 5 > 3 → True 3 > 5 → False >= maggiore o uguale a 5 >= 3 → True 8 >= 8 → True Operatori Booleani In Python esistono anche gli operatori booleani and, or, e not: Operatore Descrizione

x >> n esegue uno shift a destra di n posizioni dei bit di x x & y esegue un and tra i bit di x e di y x | y esegue un or tra i bit di x e di y x ^ y esegue un or esclusivo tra i bit di x e di y ~x inverte i bit di x STRINGHE Abbiamo già visto che per dichiarare una stringa è sufficiente assengare ad una nuova variabile un testo racchiuso tra virgolette: è possibile racchiudere il suo valore indifferentemente tra apici (carattere ') o doppi apici (carattere "). Questo permette di superare facilmente il problema dell’utilizzo dei suddetti caratteri nel valore stesso della stringa, ad esempio "l'acqua" o 'Egli disse: "Acqua"'. È anche possibile usare il carattere di escape \ prima di ' o ": 'Egli disse: "L'acqua"'. Le stringhe, così come le liste o le tuple, sono un tipo particolare di sequenze e perciò supportano tutte le operazioni comuni alle sequenze. Index e Slicing In Python, è possibile accedere agli elementi di una sequenza, usando la sintassi sequenza[indice]. Questo restituirà l’elemento in posizione indice (il primo elemento ha sempre indice 0 ). È inoltre possibile specificare indici negativi che partono dalla fine della sequenza (l’ultimo elemento ha indice - 1 , il penultimo - 2 , ecc.). Questa operazione è chiamata indexing. ESEMPIO >>> s = 'Python' >>> s[0] # elemento in posizione 0 (il primo) 'P' >>> s[5] # elemento in posizione 5 (il sesto)

'n' >>> s[-1] # elemento in posizione - 1 (l'ultimo) 'n' >>> s[-4] # elemento in posizione - 4(il quartultimo) 't' La sintassi sequenza[inizio:fine] ci permette di ottenere una nuova sequenza dello stesso tipo che include tutti gli elementi partendo dall’indice inizio (incluso) all’indice fine (escluso). Se inizio è omesso, gli elementi verranno presi dall’inizio, se fine è omesso, gli elementi verranno presi fino alla fine. Questa operazione è chiamata slicing (letteralmente “affettare”) ESEMPIO >>> s = 'Python' >>> s[0:2] # sottostringa con elementi da 0 (incluso) a 2 (escluso) 'Py' >>> s[:2] # dall'inizio all'elemento con indice 2 (escluso) 'Py' >>> s[3:5] # dall'elemento con indice 3 (incluso) a 5 (escluso) 'ho' >>> s[4:] # dall'elemento con indice 4 (incluso) alla fine 'on' >>> s[-2:] # dall'elemento con indice - 2 (incluso) alla fine 'on' Concatenamento, Ripetizione e Lunghezza È possibile usare l’operatore + per concatenare sequenze, e * per ripetere sequenze: ESEMPIO >>> 'Py' + 'thon' 'Python' >>> 'Py' * 2 'PyPy' >>> 'Ba' + 'na' * 2 'Banana'

I metodi sono simili alle funzioni ma sono legati al tipo dell’oggetto e hanno una sintassi diversa: oggetto.metodo(argomenti). Così come le funzioni, i metodi possono accettare 0 o più argomenti: ESEMPIO >>> s = 'Python' >>> s.upper() # il metodo upper ritorna una nuova stringa tutta uppercase 'PYTHON' >>> s.lower() # il metodo lower ritorna una nuova stringa tutta lowercase 'python' In questo esempio potete vedere due metodi forniti dal tipo str, che non sono disponibili per altri tipi. Help() e Dir() Due strumenti particolarmente utili per lavorare con funzioni e metodi sono le funzioni built-in help() e dir(). help(oggetto) restituisce una breve spiegazione riguardo all’oggetto passato come argomento. dir(oggetto) restituisce una lista di metodi e attributi dell’oggetto: **ESEMPIO >>> len # len è una funzione built-in

>>> help(len) # si può passare len a help() per vedere una breve spiegazione Help on built-in function len in module builtins: len(obj, /) Return the number of items in a container. >>> dir(str) # restituisce una lista di metodi e attributi di str [..., 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper',**

**'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] >>> str.upper # upper è un metodo di str

>>> help(str.upper) # si può passare a help() per vedere una breve spiegazione Help on method_descriptor: upper(...) S.upper() - > str Return a copy of S converted to uppercase.** Questi strumenti vi consentono di esplorare interattivamente funzioni e metodi e capirne il funzionamento: ESEMPIO >>> help(str.replace) # visualizza l'help per il metodo str.replace Help on method_descriptor: replace(...) S.replace(old, new[, count]) - > str Return a copy of S with all occurrences of substring old replaced by new. If the optional argument count is given, only the first count occurrences are replaced. >>> 'Python'.replace('thon', 'Py') # sostituisce 'thon' con 'Py' in 'Python' 'PyPy' >>> s = 'Python, Python, Python!' >>> s.replace('thon', 'Py', 2) # come sopra, ma massimo 2 sostituzioni 'PyPy, PyPy, Python!' Formattazione delle Stringhe La maggior parte dei metodi delle stringhe sono semplici da capire. C’è tuttavia un metodo che richiede una spiegazione più dettagliata: str.format(). Questo metodo permette di formattare stringhe,

LISTE

Python fornisce anche un tipo built-in chiamato lista, che viene solitamente usato per rappresentare una sequenza mutabile di oggetti, in genere omogenei. Definire le Liste Le liste vengono definite elencando tra parentesi quadre ([]) una serie di oggetti separati da virgole (,). È possibile creare una lista vuota usando le parentesi quadre senza nessun elemento all’interno. **ESEMPIO >>> nums = [0, 1, 2, 3] # nuova lista di 4 elementi >>> nums [0, 1, 2, 3] >>> type(nums) # verifichiamo che il tipo sia "list"

>>> empty = [] # nuova lista vuota >>> empty [] >>> one = ['Python'] # nuova lista con un elemento >>> one ['Python'] Usare le Liste** Così come le tuple e le stringhe, anche le liste sono un tipo di sequenza, e supportano quindi le operazioni comuni a tutte le sequenze, come indexing, slicing, contenimento, concatenazione, e ripetizione: ESEMPIO >>> letters = ['a', 'b', 'c', 'd', 'e']

>>> letters[0] # le liste supportano indexing 'a' >>> letters[-1] 'e' >>> letters[1:4] # slicing ['b', 'c', 'd'] >>> 'a' in letters # gli operatori di contenimento "in" e "not in" True >>> letters + ['f', 'g', 'h'] # concatenazione (ritorna una nuova lista) ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'] >>> [1, 2, 3] * 3 # ripetizione (ritorna una nuova lista) [1, 2, 3, 1, 2, 3, 1, 2, 3] Le liste supportano anche funzioni e metodi comuni alle altre sequenze: len() per contare gli elementi, min() e max() per trovare l’elemento più piccolo/grande (a patto che i tipi degli elementi siano comparabili), .index() per trovare l’indice di un elemento, e .count() per contare quante volte un elemento è presente nella lista: ESEMPIO >>> letters = ['a', 'b', 'c', 'b', 'a'] >>> len(letters) # numero di elementi 5 >>> min(letters) # elemento più piccolo (alfabeticamente nel caso di stringhe) 'a' >>> max(letters) # elemento più grande 'c' >>> letters.index('c') # indice dell'elemento 'c' 2 >>> letters.count('c') # numero di occorrenze di 'c' 1 >>> letters.count('b') # numero di occorrenze di 'b' 2 A differenza di tuple e stringhe che sono immutabili, le liste possono essere mutate. È quindi possibile assegnare un nuovo valore agli

'f' >>> letters.pop(0) # rimuove e ritorna l'elemento in posizione 0 ('a') 'a' >>> letters.remove('d') # rimuove l'elemento 'd' >>> letters ['b', 'c', 'e'] >>> letters.reverse() # inverte l'ordine "sul posto" e non ritorna niente >>> letters # gli elementi sono ora in ordine inverso ['e', 'c', 'b'] >>> letters[1] = 'x' # sostituisce l'elemento in posizione 1 ('c') con 'x' >>> letters ['e', 'x', 'b'] >>> del letters[1] # rimuove l'elemento in posizione 1 ('x') >>> letters ['e', 'b'] >>> letters.clear() # rimuove tutti gli elementi rimasti >>> letters [] Alcuni di questi metodi accettano anche argomenti aggiuntivi che potrete vedere usando help(list.metodo) può essere rappresentata con una lista (es. ['John', 'Jane', 'Jack', ...]]) di lunghezza variabile (persone possono essere aggiunte o tolte) e elementi omogenei (la colonna del nome ha solo stringhe, quella dell’età solo numeri) che vengono accessi tramite iterazione (es. stampare la lista di cognomi usando un loop).

È inoltre possibile combinare i due tipi e rappresentare l’intera tabella come una lista di tuple: ESEMPIO [('John', 'Smith', 20), ('Jane', 'Johnson', 30), ('Jack', 'Williams', 28), ...]

IF-ELIF-ELSE

Il costrutto if-elif-else permette di eseguire istruzioni o gruppi di istruzioni diverse a seconda del verificarsi di una o più condizioni. La forma più semplice prevede l’uso di un if seguito da una condizione, dai due punti (:) e da un blocco di codice indentato che viene eseguito solo se la condizione è vera: ESEMPIO if condizione: