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


teoria generale di Python, Appunti di Anatomia

appunti della teoria generale di Python università della Calabria

Tipologia: Appunti

2024/2025

Caricato il 03/03/2026

federica-ambrosiano
federica-ambrosiano 🇮🇹

4 documenti

1 / 69

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Teoria e esercizi in Python
Un algoritmo è un elenco di istruzioni passo dopo passo che, se seguite esattamente, risolveranno
il problema in esame, il nostro obiettivo nell'informatica è prendere un problema e sviluppare un
algoritmo che possa fungere da soluzione generale, una volta ottenuta tale soluzione, possiamo
usare il nostro computer per automatizzarne l'esecuzione tramite programmazione.
La programmazione è un'abilità che consente a un informatico di prendere un algoritmo e
rappresentarlo in una notazione (un programma) che può essere seguita da un computer, un
programma è scritto in un linguaggio di programmazione come Python.
I linguaggi di programmazione sono linguaggi formali progettati per esprimere calcoli.
Un programma è un algoritmo espresso in un linguaggio di programmazione.
Python è un esempio di linguaggio di alto livello, esistono anche linguaggi di basso livello, a
volte indicati come linguaggi macchina o linguaggi assembly.
In parole povere, i computer possono eseguire solo programmi scritti in linguaggi di basso livello,
quindi, i programmi scritti in un linguaggio di alto livello devono essere elaborati prima di poter
essere eseguiti, questa elaborazione extra richiede un po' di tempo, il che è un piccolo svantaggio
dei linguaggi di alto livello.
Tuttavia, i vantaggi dei linguaggi di alto livello sono enormi, innanzitutto, è molto più facile
programmare in un linguaggio di alto livello, i programmi scritti in un linguaggio di alto livello
richiedono meno tempo per essere scritti, sono più corti e facili da leggere e hanno maggiori
probabilità di essere corretti, in secondo luogo, i linguaggi di alto livello sono portabili, il che
significa che possono essere eseguiti su diversi tipi di computer con poche o nessuna modifica, i
programmi di basso livello possono essere eseguiti solo su un tipo di computer e devono essere
riscritti per essere eseguiti su un altro.
Due tipi di programmi elaborano linguaggi di alto livello in linguaggi di basso livello: interpreti e
compilatori, un interprete legge un programma di alto livello e lo esegue, il che significa che fa ciò
che il programma dice, elabora il programma un po' alla volta, alternativamente leggendo le righe
ed eseguendo calcoli.
Un compilatore legge il programma e lo traduce completamente prima che il programma inizi a
funzionare, in questo caso, il programma di alto livello è chiamato codice sorgente e il
programma tradotto è chiamato codice oggetto o eseguibile, una volta che un programma è
compilato, puoi eseguirlo ripetutamente senza ulteriori traduzioni.
I linguaggi formali tendono ad avere regole rigide sulla sintassi, i token sono gli elementi di base
del linguaggio, come parole o numeri, i linguaggi formali sono progettati per essere quasi o
completamente non ambigui, il che significa che ogni affermazione ha esattamente un significato,
sono meno ridondanti e più concisi, significano esattamente ciò che dicono.
Input: ottieni dati dalla tastiera, da un file o da un altro dispositivo.
Output: visualizzare i dati sullo schermo o inviare dati a un file o a un altro dispositivo.
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
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45

Anteprima parziale del testo

Scarica teoria generale di Python e più Appunti in PDF di Anatomia solo su Docsity!

