Skip to content

Commit f0d7601

Browse files
committed
some refactoring
1 parent 597c981 commit f0d7601

File tree

4 files changed

+83
-40
lines changed

4 files changed

+83
-40
lines changed

01_primi_passi.ipynb

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
"- **Editor di testo:** Un programma leggero (come Blocco Note su Windows o TextEdit su macOS) che ti permette di scrivere testo semplice. È perfetto per iniziare.\n",
3939
"- **IDE:** Un ambiente più completo che include un editor, un debugger, un compilatore e altri strumenti. È ottimo per progetti complessi, ma può essere più impegnativo per i principianti.\n",
4040
"\n",
41-
"Per questo corso, un **editor di testo** è più che sufficiente. Ti consigliamo **[Visual Studio Code (VS Code)](https://code.visualstudio.com/)**, che è gratuito, leggero e disponibile per tutti i sistemi operativi."
41+
"Per questo corso, un **editor di testo** è più che sufficiente. Ti consigliamo **[Visual Studio Code (VS Code)](https://code.visualstudio.com/)**, che è gratuito, leggero e disponibile per tutti i sistemi operativi, nel caso di utilizzo di un IDE."
4242
]
4343
},
4444
{
@@ -71,7 +71,7 @@
7171
"---\n",
7272
"## 2. Il tuo primo programma: \"Hello, World!\"\n",
7373
"\n",
74-
"Ora che hai tutto il necessario, possiamo scrivere il nostro primo programma. In Python, stampare il messaggio \"Hello, World!\" è semplice grazie alla funzione `print()`."
74+
"Ora che hai tutto il necessario, possiamo scrivere il nostro primo programma. In Python, stampare il messaggio \"Hello, World!\" è possibile grazie alla funzione `print()`."
7575
]
7676
},
7777
{
@@ -316,7 +316,7 @@
316316
"id": "jupyter_section_2_option_3",
317317
"metadata": {},
318318
"source": [
319-
"#### Jupyter Online (senza installazione)\n",
319+
"#### Opzione 3: Jupyter Online (senza installazione)\n",
320320
"\n",
321321
"Se non vuoi installare nulla, puoi usare servizi online come **Google Colab** o **JupyterLite** che ti permettono di usare un'interfaccia Jupyter direttamente nel browser. Ti basta un account Google per usare Google Colab."
322322
]
@@ -334,22 +334,6 @@
334334
"2. **Celle Markdown**: per scrivere testo formattato, titoli e commenti."
335335
]
336336
},
337-
{
338-
"cell_type": "markdown",
339-
"id": "jupyter_section_3_sub",
340-
"metadata": {},
341-
"source": [
342-
"#### Esempi di formattazione Markdown\n",
343-
"\n",
344-
"- Testo in **grassetto** o *corsivo*.\n",
345-
"- Elenchi puntati:\n",
346-
" - Punto 1\n",
347-
" - Punto 2\n",
348-
"- Link: [Visita il sito di Python](https://www.python.org/)\n",
349-
"\n",
350-
"---"
351-
]
352-
},
353337
{
354338
"cell_type": "markdown",
355339
"id": "jupyter_section_4",

02_sintassi_base.ipynb

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"# ⌨️ Sintassi base di Python\n",
99
"\n",
1010
"---\n",
11-
"Dopo aver configurato il tuo ambiente e aver scritto il tuo primo programma, è il momento di esplorare la grammatica di base del linguaggio. In questa lezione, vedremo la sintassi fondamentale di Python: come si scrivono i commenti, l'importanza dell'indentazione, le variabili, i tipi di dati più comuni, le strutture di controllo del flusso e i cicli. Questi sono i mattoni essenziali che userai in ogni programma."
11+
"Dopo aver configurato il tuo ambiente e aver scritto il tuo primo programma, è il momento di esplorare la grammatica di base del linguaggio. In questa lezione, vedremo la sintassi fondamentale di Python: come si scrivono i commenti, l'importanza dell'indentazione, le variabili, i tipi di dati più comuni, le strutture di controllo del flusso e i cicli. Questi sono i concetti essenziali che userai in ogni programma."
1212
]
1313
},
1414
{
@@ -17,7 +17,7 @@
1717
"metadata": {},
1818
"source": [
1919
"## 1. Commenti\n",
20-
"I commenti sono righe di testo nel codice che vengono ignorate dall'interprete Python. Servono a noi sviluppatori per spiegare cosa fa una determinata parte del codice, renderlo più leggibile e documentarlo. Sono uno strumento essenziale per una buona programmazione.\n",
20+
"I commenti sono righe di testo nel codice che vengono ignorate dall'interprete Python. Servono per spiegare cosa fa una determinata parte del codice, renderlo più leggibile e documentarlo. Sono uno strumento essenziale per una buona programmazione.\n",
2121
"\n",
2222
"### Commento su singola riga\n",
2323
"Si usa il simbolo del cancelletto (`#`) all'inizio della riga. Tutto ciò che segue `#` su quella riga sarà un commento.\n",
@@ -145,7 +145,7 @@
145145
"---\n",
146146
"## 4. Tipi di dati\n",
147147
"\n",
148-
"Ogni pezzo di informazione che manipoliamo in Python ha un tipo. I tipi di dati più comuni sono:\n",
148+
"Ogni informazione che manipoliamo in Python ha un tipo. I tipi di dati più comuni sono:\n",
149149
"\n",
150150
"| Tipo | Descrizione | Esempio |\n",
151151
"|-----------|--------------------------------------------|-----------------------|\n",

03_strutture_dati.ipynb

Lines changed: 76 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,32 @@
2929
"Nelle prossime sezioni, vedremo le caratteristiche uniche di ogni struttura dati e i loro principali utilizzi."
3030
]
3131
},
32+
{
33+
"cell_type": "markdown",
34+
"metadata": {},
35+
"source": [
36+
"---",
37+
"\n",
38+
"## Come accedere agli elementi (Indicizzazione e Chiavi) 🎯\n",
39+
"\n",
40+
"Per accedere a un singolo elemento all'interno di una struttura dati, si usano le **parentesi quadre `[]`**. Il modo in cui si usano, però, cambia a seconda del tipo di struttura.\n",
41+
"\n",
42+
"- Per le **Liste** e le **Tuple**, l'accesso avviene tramite un **indice numerico**. L'indice è la posizione dell'elemento, che in Python parte sempre da **0**. Puoi anche usare indici negativi per contare dalla fine (es. `-1` per l'ultimo elemento).\n",
43+
"```python\n",
44+
"lista_numeri = [10, 20, 30]\n",
45+
"print(lista_numeri[0]) # Stampa il primo elemento: 10\n",
46+
"print(lista_numeri[-1]) # Stampa l'ultimo elemento: 30\n",
47+
"```\n",
48+
"\n",
49+
"- Per i **Dizionari**, l'accesso non è posizionale, ma avviene tramite la **chiave** associata al valore. Le chiavi possono essere stringhe, numeri o tuple.\n",
50+
"```python\n",
51+
"dati_utente = {'nome': 'Anna', 'età': 25}\n",
52+
"print(dati_utente['nome']) # Stampa il valore associato alla chiave 'nome': Anna\n",
53+
"```\n",
54+
"\n",
55+
"- Per i **Set**, l'accesso diretto tramite `[]` non è possibile perché i set sono collezioni **non ordinate**. Puoi solo verificare se un elemento è presente usando l'operatore `in`."
56+
]
57+
},
3258
{
3359
"cell_type": "markdown",
3460
"id": "c4b2f706",
@@ -255,11 +281,11 @@
255281
"\n",
256282
"In Python, la maggior parte delle strutture dati, come liste, tuple e dizionari, sono **oggetti iterabili**. Un oggetto `iterable` è un contenitore che, quando gli viene richiesto, può produrre un **iteratore**.\n",
257283
"\n",
258-
"- Un **Iterable** è un oggetto che sai *puoi* percorrere (es. una lista).\n",
259-
"- Un **Iteratore** è un oggetto che tiene traccia della tua posizione corrente mentre percorri l'iterable, e sa come passare all'elemento successivo. L'iteratore è il vero e proprio motore del processo di iterazione.\n",
284+
"- Un **Iterable** è un oggetto che consente di essere itereato (es. una lista).\n",
285+
"- Un **Iteratore** è un oggetto che tiene traccia della tua posizione corrente mentre percorri l'iterable, e sa come passare all'elemento successivo.\n",
260286
"\n",
261287
"### Come funziona il ciclo `for`?\n",
262-
"Quando scrivi un ciclo `for`, Python fa il lavoro pesante per te. Ad esempio, `for elemento in lista:` esegue questi passaggi:\n",
288+
"Quando scrivi un ciclo `for`, Python usa gli iteratori dietro le quinte. Ad esempio, `for elemento in lista:` esegue questi passaggi:\n",
263289
"\n",
264290
"1. Chiama la funzione `iter()` sulla `lista` per ottenere un **iteratore**.\n",
265291
"2. Ripete la chiamata alla funzione `next()` sull'iteratore per ottenere l'elemento successivo.\n",
@@ -324,12 +350,23 @@
324350
"---"
325351
]
326352
},
353+
{
354+
"cell_type": "markdown",
355+
"metadata": {},
356+
"source": [
357+
"### Esercizio 1: Accesso agli elementi\n",
358+
"Data una lista di colori `colori = ['giallo', 'arancio', 'viola']`, una tupla di coordinate `coordinate = (45, 90)` e un dizionario `persona = {'nome': 'Paolo', 'città': 'Milano'}`, scrivi il codice per stampare:\n",
359+
"1. Il secondo colore (arancio)\n",
360+
"2. L'ultimo elemento delle coordinate\n",
361+
"3. Il nome 'Paolo' dal dizionario"
362+
]
363+
},
327364
{
328365
"cell_type": "markdown",
329366
"id": "27caec71",
330367
"metadata": {},
331368
"source": [
332-
"### Esercizio 1: Lista numeri\n",
369+
"### Esercizio 2: Lista numeri\n",
333370
"Crea una lista con 5 numeri, aggiungine uno e stampala ordinata."
334371
]
335372
},
@@ -338,7 +375,7 @@
338375
"id": "fb64a93c",
339376
"metadata": {},
340377
"source": [
341-
"### Esercizio 2: Tuple coordinate\n",
378+
"### Esercizio 3: Tuple coordinate\n",
342379
"Crea una tupla `coordinate` con due valori e stampa il primo."
343380
]
344381
},
@@ -347,7 +384,7 @@
347384
"id": "20d6c025",
348385
"metadata": {},
349386
"source": [
350-
"### Esercizio 3: Set animali\n",
387+
"### Esercizio 4: Set animali\n",
351388
"Crea un set con alcuni animali, aggiungi uno nuovo e stampa il risultato."
352389
]
353390
},
@@ -356,15 +393,15 @@
356393
"id": "fd738f12",
357394
"metadata": {},
358395
"source": [
359-
"### Esercizio 4: Dizionario studente\n",
396+
"### Esercizio 5: Dizionario studente\n",
360397
"Crea un dizionario `studente` con chiavi `nome`, `età` e `corso`. Stampane i valori."
361398
]
362399
},
363400
{
364401
"cell_type": "markdown",
365402
"metadata": {},
366403
"source": [
367-
"### Esercizio 5: Comprendere gli iteratori\n",
404+
"### Esercizio 6: Comprendere gli iteratori\n",
368405
"Dato l'elenco di colori `colori = ['rosso', 'verde', 'blu']`, simula il comportamento di un ciclo `for`. Ottieni l'iteratore dalla lista usando la funzione `iter()` e, all'interno di un ciclo `while` con un blocco `try-except`, stampa ogni elemento usando `next()`. Gestisci l'eccezione `StopIteration` per terminare il ciclo correttamente."
369406
]
370407
},
@@ -379,7 +416,7 @@
379416
"cell_type": "markdown",
380417
"metadata": {},
381418
"source": [
382-
"### Esercizio 6: Spacchettare una lista (*)\n",
419+
"### Esercizio 7: Spacchettare una lista (*)\n",
383420
"Data una funzione `somma_tre_numeri(a, b, c)` che calcola la somma di tre numeri, e una lista `numeri = [10, 20, 30]`, usa l'operatore `*` per spacchettare la lista e passare i suoi elementi alla funzione. Stampa il risultato."
384421
]
385422
},
@@ -394,7 +431,7 @@
394431
"cell_type": "markdown",
395432
"metadata": {},
396433
"source": [
397-
"### Esercizio 7: Spacchettare un dizionario (**)\n",
434+
"### Esercizio 8: Spacchettare un dizionario (**)\n",
398435
"Data una funzione `registra_utente(username, password)` e un dizionario `credenziali = {'username': 'admin', 'password': 'pass_sicura'}`, usa l'operatore `**` per spacchettare il dizionario e passare le credenziali alla funzione. La funzione dovrebbe stampare un messaggio di conferma."
399436
]
400437
},
@@ -417,12 +454,34 @@
417454
"---"
418455
]
419456
},
457+
{
458+
"cell_type": "markdown",
459+
"metadata": {},
460+
"source": [
461+
"### Soluzione Esercizio 1: Accesso agli elementi\n"
462+
]
463+
},
464+
{
465+
"cell_type": "code",
466+
"execution_count": null,
467+
"metadata": {},
468+
"outputs": [],
469+
"source": [
470+
"colori = ['giallo', 'arancio', 'viola']\n",
471+
"coordinate = (45, 90)\n",
472+
"persona = {'nome': 'Paolo', 'città': 'Milano'}\n",
473+
"\n",
474+
"print(colori[1])\n",
475+
"print(coordinate[-1])\n",
476+
"print(persona['nome'])"
477+
]
478+
},
420479
{
421480
"cell_type": "markdown",
422481
"id": "17781a63",
423482
"metadata": {},
424483
"source": [
425-
"### Soluzione Esercizio 1: Lista numeri\n"
484+
"### Soluzione Esercizio 2: Lista numeri\n"
426485
]
427486
},
428487
{
@@ -442,7 +501,7 @@
442501
"id": "39825875",
443502
"metadata": {},
444503
"source": [
445-
"### Soluzione Esercizio 2: Tuple coordinate\n"
504+
"### Soluzione Esercizio 3: Tuple coordinate\n"
446505
]
447506
},
448507
{
@@ -461,7 +520,7 @@
461520
"id": "a7c94f75",
462521
"metadata": {},
463522
"source": [
464-
"### Soluzione Esercizio 3: Set animali\n"
523+
"### Soluzione Esercizio 4: Set animali\n"
465524
]
466525
},
467526
{
@@ -481,7 +540,7 @@
481540
"id": "9bcee695",
482541
"metadata": {},
483542
"source": [
484-
"### Soluzione Esercizio 4: Dizionario studente\n"
543+
"### Soluzione Esercizio 5: Dizionario studente\n"
485544
]
486545
},
487546
{
@@ -499,7 +558,7 @@
499558
"cell_type": "markdown",
500559
"metadata": {},
501560
"source": [
502-
"### Soluzione Esercizio 5: Comprendere gli iteratori"
561+
"### Soluzione Esercizio 6: Comprendere gli iteratori"
503562
]
504563
},
505564
{
@@ -527,7 +586,7 @@
527586
"cell_type": "markdown",
528587
"metadata": {},
529588
"source": [
530-
"### Soluzione Esercizio 6: Spacchettare una lista (*)"
589+
"### Soluzione Esercizio 7: Spacchettare una lista (*)"
531590
]
532591
},
533592
{
@@ -549,7 +608,7 @@
549608
"cell_type": "markdown",
550609
"metadata": {},
551610
"source": [
552-
"### Soluzione Esercizio 7: Spacchettare un dizionario (**)"
611+
"### Soluzione Esercizio 8: Spacchettare un dizionario (**)"
553612
]
554613
},
555614
{

09_oop.ipynb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
"id": "b5207154",
66
"metadata": {},
77
"source": [
8-
"# 👨‍💻 Programmazione Orientata agli Oggetti (OOP) - Concetti Base e Avanzati\n",
8+
"# 👨‍💻 Programmazione Orientata agli Oggetti (OOP) - Concetti Base\n",
99
"\n",
1010
"La **Programmazione Orientata agli Oggetti (OOP)** è un paradigma di programmazione che organizza il codice intorno a dati e oggetti, piuttosto che a funzioni e logica. L'idea è quella di creare 'oggetti' che rappresentano entità del mondo reale e che combinano dati (attributi) con le funzionalità che li manipolano (metodi)."
1111
]

0 commit comments

Comments
 (0)