Definizione di Espressione
Un’espressione in Python può essere vista come una combinazione di valori, variabili, operatori e chiamate a funzioni che vengono interpretati per produrre un risultato. Ad esempio:
print(3 + 4)
Questa è un’espressione che somma due numeri e restituisce il valore 7
.
Componenti di un’Espressione
Un’espressione può includere:
- Valori costanti: Numeri, stringhe, booleani, ecc. (e.g.,
42
,"hello"
,True
) - Variabili: Identificatori che puntano a valori (e.g.,
x
,nome
) - Operatori: Simboli che eseguono operazioni sui valori (e.g.,
+
,*
,and
,is
) - Chiamate a funzioni: Funzioni incorporate o definite dall’utente (e.g.,
len(lista)
,max(a, b)
)
Tipi di Espressioni
Le espressioni in Python possono variare in complessità. Alcune delle principali categorie includono:
- Espressioni letterali: Quando un valore è rappresentato direttamente (e.g.,
42
,'Python'
). - Espressioni aritmetiche: Combinano numeri e operatori aritmetici (e.g.,
3 + 4 * 2
). - Espressioni logiche: Usano operatori logici come and, or e not (e.g.,
True
andFalse
). - Espressioni di confronto: Confrontano valori usando operatori come
>
,<
,==
(e.g.,5 > 3
). - Espressioni di assegnazione: Assegnano valori a variabili (e.g.,
x = 10
). - Espressioni di chiamata: Chiamano funzioni o metodi (e.g.,
len("Python")
).
La Valutazione delle Espressioni in Python
Python valuta le espressioni seguendo regole ben definite che variano a seconda del tipo di espressione e della presenza di operatori. La valutazione delle espressioni avviene da sinistra a destra, rispettando la precedenza degli operatori e le parentesi per forzare un ordine specifico.
Precedenza e Associatività degli Operatori
Gli operatori in Python hanno una precedenza, che determina l’ordine in cui le operazioni vengono eseguite. Gli operatori con precedenza maggiore vengono valutati per primi. Se più operatori hanno la stessa precedenza, si considera l’associatività per determinare l’ordine di valutazione (ad esempio, la maggior parte degli operatori sono associativi a sinistra).
Operatore | Descrizione | Precedenza |
---|---|---|
** | Esponenziazione | Alto |
* , / , % | Moltiplicazione, divisione | Medio |
+ , - | Addizione, sottrazione | Basso |
== , != , > | Confronto | Più basso |
and , or | Operatori logici | Molto basso |
Esempio di Valutazione con Precedenza:
print(3 + 4 * 2 ** 2)
- L’operatore con la precedenza più alta è
**
, quindi2 ** 2
viene valutato prima, ottenendo4
. - Successivamente, l’operatore
*
viene valutato, quindi4 * 4
dà16
. - Infine,
3 + 16
restituisce il risultato finale,19
.
Uso delle Parentesi
Le parentesi possono essere utilizzate per sovrascrivere la precedenza degli operatori e forzare un ordine specifico nella valutazione delle espressioni. Ad esempio:
print((3 + 4) * 2)
In questo caso, l’espressione all’interno delle parentesi viene valutata per prima, ottenendo 7
, e poi viene moltiplicata per 2
, restituendo 14
.