Python - Tipi di Dati

Benvenuti, aspiranti programmatori! Oggi ci immergeremo nel fascinante mondo dei tipi di dati di Python. Come il vostro insegnante di informatica amichevole, sono entusiasta di guidarvi attraverso questo aspetto essenziale della programmazione in Python. Prendete quindi il vostro taccuino virtuale e iniziamo questo viaggio insieme!

Python - Data Types

Tipi di Dati in Python

Nella programmazione, i tipi di dati sono come contenitori diversi per memorizzare varie tipologie di informazioni. Immagina di organizzare una festa e di aver bisogno di contenitori diversi per oggetti diversi: piatti per il cibo, bicchieri per i drink e scatole per i regali. Allo stesso modo, in Python, utilizziamo diversi tipi di dati per memorizzare diversi tipi di dati.

Iniziamo con un esempio semplice:

name = "Alice"
age = 25
height = 5.7
is_student = True

In questo frammento di codice, abbiamo utilizzato quattro diversi tipi di dati:

  • name è una stringa (testo)
  • age è un intero (numero intero)
  • height è un numero in virgola mobile (float)
  • is_student è un booleano (True o False)

Ogni una di queste variabili contiene un tipo diverso di dati, proprio come utilizziamo contenitori diversi per diversi oggetti alla nostra festa.

Tipi di Tipi di Dati di Python

Python offre diversi tipi di dati integrati. Esploriamoli uno per uno:

1. Tipi Numerici

a. Intero (int)

Gli interi sono numeri interi, positivi o negativi, senza decimali.

my_age = 30
temperature = -5

Qui, sia my_age che temperature sono interi. Puoi eseguire varie operazioni matematiche con gli interi:

x = 10
y = 3
print(x + y)  # Somma: 13
print(x - y)  # Sottrazione: 7
print(x * y)  # Moltiplicazione: 30
print(x / y)  # Divisione: 3.3333... (Nota: Questo restituisce实际上 un float)
print(x // y) # Divisione con arrotondamento verso il basso: 3
print(x % y)  # Modulo (resto): 1
print(x ** y) # Potenza: 1000

b. Numero in Virgola Mobile (float)

I numeri in virgola mobile sono numeri con il punto decimale.

pi = 3.14159
gravity = 9.81

I numeri in virgola mobile possono essere utilizzati nei calcoli proprio come gli interi:

radius = 5
area = pi * (radius ** 2)
print(f"L'area del cerchio è {area:.2f}")  # Output: L'area del cerchio è 78.54

c. Numero Complesso

I numeri complessi hanno una parte reale e una parte immaginaria, denotata da 'j'.

z = 2 + 3j
print(z.real)  # Output: 2.0
print(z.imag)  # Output: 3.0

2. Tipi di Sequenza

a. Stringa (str)

Le stringhe sono sequenze di caratteri, racchiuse tra virgolette singole o doppie.

greeting = "Ciao, Mondo!"
name = 'Alice'
multi_line = """Questa è una
stringa
multi-linea."""

Le stringhe hanno molti metodi utili:

message = "Python è fantastico"
print(message.upper())  # Output: PYTHON È FANTASTICO
print(message.split())  # Output: ['Python', 'è', 'fantastico']
print(len(message))     # Output: 20 (lunghezza della stringa)

b. Elenco (list)

Gli elenchi sono sequenze ordinate e modificabili, denotate da parentesi quadre.

fruits = ["mela", "banana", "ciliegia"]
numbers = [1, 2, 3, 4, 5]
mixed = [1, "due", 3.0, [4, 5]]

Gli elenchi sono versatili e permettono varie operazioni:

fruits.append("arancia")  # Aggiungi un elemento
fruits.remove("banana")  # Rimuovi un elemento
print(fruits[0])          # Accesso per indice: mela
print(fruits[-1])         # Ultimo elemento: arancia
print(fruits[1:3])        # Fettatura: ['ciliegia', 'arancia']

c. tupla (tuple)

Le tuple sono sequenze ordinate e immutabili, denotate da parentesi tonde.

coordinates = (4, 5)
rgb = (255, 0, 128)

Le tuple sono simili agli elenchi ma non possono essere modificate dopo la creazione:

print(coordinates[0])  # Accesso per indice: 4
# coordinates[0] = 6   # Questo genererebbe un errore

3. Tipo di Mappatura: Dizionario (dict)

I dizionari memorizzano coppie chiave-valore, denotate da parentesi graffe.

person = {
"name": "Bob",
"age": 30,
"city": "New York"
}

I dizionari sono estremamente utili per dati strutturati:

print(person["name"])   # Accesso per chiave: Bob
person["job"] = "Sviluppatore"  # Aggiungi una nuova coppia chiave-valore
del person["age"]       # Rimuovi una coppia chiave-valore
print(person.keys())    # Ottieni tutte le chiavi
print(person.values())  # Ottieni tutti i valori

4. Tipi di Insieme

a. Insieme (set)

Gli insiemi sono raccolte disordinate di elementi unici, denotate da parentesi graffe.

fruits = {"mela", "banana", "ciliegia"}
numbers = {1, 2, 3, 4, 5}

Gli insiemi sono grandi per rimuovere duplicati e operazioni sugli insiemi:

fruits.add("arancia")
fruits.remove("banana")
print("mela" in fruits)  # Verifica l'appartenenza: True

set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1.union(set2))        # Unione: {1, 2, 3, 4, 5}
print(set1.intersection(set2)) # Intersezione: {3}

