HTML.it logo
Learn
  • Design
    • Grafica
    • User Interface Design
    • Adobe Creative Suite
    Guide
    Approfondimenti
    Faq
    Notizie
    Tutto in Design >
  • Development
    • .NET
    • ASP
    • CMS
    • Flash
    • Java
    • JavaScript
    • PHP
    • Essentials
    • Ruby
    • XML
    • Editor
    • CSS
    • HTML
    Guide
    Approfondimenti
    Script
    Faq
    Notizie
    Tutto in Development >
  • Mobile
    • Android Studio
    • Cordova
    • Eclipse
    • Objective C
    • Swift
    Guide
    Approfondimenti
    Script
    Faq
    Notizie
    Tutto in Mobile >
  • Server
    • Cloud
    • Database
    • OS
    • Sicurezza
    • Network
    Tutto in Server >
  • Digital Marketing
    • SEO
    • Affiliate Marketing
    • Social Media Marketing
    Tutto in Digital Marketing >
  • Makers
    • Arduino
    • RaspberryPi
    • Stampa 3D
    Guide
    Approfondimenti
    Notizie
    Tutto in Makers >
  • Game Design
    • Unity
    Guide
    Approfondimenti
    Notizie
    Tutto in Game Design >
Download
  • Audio e Video
    • Player Audio Video
    • Codec audio
    • Editor audio video
    • Masterizzazione
    • Ripper e Convertitori
    • Speech
    Tutto in Audio e Video >
  • Educazione
    • Bambini
    • Cucina
    • Salute e Benessere
    • Istruzione
    Tutto in Educazione >
  • Giochi
    • Arcade
    • Avventura
    • Azione
    • Board
    • Carte
    • Giochi di ruolo
    • Giochi Online
    • Puzzle e Enigmistica
    • Simulazione
    • Sparatutto
    • Sport
    • Strategia e Giochi di Guerra
    • Tempo Libero
    Tutto in Giochi >
  • Grafica
    • Accessori & Mappe
    • Animazione
    • CAD – 3D
    • Cattura schermo
    • Convertitori e ridimensionatori
    • Editor
    • Flash
    • Font
    • Fotoritocco
    • Gallerie e album
    • Icone e loghi
    • Visualizzatori
    Tutto in Grafica >
  • Internet
    • Browser
    • Chat e IM
    • eMail
    • Estensioni & Temi
    • FTP
    • Network
    • News e RSS
    • Peer to Peer
    • Webcam
    Tutto in Internet >
  • Programmazione
    • Accessori
    • CMS e E-Commerce
    • Editor e Compilatori
    • Editor e strumenti Web
    • Linguaggi
    Tutto in Programmazione >
  • Sicurezza
    • Antispam
    • Antispyware
    • Antivirus
    • Server
    Tutto in Sicurezza >
  • Produttività
    • Backup
    • Compressione
    • Connettività
    • Database
    • Fax e Telefonia
    • Gestione disco
    • Ottimizzazione
    • Ufficio
    • Utilità di Sistema
    Tutto in Produttività >
Notizie
Video
Forum
in  
Trend
JavaScriptPHPHTMLLinguaggio CPythonDigital MarketingProgrammazioneWordPressJavaGame Design
INDICE DELLA GUIDA
Primi passi con il linguaggio
  1. 1 Introduzione e un po' di storia

  2. 2 Perché usare Python

  3. 3 Installare Python

  4. 4 L'interprete Python e l'IDLE

  5. 5 Le funzioni print e input

  6. 6 Indentazione

Variabili e tipi di dati
  1. 7 Variabili e commenti in Python

  2. 8 Numeri e operatori logici in Python

  3. 9 Stringhe in Python

  4. 10 Tuple

  5. 11 Liste

  6. 12 Dizionari

  7. 13 Set e frozenset

  8. 14 Tipi built-in: riepilogo

La programmazione con Python
  1. lezione
    15 di 40

    Istruzioni Condizionali

  2. 16 Cicli: for e while

  3. 17 List/Set/Dict Comprehension

  4. 18 Funzioni

  5. 19 Gestione delle eccezioni

  6. 20 Gestire i file

  7. 21 Moduli

  8. 22 Creare nuovi moduli

  9. 23 Package

La programmazione a oggetti con Python
  1. 24 La programmazione ad oggetti

  2. 25 Classi in Python

  3. 26 Ereditarietà

  4. 27 Metodi speciali

  5. 28 Overloading degli operatori

