Python è un linguaggio di programmazione interpretato, dinamico e ad alto livello, che supporta vari paradigmi di programmazione, tra cui procedurale, orientato agli oggetti e funzionale. Un elemento fondamentale del linguaggio è la sua capacità di gestire variabili, tipi di dati e operatori in modo semplice ed efficiente. Le variabili in Python sono strumenti essenziali per memorizzare e manipolare dati, mentre i letterali rappresentano valori fissi nel codice sorgente. Gli operatori sono utilizzati per eseguire operazioni su variabili e valori.

Variabili in Python

Definizione e Assegnazione di Variabili

Le variabili sono utilizzate per memorizzare dati che possono essere modificati o utilizzati durante l’esecuzione di un programma. A differenza di altri linguaggi di programmazione, in Python non è necessario dichiarare il tipo di una variabile in modo esplicito; il tipo viene determinato automaticamente in fase di esecuzione, sulla base del valore assegnato.

L’assegnazione di una variabile in Python avviene tramite l’operatore di assegnazione =:

x = 5      # Intero
y = 3.14   # Virgola mobile (float)
name = "Python"  # Stringa

print(x, y, name) # Stampa il valore delle tre variabili separate da spazi

In questo esempio:

  • x è una variabile di tipo int (intero),
  • y è di tipo float (numero a virgola mobile),
  • name è di tipo str (stringa).

Tipi di Dati in Python

Tipi di Dati di Base

Python offre vari tipi di dati di base che possono rappresentare numeri, stringhe, valori booleani e altri tipi complessi. Di seguito viene riportata una descrizione dei principali tipi di dati e degli intervalli che possono rappresentare.

  • int: I numeri interi in Python possono essere di lunghezza arbitraria, ovvero non hanno un limite fisso, a differenza di molti altri linguaggi. Ciò significa che gli interi possono crescere quanto necessario fino a esaurire la memoria disponibile. In pratica, il valore minimo e massimo rappresentabile dipende dalla memoria del sistema.

    • Esempio:
    x = 5      # Intero positivo
    y = -10    # Intero negativo
    
    print(x, y)
    
    • Intervallo: non ha limiti predefiniti, solo limitato dalla memoria disponibile del computer.
  • float: I numeri in virgola mobile seguono la rappresentazione in virgola mobile IEEE 754 a 64 bit (doppia precisione). Questo consente di rappresentare un intervallo di valori molto ampio, ma con una precisione limitata.

    • Intervallo: circa da -1.79e308 a 1.79e308, con una precisione di circa 15-17 cifre decimali significative.
    • Esempio:
    pi = 3.14159  # Numero in virgola mobile
    e = 2.71828
    
    print(pi, e)
    
  • complex: I numeri complessi in Python sono rappresentati come a + bj, dove a è la parte reale e b è la parte immaginaria. Ogni parte è rappresentata come un numero in virgola mobile.

    • Esempio:
    z = 2 + 3j  # Numero complesso, con parte reale 2 e parte immaginaria 3
    
    print(z)
    
    • Intervallo: l’intervallo dipende dal tipo di dato float utilizzato per la parte reale e immaginaria, quindi anch’esso è limitato dai limiti del tipo float (circa da -1.79e308 a 1.79e308).
  • str: Le stringhe in Python sono sequenze di caratteri Unicode e non hanno una lunghezza massima predefinita, essendo limitate solo dalla memoria disponibile del sistema.

    • Esempio:
    name = "Python"  # Stringa di caratteri
    
    print(name)
    
    • Intervallo: la lunghezza della stringa è limitata solo dalla memoria disponibile.
  • bool: Il tipo di dato booleano può assumere due soli valori: True o False.

    • Esempio:
    is_valid = True   # Booleano che rappresenta la verità
    has_permission = False
    
    print(is_valid, has_permission)
    
    • Intervallo: valori booleani sono limitati a True e False.

Letterali in Python

I letterali sono valori costanti scritti direttamente nel codice. Python offre diversi tipi di letterali:

Letterali Numerici