b. Insieme Immutabile (frozenset)

Gli insiemi immutabili sono insiemi che non possono essere modificati.

fs = frozenset([1, 2, 3])
# fs.add(4)  # Questo genererebbe un errore

Conversione dei Tipi di Dati di Python

A volte, è necessario convertire i dati da un tipo all'altro. Python fornisce funzioni integrate per questo scopo:

# Stringa a Intero
age_str = "25"
age_int = int(age_str)
print(age_int + 5)  # Output: 30

# Intero a Stringa
number = 42
number_str = str(number)
print("La risposta è " + number_str)  # Output: La risposta è 42

# Stringa a Numero in Virgola Mobile
price_str = "19.99"
price_float = float(price_str)
print(price_float * 2)  # Output: 39.98

# Elenco a Insieme (rimuove duplicati)
numbers = [1, 2, 2, 3, 3, 4, 5]
unique_numbers = set(numbers)
print(unique_numbers)  # Output: {1, 2, 3, 4, 5}

Funzioni di Conversione dei Tipi di Dati

Ecco una tabella comoda dei tipi di conversione dei dati comunemente utilizzati:

Funzione Descrizione Esempio
int(x) Converte x in un intero int("10")10
float(x) Converte x in un numero in virgola mobile float("3.14")3.14
str(x) Converte x in una stringa str(42)"42"
list(x) Converte x in un elenco list("ciao")['c', 'i', 'a', 'o']
tuple(x) Converte x in una tupla tuple([1, 2, 3])(1, 2, 3)
set(x) Converte x in un insieme set([1, 2, 2, 3]){1, 2, 3}
dict(x) Crea un dizionario. x deve essere una sequenza di coppie chiave-valore dict([('a', 1), ('b', 2)]){'a': 1, 'b': 2}
bool(x) Converte x in un valore booleano bool(1)True, bool(0)False

Ricorda, queste funzioni non cambiano il valore originale; creano un nuovo valore del tipo desiderato.

E così, cari studenti, abbiamo viaggiato attraverso la terra dei tipi di dati di Python, dai semplici interi ai complessi dizionari. Ogni tipo di dati è uno strumento potente nella tua scatola degli strumenti di programmazione, pronto ad aiutarti a risolvere vari problemi.

Man mano che continui la tua avventura Python, troverai te stesso utilizzando questi tipi di dati quotidianamente. Sono i mattoni dei tuoi programmi, gli ingredienti delle tue ricette di codifica. Quindi, gioca con essi, esperimenta e, più importante, divertiti!

Ricorda, nella programmazione, come nella vita, non si tratta di farlo bene al primo tentativo. Si tratta di imparare, crescere e godersi il processo. Quindi, non aver paura di fare errori – sono solo pietre miliari sulla tua strada per diventare un maestro di Python!

Ora, vai avanti e codifica! E ricorda sempre: in Python, come nella vita, il tipo importa! ?✨

Credits: Image by storyset