# Variabili e Tipi di Dato Base ## Variabili in Python Una **variabile** è uno spazio di memoria che può contenere un valore. In Python, le variabili vengono create automaticamente al momento dell'assegnazione di un valore, senza bisogno di dichiararle esplicitamente come in altri linguaggi. ### Assegnazione di variabili In Python, l'assegnazione di valori alle variabili avviene con l'operatore di assegnazione `=`. ```python # Assegniamo un numero intero a una variabile x = 10 # Assegniamo una stringa a una variabile nome = "Mario" # Assegniamo un numero decimale (float) a una variabile y = 3.14 ``` A differenza di molti altri linguaggi, in Python non è necessario dichiarare il tipo di una variabile. Python è un linguaggio a **tipizzazione dinamica**, il che significa che il tipo della variabile viene determinato automaticamente in base al valore assegnato. ### Modificare il tipo di una variabile Le variabili in Python possono cambiare tipo durante l'esecuzione del programma. Ad esempio, una variabile che inizia come intero può diventare una stringa successivamente: ```python x = 10 # x è un intero x = "ciao" # x è ora una stringa ``` --- ## Tipi di Dato Base Python supporta diversi tipi di dati, tra cui numeri interi, numeri decimali (float), stringhe e valori booleani. ### Numeri interi (int) I numeri interi sono numeri senza parte decimale, come `10`, `-3`, `1000`. ```python x = 5 y = -2 print(x, y) # Output: 5 -2 ``` ### Numeri decimali (float) I numeri decimali (o floating point) sono numeri che hanno una parte decimale, come `3.14`, `-0.001`, `2.0`. ```python pi = 3.14159 saldo = -150.75 print(pi, saldo) # Output: 3.14159 -150.75 ``` ### Stringhe (str) Le stringhe sono sequenze di caratteri racchiuse tra virgolette singole `'` o doppie `"`. Python supporta anche la concatenazione di stringhe con l'operatore `+`. ```python nome = "Mario" cognome = 'Rossi' nome_completo = nome + " " + cognome print(nome_completo) # Output: Mario Rossi ``` #### Operazioni con le stringhe È possibile accedere ai singoli caratteri di una stringa utilizzando gli indici e concatenare stringhe con l'operatore `+`: ```python nome = "Python" print(nome[0]) # Output: P (primo carattere) print(nome[-1]) # Output: n (ultimo carattere) ``` ### Valori booleani (bool) I valori booleani possono essere `True` o `False`. Vengono utilizzati principalmente nei confronti e nei costrutti condizionali. ```python vero = True falso = False print(vero, falso) # Output: True False ``` I valori booleani vengono spesso utilizzati con gli operatori di confronto come `==`, `!=`, `<`, `>`, `<=`, `>=`. ```python x = 10 y = 5 risultato = x > y # Confronta se x è maggiore di y print(risultato) # Output: True ``` --- ## Casting (Conversione di Tipi) In Python, è possibile convertire esplicitamente un tipo di dato in un altro utilizzando le funzioni di **casting**. Ecco alcune delle funzioni di casting più comuni: - **`int()`**: converte un valore in un intero. - **`float()`**: converte un valore in un numero decimale. - **`str()`**: converte un valore in una stringa. - **`bool()`**: converte un valore in booleano. ```python # Convertiamo un numero decimale in intero x = 3.14 x_intero = int(x) print(x_intero) # Output: 3 # Convertiamo un intero in stringa y = 100 y_stringa = str(y) print(y_stringa) # Output: '100' # Convertiamo una stringa in numero numero_str = "50" numero_intero = int(numero_str) print(numero_intero) # Output: 50 ``` --- ## Regole per i nomi delle variabili In Python, ci sono alcune regole da seguire quando si scelgono i nomi delle variabili: - Devono iniziare con una **lettera** (maiuscola o minuscola) o un **underscore** (`_`). - Non possono iniziare con un numero. - Possono contenere lettere, numeri e underscore. - Python distingue tra **maiuscole e minuscole**. Quindi `variabile` e `Variabile` sono due variabili diverse. ```python _nome = "Mario" # Valido eta1 = 25 # Valido 1nome = "Franco" # Non valido (inizia con un numero) ```