GUI con Python
  1. 29 GUI sui Python: i Framework da usare

  2. 30 Tkinter

  3. 31 PyQt

  4. 32 Kivy

Approfondimenti
  1. 33 Python e Java

  2. 34 Python e i database

  3. 35 Python e cgi

  4. 36 Multithreading

  5. 37 File JSON: leggere e scrivere

  6. 38 File XML: leggere e scrivere

  7. 39 Future statement

  8. 40 pip: il package manager per Python

  • Learn
  • Guida Python
  • Istruzioni Condizionali
lezione
15 di 40

Istruzioni Condizionali

  • di Ezio Melotti
  • 3 Luglio 2017

In questa lezione vedremo come implementare istruzioni condizionali in Python usando il costrutto if-elif-else. Le istruzioni condizionali vengono utilizzate quando vogliamo eseguire un blocco di codice solo nel caso in cui una condizione sia vera o falsa.

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:


if condizione:
# gruppo di istruzioni eseguite
# se la condizione è vera

Per esempio, per calcolare il valore assoluto di un numero, possiamo procedere così:


n = int(input('Inserisci un numero: '))
if n < 0: # se il numero è negativo
n = -n # rendilo positivo
print('Il valore assoluto è', n)

In questo caso il blocco di codice indentato sotto l’if (cioè n = -n) è eseguito solo se il numero è negativo. Se il numero è invece positivo, il programma procede ad eseguire l’istruzione che segue l’if, cioè il print().

Aggiungendo un else seguito dai due punti (:) possiamo anche specificare un blocco di codice eseguito quando la condizione dell’if è falsa:


if condizione:
# gruppo di istruzioni eseguite
# se la condizione è vera
else:
# gruppo di istruzioni eseguite
# se la condizione è falsa

In questo caso Python eseguirà il primo blocco se la condizione è vera, oppure il secondo blocco se la condizione è falsa. Ad esempio:


n = int(input('Inserisci un numero: '))
if n < 0: # se il numero è negativo
print(n, 'è negativo')
else: # altrimenti (se non è negativo)
print(n, 'è positivo')

In questo caso il programma eseguirà uno dei due print(): il primo se il numero inserito dall’utente è negativo, il secondo se invece è positivo.

È infine possibile aggiungere 1 o più elif, ognuno seguito da una condizione, dai due punti (:) e da un blocco di codice indentato che viene eseguito solo se la condizione è vera. È anche possibile aggiungere un singolo else alla fine che viene eseguito se tutte le condizioni precedenti sono false:


if condizione1:
# gruppo di istruzioni eseguite
# se la condizione1 è vera
elif condizione2:
# gruppo di istruzioni eseguite
# se la condizione2 è vera
elif condizioneN:
# gruppo di istruzioni eseguite
# se la condizioneN è vera
else:
# gruppo di istruzioni eseguite
# se tutte le condizioni sono false

Si noti che solo uno di questi blocchi viene eseguito: se una delle condizioni è vera, il blocco corrispondente viene eseguito; se invece tutte le condizioni sono false e un else è presente, solo il blocco dell’else viene eseguito. Nel caso ci siano più condizioni vere, verrà eseguito solo il blocco corrispondente alla prima condizione vera.


n = int(input('Inserisci un numero: '))
if n < 0:
print(n, 'è negativo')
elif n > 0:
print(n, 'è positivo')
else:
print(n, 'è zero')

Questo programma usa if ed elif per verificare rispettivamente se il numero inserito dall’utente è negativo o positivo. Se entrambe le condizioni sono false (cioè quando il numero è uguale a 0), l’else viene eseguito.

Indentazione

In una delle precedenti lezioni abbiamo visto che linguaggi come il C usano le parentesi graffe ({}) per delimitare blocchi di codice, mentre in Python basta usare l’indentazione, aggiungendo o togliendo 4 spazi per ogni livello. Nei due esempi che seguono, vedremo che codice apparentemente simile ha significati diversi a seconda dell’indentazione.

In questo primo esempio, l’else ha lo stesso livello di indentazione del secondo if, e viene quindi eseguito quando cond1 è vera e cond2 è falsa:


if cond1:
print('cond1 è vera')
if cond2:
print('cond1 è vera, cond2 è vera')
else:
print('cond1 è vera, cond2 è falsa')