Teoria e esercizi in Python Un algoritmo è un elenco di istruzioni passo dopo passo che, se seguite esattamente, risolveranno il problema in esame, il nostro obiettivo nell'informatica è prendere un problema e sviluppare un algoritmo che possa fungere da soluzione generale, una volta ottenuta tale soluzione, possiamo usare il nostro computer per automatizzarne l'esecuzione tramite programmazione. La programmazione è un'abilità che consente a un informatico di prendere un algoritmo e rappresentarlo in una notazione (un programma) che può essere seguita da un computer, un programma è scritto in un linguaggio di programmazione come Python. I linguaggi di programmazione sono linguaggi formali progettati per esprimere calcoli. Un programma è un algoritmo espresso in un linguaggio di programmazione. Python è un esempio di linguaggio di alto livello , esistono anche linguaggi di basso livello , a volte indicati come linguaggi macchina o linguaggi assembly. In parole povere, i computer possono eseguire solo programmi scritti in linguaggi di basso livello, quindi, i programmi scritti in un linguaggio di alto livello devono essere elaborati prima di poter essere eseguiti, questa elaborazione extra richiede un po' di tempo, il che è un piccolo svantaggio dei linguaggi di alto livello. Tuttavia, i vantaggi dei linguaggi di alto livello sono enormi, innanzitutto, è molto più facile programmare in un linguaggio di alto livello, i programmi scritti in un linguaggio di alto livello richiedono meno tempo per essere scritti, sono più corti e facili da leggere e hanno maggiori probabilità di essere corretti, in secondo luogo, i linguaggi di alto livello sono portabili, il che significa che possono essere eseguiti su diversi tipi di computer con poche o nessuna modifica, i programmi di basso livello possono essere eseguiti solo su un tipo di computer e devono essere riscritti per essere eseguiti su un altro. Due tipi di programmi elaborano linguaggi di alto livello in linguaggi di basso livello: interpreti e compilatori , un interprete legge un programma di alto livello e lo esegue, il che significa che fa ciò che il programma dice, elabora il programma un po' alla volta, alternativamente leggendo le righe ed eseguendo calcoli. Un compilatore legge il programma e lo traduce completamente prima che il programma inizi a funzionare, in questo caso, il programma di alto livello è chiamato codice sorgente e il programma tradotto è chiamato codice oggetto o eseguibile , una volta che un programma è compilato, puoi eseguirlo ripetutamente senza ulteriori traduzioni. I linguaggi formali tendono ad avere regole rigide sulla sintassi, i token sono gli elementi di base del linguaggio, come parole o numeri, i linguaggi formali sono progettati per essere quasi o completamente non ambigui, il che significa che ogni affermazione ha esattamente un significato, sono meno ridondanti e più concisi, significano esattamente ciò che dicono. Input: ottieni dati dalla tastiera, da un file o da un altro dispositivo. Output: visualizzare i dati sullo schermo o inviare dati a un file o a un altro dispositivo.

Questo è un esempio di utilizzo della funzione di stampa che ci permette di visualizzare un valore sullo schermo utilizzando print , esempio: print ("ciao, mondo!") Le virgolette nel programma segnano l'inizio e la fine del valore e non compaiono nel risultato. Un commento in un programma per computer è un testo destinato solo al lettore umano, che viene completamente ignorato dall'interprete, in Python, il token # avvia un commento, il resto della riga viene ignorato, esempio: print ("ciao, mondo!")

è facile!