I letterali numerici possono essere di tre tipi: interi, virgola mobile e complessi.

  • Interi: Rappresentati da numeri come 10, -5.
  • Float: Rappresentati da numeri con un punto decimale, come 3.14, -0.001.
  • Numeri Complessi: Rappresentati da un numero reale e immaginario, come 2 + 3j.

Letterali Stringa

I letterali stringa in Python possono essere definiti utilizzando singoli o doppi apici ('Hello' o "World"). Python supporta anche stringhe multilinea usando triple virgolette ("""Test""" o '''Test''').

Letterali Booleani

I letterali booleani rappresentano i valori logici True e False.

Letterali Speciali: None

Python supporta un letterale speciale, None, che rappresenta l’assenza di valore o un oggetto nullo.

Operatori in Python

Python offre una vasta gamma di operatori che consentono di eseguire operazioni aritmetiche, logiche e di confronto sui dati. In questa sezione, esamineremo i principali tipi di operatori, fornendo esempi pratici per ognuno di essi.

Operatori Aritmetici

Gli operatori aritmetici vengono utilizzati per eseguire operazioni matematiche tra numeri.

OperatoreDescrizioneEsempioRisultato
+Addizione5 + 38
-Sottrazione10 - 28
*Moltiplicazione7 * 321
/Divisione15 / 35.0
//Divisione intera15 // 27
%Modulo (resto)10 % 31
**Potenza2 ** 38

Esempio:

a = 84
b = 717
result = a * b  # Moltiplicazione
print(result)   # Output: 60228

Operatori di Confronto

Gli operatori di confronto vengono utilizzati per confrontare due valori, restituendo un valore booleano (True o False).

OperatoreDescrizioneEsempioRisultato
==Uguale a5 == 5True
!=Diverso da5 != 3True
>Maggiore di7 > 3True
<Minore di3 < 7True
>=Maggiore o uguale a5 >= 5True
<=Minore o uguale a3 <= 5True

Esempio:

x = 10
y = 20
is_greater = x > y  # Confronto
print(is_greater)   # Output: False

Operatori Logici

Gli operatori logici consentono di combinare espressioni booleane.

OperatoreDescrizioneEsempioRisultato
andRestituisce True se entrambe le condizioni sono vereTrue and FalseFalse
orRestituisce True se almeno una delle condizioni è veraTrue or FalseTrue
notInverte il valore booleanonot TrueFalse

Esempio:

is_valid = True
has_permission = False
access_granted = is_valid and has_permission  # Operatore logico
print(access_granted)  # Output: False

Commenti in Python

In Python, i commenti sono utilizzati per annotare il codice e fornire spiegazioni o informazioni aggiuntive senza influenzare l’esecuzione del programma. Ci sono due tipi principali di commenti in Python:

Commenti su una sola riga

I commenti su una sola riga iniziano con il simbolo #. Tutto ciò che segue il simbolo # sulla stessa riga viene ignorato dall’interprete Python.

# Questo è un commento su una sola riga
x = 10  # Assegna 10 a x

print(x)

Commenti su più righe

I commenti su più righe possono essere creati usando le triple virgolette, sia singole ('''), sia doppie ("""). Anche se questo non è l’uso principale delle stringhe triple, è una pratica comune per scrivere commenti di documentazione o spiegazioni più lunghe.

"""
Questo è un commento su più righe.
Puoi scrivere qualsiasi cosa qui.
"""
y = 20

print(y)

O anche con le triple virgolette singole:

'''
Questo è un altro esempio di commento
su più righe in Python.
'''
z = 30

print(z)

Importanza dei Commenti

I commenti sono importanti per vari motivi:

  • Chiarezza: Aiutano a spiegare il funzionamento del codice, rendendolo più comprensibile per chi lo legge.
  • Documentazione: Possono essere utilizzati per documentare le funzioni e le classi, descrivendo ciò che fanno e come vengono utilizzate.
  • Debugging: Permettono di disattivare temporaneamente parti del codice senza eliminarle, facilitando il debugging.