In quest’altro esempio, l’else ha lo stesso livello di indentazione del primo if, e viene quindi eseguito quando cond1 è falsa:


if cond1:
print('cond1 è vera')
if cond2:
print('cond1 è vera, cond2 è vera')
else:
print('cond1 è falsa')

Possiamo notare che il blocco di codice indentato sotto all’else viene eseguito quando la condizione dell’if corrispondente (cioè quello con lo stesso livello di indentazione dell’else) è falsa.

Nel seguente esempio, vediamo come sia possibile usare più if-else per ottenere lo stesso risultato di un if-elif-else:


n = int(input('Inserisci un numero: '))
if n == 0:
# se il numero è zero
print(n, 'è zero')
else:
# se il numero non è zero
if n > 0:
print(n, 'è positivo')
else:
print(n, 'è negativo')

Possiamo notare che:

  • il primo print() è indentato sotto l’if, e quindi viene eseguito solo se la condizione n == 0 è vera;
  • il primo else ha lo stesso livello di indentazione del primo if, quindi viene eseguito solo se la condizione n == 0 non è vera;
  • indentato sotto il primo else c’è un blocco di codice di 4 righe, che include un altro if-else;
  • il secondo print() ha 2 livelli di indentazione, quindi viene eseguito solo quando la prima condizione (n == 0) è falsa e la seconda (n > 0) è vera;
  • il secondo else ha lo stesso livello di indentazione del secondo if, quindi viene eseguito solo se la condizione n > 0 non è vera;
  • il terzo e ultimo print() ha 2 livelli di indentazione, quindi viene eseguito solo quando la prima (n == 0) e la seconda (n > 0) condizione sono false.

Sostituire lo “switch-case”

Un altro costrutto condizionale presente in diversi altri linguaggi è lo switch-case. Lo switch-case consente di specificare una variabile, seguita da diversi casi che vengono eseguiti in base al valore della variabile.

Il seguente esempio mostra parte di un programma in C che in base al valore delle variabile n, esegue diversi blocchi di codice:


// esempio in C
switch (n) {
case 0:
printf('zero\n');
break;
case 1:
case 2:
printf('uno o due\n');
break;
case 3:
printf('tre\n');
break;
default:
printf('numero diverso da 0, 1, 2, 3\n');
break;
}

Questo programma C stampa zero se il valore di n è 0, uno o due se il valore è 1 o 2, tre se il valore è 3, altrimenti stampa numero diverso da 0, 1, 2, 3.

In Python non esiste il costrutto switch-case, ma è tuttavia possibile ottenere lo stesso risultato semplicemente usando un if-elif-else:


# esempio in Python
if n == 0:
print('zero')
elif n == 1 or n == 2:
print('uno o due')
elif n == 3:
print('tre')
else:
print('numero diverso da 0, 1, 2, 3')

Esiste anche un caso particolare di utilizzo dello switch dove per ogni case corrisponde una chiamata ad una funzione.

Il seguente esempio mostra parte di un programma in C che converte la variabile num in binario, ottale, o esadecimale a seconda della lettera indicata dalla variabile conv:


// esempio in C
switch (conv) {
// binario
case 'b':
res = bin(num);
break;
// ottale
case 'o':
res = oct(num);
break;
// esadecimale
case 'x':
res = hex(num);
break;
default:
printf('Conversione non valida');
break;
}

Un risultato simile si può ottenere in Python usando i dizionari:


# esempio in Python
num = int(input('Inserisci un numero: '))
conv = input('Inserisci tipo di conversione [b/o/x]: ')
funcs = dict(b=bin, o=oct, x=hex)
if conv in {'b', 'o', 'x'}:
func = funcs[conv]
res = func(num)
print('Il risultato della conversione è:', res)
else:
print('Conversione non valida')

Questo esempio:

  • chiede all’utente di inserire num e conv;
  • definisce un dizionario funcs che mappa le lettere b/o/x alle funzioni di conversione corrispondenti;
  • verifica se la conversione specificata è valida o meno;
  • se lo è, ottiene la funzione corrispondente (func) alla lettera (conv) e la usa per convertire il numero;
  • se non lo è, stampa un messaggio d’errore.

Nella prossima lezione vedremo come utilizzare i cicli.