Un valore è una delle cose fondamentali, come una parola o un numero, che un programma manipola, questi oggetti sono classificati in classi diverse, o tipi di dati: 4 è un intero , "Hello, World!" è una stringa , così chiamata perché contiene una sequenza di lettere, tu (e l'interprete) potete identificare le stringhe perché sono racchiuse tra virgolette, numeri con un punto decimale appartengono a una classe chiamata float. È possibile creare espressioni complesse utilizzando gli operatori , gli operatori sono token speciali che rappresentano calcoli come addizione, moltiplicazione e divisione, i valori su cui lavora l'operatore sono chiamati operandi. I **token +, - , *** e l'uso delle parentesi per il raggruppamento, significano in Python ciò che significano in matematica, l'asterisco è il token per la moltiplicazione, ****** è il token per l'esponenziale. Ricorda che se vogliamo vedere i risultati del calcolo, il programma deve specificarlo con la parola print, altrimenti i primi tre calcoli avvengono, ma i loro risultati non vengono stampati. 20 + 32 5 ** 2 (5 + 9) * (15 - 7) print(7 + 5) 12 L'operatore di divisione produce un risultato in virgola mobile (anche se il risultato è un intero, come 4/2 uguale a 2.0, se vuoi una divisione troncata, che ignora il resto, puoi usare //. print(9 / 5) print(9 // 5)

1 L'operatore di divisione troncata, funziona anche sui numeri in virgola mobile, tronca all'intero più vicino, ma produce comunque un risultato in virgola mobile print(7.0 / 3.0) print(7.0 // 3.0)

print(square) print(square(3))

9 Se non sei sicuro della classe o tipo di dati in cui rientra un valore, c’è ha una funzione chiamata type che può dirtelo. print(type("Hello, World!")) print(type(17)) print(type(3.2))

E che dire di valori come 17 o 3.2, sembrano numeri, ma sono tra virgolette come stringhe. print(type("17")) print(type("3.2"))

Le stringhe in Python possono essere racchiuse tra virgolette singole (‘) o doppie (‘’) o tre di ciascuna quindi (‘ ‘ ‘) o (“ “ “) Le stringhe con virgolette doppie possono contenere virgolette singole al loro interno, e le stringhe con virgolette singole possono contenere virgolette doppie al loro interno. Le stringhe racchiuse tra tre virgolette sono chiamate stringhe con virgolette triple, possono contenere virgolette singole o doppie: print('''"Oh no", she exclaimed, "Ben's bike is broken!"''') "Oh no", she exclaimed, "Ben's bike is broken!" Le stringhe tra virgolette triple possono anche estendersi su più righe: print("""Questo messaggio occuperà diverse linee del testo.""") Questo messaggio occuperà diverse linee del testo. A Python non importa se usi virgolette singole o doppie o le virgolette triple per racchiudere le tue stringhe, una volta analizzato il testo del tuo programma o comando, il modo in cui memorizza il valore è identico in tutti i casi e le virgolette circostanti non fanno parte del valore.

print(‘Questa è una stringa.') print("""Anche questa.""") Questa è una stringa. Anche questa. Quando digiti un numero intero grande, potresti essere tentato di usare virgole tra gruppi di tre cifre, come in 42,000, questo non è un numero intero legale in Python, ma significa qualcos'altro: print(42500) print(42,500) 42500 42 500 A causa della virgola, Python ha scelto di trattarlo come una coppia di valori, infatti, un'istruzione print può stampare qualsiasi numero di valori, purché li separi con virgole. print(42, 17, 56, 34, 11, 4.35, 32) print(3.4, "hello", 45) 42 17 56 34 11 4.35 32 3.4 hello 45 Ricordatevi di non mettere virgole o spazi nei vostri interi, non importa quanto siano grandi. A volte è necessario convertire i valori da un tipo a un altro, Python fornisce alcune semplici funzioni che ci consentiranno di farlo. Le funzioni i nt, float e str tenteranno di convertire i loro argomenti nei tipi rispettivamente int, float e str. Chiamiamo queste funzioni di conversione di tipo. La funzione int può prendere un numero in virgola mobile o una stringa e trasformarlo in un intero, per i numeri in virgola mobile, scarta la parte decimale del numero, un processo che chiamiamo troncamento verso zero sulla retta numerica, vediamolo in azione: print(3.14, int(3.14)) print(3.9999, int(3.9999)) print(3.0, int(3.0)) print("2345", int("2345")) print(int("23bottles")) 3.14 3 3.9999 3 3.0 3 2345 2345 ERRORE Una stringa deve essere un numero sintatticamente valido, per questo da errore. Il convertitore di tipo float può trasformare un numero intero, un numero float o una stringa sintatticamente valida in un numero float. print(float("123.45")) print(type(float("123.45")))

I nomi delle variabili possono essere arbitrariamente lunghi, possono contenere sia lettere che cifre, ma devono iniziare con una lettera o un trattino basso, sebbene sia legale usare lettere maiuscole, per convenzione non lo facciamo, se lo fai, ricorda che le maiuscole/minuscole contano. Bruce e bruce sono variabili diverse. I nomi delle variabili non possono mai contenere spazi. Il carattere di sottolineatura (_) può anche apparire in un nome, viene spesso utilizzato in nomi con più parole, non si possono utilizzare caratteri speciali, non si possono utilizzare alcune parole. Parole chiave : definiscono le regole di sintassi e la struttura del linguaggio e non possono essere utilizzate come nomi di variabili, ci sono una trentina di parole chiave: and as assert async await break class continue def del elif else except finally for from global if import in is lambda nonlocal not or pass raise return try while with yield True False None Potresti voler tenere a portata di mano questa lista, se l'interprete si lamenta di uno dei nomi delle tue variabili e non sai perché, controlla se è in questa lista. Un' istruzione è un'istruzione che l'interprete Python può eseguire, finora hai visto solo l'istruzione di assegnazione = Un' espressione è una combinazione di letterali, nomi di variabili, operatori e chiamate a funzioni, il risultato della valutazione di un'espressione è un valore o un oggetto. Se si chiede a Python print un'espressione, l'interprete valuta l'espressione e visualizza il risultato. print(1 + 1 + (2 * 3)) print(len("hello")) 8 5 In questo esempio len è una funzione Python integrata che restituisce il numero di caratteri in una stringa. x = len("hello") print(x) 5 Oppure possiamo combinare le funzioni (len e print), operazioni (* e +), valori (2, hello e goodbye) in un'unica espressione che python valutera ed eseguirà.

Diversamente le istruzioni sono = (di assegnazione) e altre (if, while, for). print(2 * len("hello") + len("goodbye")) 17 Allo stesso modo, quando si chiama una funzione, invece di inserire un letterale tra parentesi, è possibile inserire un'espressione complessa tra parentesi. def square(x): return x * x def sub(x, y): return x - y x = 2 y = 1 print(square(y + 3)) print(square(y + square(x))) print(sub(square(y), square(x))) 16 25

  • 3 Quando più di un operatore appare in un'espressione, l'ordine di valutazione dipende dalle regole di precedenza. Le parentesi hanno la precedenza più alta e possono essere usate per forzare un'espressione a essere valutata nell'ordine desiderato L'elevamento a potenza ha la precedenza più alta, La moltiplicazione e entrambi gli operatori di divisione hanno la stessa precedenza, che è superiore a quella dell' addizione e della sottrazione , che hanno anch'esse la stessa precedenza Gli operatori con la stessa precedenza vengono valutati da sinistra a destra Un suggerimento utile è quello di usare sempre le parentesi per forzare esattamente l'ordine desiderato quando è coinvolta l'esponenziale. E’ legale fare più di un'assegnazione alla stessa variabile, una nuova assegnazione fa sì che una variabile esistente faccia riferimento a un nuovo valore Ecco come appare la riassegnazione a = 5 b = a print(a,b) a = 3 print(a,b) 5 5 3 5

minutes = secs_still_remaining // 60 secs_finally_remaining = secs_still_remaining % 60 print("Hrs=", hours, "mins=", minutes, "secs=", secs_finally_remaining) Hrs= 833 mins= 20 secs= 0

Molte persone segnano il tempo usando un orologio di 24 ore (11 è 11am e 23 è 11pm, 0 è

mezzanotte), se sono attualmente le 13 e imposti la sveglia in modo che suoni tra 50 ore, saranno le 15 (3pm), scrivi un programma Python e chiedi all'utente l'ora attuale (in ore), quindi chiedi il numero di ore di attesa per la sveglia, il tuo programma dovrebbe restituire l'ora sull'orologio quando la sveglia suona. current_time_string = input("What is the current time (in hours)? ") waiting_time_string = input("How many hours do you have to wait? ") current_time_int = int(current_time_string) waiting_time_int = int(waiting_time_string) hours = current_time_int + waiting_time_int timeofday = hours % 24 print(timeofday)

È possibile nominare i giorni da 0 a 6, dove il giorno 0 è domenica e il giorno 6 è sabato, se si va

in una meravigliosa vacanza partendo il giorno numero 3 (un mercoledì) e si torna a casa dopo 10 notti, si tornerà a casa un sabato (giorno 6), scrivere una versione generale del programma che chiede il numero del giorno di partenza e la durata del soggiorno, e vi dirà il numero di giorni della settimana in cui si tornerà. Giorno_str = input ("inserisci giorno attuale:") Durata_str = input ("inserisci durata soggiorno in giorni:") Giorno_int = int(Giorno_str) Durata_int = int(Durata_str) Giorni_totali = Giorno_int + Durata_int Giorno_ritorno = Giorni_totali % 7 print=(Giorno_ritorno) #Scrivi un programma che calcoli l'area di un cerchio, chiedi all'utente di immettere il raggio e salvalo in una variabile chiamata raggio, stampa un messaggio carino all'utente con la risposta raggio_str = input ("immetti raggio del cerchio:") pi_greco = 3. raggio_int = int(raggio_str) Area = (raggio_int ** 2) * pi_greco print ("l'area del cerchio mio caro utente è", Area)

l'area del cerchio mio caro utente è 28. #Scrivere un programma che converta i gradi Celsius in input in gradi Fahrenheit. Gradi_Celsius_str = input ("inserisci i gradi Celsius:") Gradi_Celsius_int = int(Gradi_Celsius_str) Gradi_F = (Gradi_Celsius_int * 9/5) + 32 print (Gradi_F) Un modulo è un file contenente definizioni e istruzioni destinate all'uso in altri programmi, ci sono molti moduli Python che vengono forniti come parte della libreria standard. Per usare i moduli, devi importarli in un programma, ciò avviene con un'istruzione import e poi il nome del modulo, il nome è sensibile alle maiuscole e alle minuscole, per convenzione vengono messi in cima al file. Python fornisce un modulo random che genera un intero tra il suo argomento inferiore e superiore in cui il limite inferiore è incluso, ma il limite superiore è escluso, quindi, randerage (1,7) includerà numeri da 1 a 6, se si omette il primo parametro, si presume che sia 0, quindi randerage (10) si otterranno numeri da 0 a 9. Tutti i valori hanno la stessa probabilità di verificarsi (sono quindi distribuiti uniformemente ). La funzione random () restituisce un numero in virgola mobile nell'intervallo (0.0, 1. 0 ) Il codice corretto per generare un numero casuale x compreso tra 1 e 100 (inclusi) è: x = random.randrange(1, 101) #Utilizzare for per stampare 10 numeri casuali. import random i = 0 for i in range (0, 10): x= random.randrange ( 10 ) print (x) #Ripeti l'esercizio precedente, ma questa volta stampa 10 numeri casuali compresi tra 25 e 35. import random i = 0 for i in range (0, 10): x= random.randrange (25,36) print (x) Il modulo math fornisce l’accesso alle funzioni della libreria per i calcoli matematici in virgola mobile. Un elemento fondamentale di tutti i programmi è la capacità di ripetere un codice più e più volte, ci riferiamo a questa esecuzione ripetitiva come iterazione, l’istruzione for ci consente di scrivere programmi che implementano l'iterazione.

print("Now we are outside of the for loop!") This line will execute three times This line will execute three times This line will execute three times Now we are outside of the for loop! L'anatomia del modello di accumulo include: inizializzazione di una variabile accumulatore a un valore iniziale (ad esempio 0), iterando (ad esempio, attraversando gli elementi in una sequenza), aggiornando la variabile accumulatore a ogni iterazione all’interno del corpo del ciclo (ad esempio, durante l'elaborazione di ogni elemento nella sequenza). nums = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 ] accum = 0 for w in nums: accum = accum + w print(accum) 55 A volte, è naturale pensare di iterare attraverso le posizioni o indici di una sequenza, piuttosto che attraverso gli elementi stessi, per farlo possiamo utilizzare la funzione range, per rendere l'iterazione più generale, possiamo usare la funzione len per fornire il limite a range. fruits = ['apple', 'pear', 'apricot', 'cherry', 'peach'] for n in range( 5 ): for n in range(len(fruits)): print(n, fruits[n]) 0 apple 1 pear 2 apricot 3 cherry 4 peach

Scrivi una funzione che riceva una stringa e per ogni indice dei caratteri della stringa, se l'indice

è pari stampi il primo carattere, se l'indice è dispari stampi il secondo carattere. s = "python" for idx in range(len(s)): print(s[idx % 2 ]) p y p y p y

Scrivi una funzione che riceva una stringa e per ogni indice dei caratteri della stringa,

se l'indice è pari stampi il primo carattere, se l'indice è dispari stampi il secondo carattere, usando if questa volta.

s = "python" for idx in range(len(s)): n = (idx % 2 ) if n == 0 : print (s[ 0 ]) else: print (s[ 1 ]) p y p y p y

Assegna ad una variabile una lista che va da 0 a 9, per ogni valore della lista incrementa un

contatore con il valore della lista. w = range( 10 ) tot = 0 for num in w: tot += num print(tot) 45 Aggiungendo print(num) all’interno del corpo del ciclo possiamo vedere quali sono i valori della lista man mano che vengono sommati. w = range( 10 ) tot = 0 for num in w: print(num) tot += num print(tot) 0 1 2 3 4 5 6 7 8 9 45

studenti = [ "Carlo", "Giulia", "Luca", "Angelo" ] n = 0 for studente in studenti: print ("ciao", studente) n += 1 print ("lo studente numero", n, "è stato salutato") ciao Carlo lo studente numero 1 è stato salutato ciao Giulia lo studente numero 2 è stato salutato ciao Luca lo studente numero 3 è stato salutato ciao Angelo lo studente numero 4 è stato salutato Scrivi un ciclo for per stampare ogni elemento della lista several_things, per stampare il TIPO di ogni elemento della lista several_things e la lunghezza ma solo se è una stringa. several_things = ["hello", 2, 4, 6.0, 7.5, 234352354, "the end", "", 99] for n in several_things: print(n) print(type(n)) tipo= type(n) if tipo == str: print(len(n)) else: print("no") hello

5 2

no 4

no

no

no 234352354

no the end

7

addition_str è una stringa con un elenco di numeri separati dal + segno, scrivi codice che utilizzi

il modello di accumulazione per prendere la somma di tutti i numeri e assegnarla a sum_val. addition_str = "2+5+10+20" new_list= addition_str.split("+") sum_val = 0 for num in new_list: num = int(num) sum_val += num print (sum_val) 37

temperature_ settimanali è una stringa con un elenco di temperature Fahrenheit separate dal

Segno virgola, scrivi codice che utilizzi il modello di accumulo per calcolare la media, fai in modo che il tuo codice calcoli sia la somma che il numero di elementi, il tipo deve essere float visto che sono temperature. temperature_settimanali = "75.1,77.7,83.2,82.5,81.0,79.5,85.7" temperature_settimanali2 = temperature_settimanali.split(",") totale_gradi = 0 numero_settimane = 0 for temperatura in temperature_settimanali2: temperatura = float(temperatura) totale_gradi += temperatura numero_settimane += 1 media = totale_gradi / numero_settimane print ("la media della temperatura di", numero_settimane, " settimane, é", media) la media della temperatura di 7 settimane é 80. Il tipo Python per memorizzare i valori true e false è chiamato bool, ci sono solo due valori booleani ossia True e False Sono, la capitalizzazione è importante, poiché true e false non sono valori booleani. print(True) print(type(True)) print(type(False)) True

I valori booleani non sono stringhe! print(type(True)) print(type("True"))

print('p' in 'apple') print('i' in 'apple') print('ap' in 'apple') print('pa' in 'apple') True False True False Si noti che una stringa è una sottostringa di se stessa e la stringa vuota è una sottostringa di qualsiasi altra stringa. print('a' in 'a') print('apple' in 'apple') print('' in 'a') print('' in 'apple') True True True True L'operatore not in restituisce il risultato logico opposto di in. print('x' not in 'apple') True Possiamo usare anche gli operatori sulle liste. print("a" in ["a", "b", "c", "d"]) print(9 in [3, 2, 9, 10, 9.0]) print('wow' not in ['gee wiz', 'gosh golly', 'wow', 'amazing']) True True False Tuttavia, ricordi come sei riuscito a controllare se c'era una "a" in "apple"? Proviamo di nuovo per vedere se c'è una "a" da qualche parte nell'elenco seguente. print("a" in ["apple", "absolutely", "application", "nope"]) False Chiaramente, possiamo dire che a è nella parola apple, e absolutely, e application, per qualche ragione, però, l'interprete Python restituisce False. Perché? Quando utilizziamo gli operatori sulle liste, Python controlla se l'elemento sul lato sinistro dell'espressione è equivalente a un elemento nell'elemento sul lato destro dell'espressione, in questo caso, Python controlla se un elemento della lista è o meno la stringa "a", niente di più o di meno. Gli operatori aritmetici hanno la precedenza sugli operatori logici, poi vengono gli operatori relazionali, infine, gli operatori logici vengono eseguiti per ultimi.

Livello Categoria Operatori 7 Esponente ** 6 Moltiplicazione e Divisione *,/,//,% 5 Aggiunta e Sottrazione +,- 4 Relazionale ==,!=,<=,>=,>,< 3 Logico in e not in 2 Logico and 1 Logico or Gli studenti spesso combinano in modo errato gli operatori. Ad esempio, se vogliono controllare che la lettera x sia all'interno di una delle due variabili, tendono a scriverla nel modo seguente: 'x' in y or z Scritto in questo modo, il codice non farebbe sempre ciò che il programmatore intendeva, l’operatore in è solo sul lato sinistro dell'istruzione or, per controllare correttamente che x sia all'interno di una delle due variabili, l'operatore in deve essere utilizzato su entrambi i lati, il che si presenta in questo modo: 'x' in y or 'x' in z Le istruzioni di selezione , a volte chiamate anche istruzioni condizionali , ci danno capacità di selezione, la forma più semplice di selezione è l' istruzione if. x = 15 if x % 2 == 0: print(x, "is even") else: print(x, "is odd") 15 is odd La sintassi di è la seguente: if BOOLEAN EXPRESSION: STATEMENTS_ else : STATEMENTS_