Se vuoi aggiornamenti su Programmazione inserisci la tua e-mail nel box qui sotto:

Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi:

16 / 40

Cicli: for e while

Ultime notizie

ThisPersonDoesNotExist: generatore automatico di volti realistici

Microsoft: disattivare Windows Defender non risolve i problemi di WSL

Python 3.8 su Fedora 31?

Copyright: cosa prevede (veramente) la Direttiva

Red Hat: basta con MongoDB, largo a PostgreSQL

I Video di HTML.it

Disegnare con i fuochi d’artificio in Photoshop – parte 1

Percorsi formativi correlati
Android Mobile Developer

Android Mobile Developer

5
guide
250 ore

Tutti i linguaggi per diventare uno sviluppatore di app per Android.

DB Administrator

DB Administrator

4
guide
80 ore

Come creare applicazioni per il Web con PHP e MySQL per il DBMS.

iOS Mobile Developer

iOS Mobile Developer

4
guide
180 ore

Tutte le principali tecnologie per diventare uno sviluppatore mobile per iOS.

Java Developer

Java Developer

7
guide
300 ore

I fondamentali per lo sviluppo di applicazioni multi piattaforma con Java.

Java Security Expert

Java Security Expert

5
guide
120 ore

Diventare degli esperti in tema di sicurezza delle applicazioni Java.

Maker

Maker

2
guide
50 ore

Usare Raspberry Pi e Arduino per avvicinarsi al mondo dei Maker e dell’IoT.

NoSQL DB Expert

NoSQL DB Expert

5
guide
200 ore

Le principali guide di HTML.it per diventare un esperto dei database NoSQL.

PHP Cloud Developer

PHP Cloud Developer

7
guide
80 ore

Ecco come i professionisti creano applicazioni per il Cloud con PHP.

PHP Developer

PHP Developer

5
guide
100 ore

Lo sviluppo professionale di applicazioni in PHP alla portata di tutti.

PHP e JavaScript Developer

PHP e JavaScript Developer

6
guide
100 ore

Come sviluppare applicazioni Web dinamiche con PHP e JavaScript.

PHP Framework Expert

PHP Framework Expert

6
guide
120 ore

Realizzare applicazioni per il Web utilizzando i framework PHP.

PHP SysAdmin

PHP SysAdmin

6
guide
80 ore

Creare applicazioni PHP e gestire l’ambiente di sviluppo come un pro.

Sviluppare un eCommerce con PHP

Sviluppare un eCommerce con PHP

5
guide
120 ore

Fare gli eCommerce developer con Magento, Prestashop e WooCommerce.

Web &amp; Mobile Designer

Web & Mobile Designer

5
guide
300 ore

Percorso base per avvicinarsi al web design con un occhio al mobile.

WordPress Developer

WordPress Developer

5
guide
150 ore

Realizzare siti Web e Web application con WordPress a livello professionale.

Ti consigliamo anche

Guida Python

  • 40 Lezioni
  • Moderata

Python è uno dei linguaggi di programmazione più usati al mondo. Grazie alla sua sintassi asciutta e potente, ed al supporto multipiattaforma, è utilizzato per moltissime tipologie di applicazioni, dal networking, al web, fino al machine learning. Questa guida completa e pratica parte dalle basi del linguaggio, per arrivare ad apprenderne anche le funzionalità più complesse.

  • uncompyle6: un Python cross-version decompiler open source
  • JavaScript è il linguaggio più popolare del 2018 (per StackOverflow)

Python: cifrare file con password in modo sicuro

Utilizzare il modulo cryptography, ed alcuni opportuni accorgimenti, per cifrare (e decifrare) con password e in modo sicuro un file di testo.

  • Cybersecurity e la piaga delle password riciclate
  • Cybersecurity: access token più rischiosi delle password?

Python 3.8 su Fedora 31?

Python e JavaScript, meglio se insieme

Python: non solo Web development

  • Guide
  • Approfondimenti
  • Script
  • Q&A
  • Software
  • Tutorial
  • Videogiochi
  • Tag Software
  • News
  • Video
  • Forum
  • Chi siamo
  • Pubblicità
  • Contatti
  • Cookie policy
  • Privacy policy
  • Privacy Policy Newsletter
© HTML.it 1997-2019 | Triboo Media – P. IVA 06933670967 | HTML.it è un periodico telematico reg. Trib. Roma n. 309/2008 | 2.9.5