Skip to content

Commit f546ff4

Browse files
committed
added method join in section 03
1 parent dd1d1ab commit f546ff4

File tree

1 file changed

+110
-41
lines changed

1 file changed

+110
-41
lines changed

03_strutture_dati.ipynb

Lines changed: 110 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,40 @@
126126
"- **Metodi utili**: `.append()`, `.remove()`, `.pop()`, `.sort()`, `len()`."
127127
]
128128
},
129+
{
130+
"cell_type": "markdown",
131+
"id": "a9d80d24",
132+
"metadata": {},
133+
"source": [
134+
"---\n",
135+
"### Il metodo `join()` 🧩\n",
136+
"\n",
137+
"Il metodo **`join()`** è un potente metodo delle stringhe, ma viene utilizzato per operare su strutture dati iterabili come le liste. Serve a concatenare tutti gli elementi di una lista (o tupla) in una singola stringa, utilizzando un **separatore** specificato.\n",
138+
"\n",
139+
"La sintassi è: `separatore.join(lista_di_stringhe)`.\n",
140+
"\n",
141+
"È fondamentale che tutti gli elementi dell'iterable siano di tipo stringa, altrimenti Python genererà un errore.\n",
142+
"\n",
143+
"**Esempio:**\n",
144+
"```python\n",
145+
"parole = [\"Ciao\", \"mondo\", \"Python\"]\n",
146+
"frase = \" \".join(parole) # Unisce le parole con uno spazio\n",
147+
"print(frase) # Output: Ciao mondo Python\n",
148+
"\n",
149+
"codice = [\"codice\", \"per\", \"unire\"]\n",
150+
"underscore_codice = \"-\".join(codice) # Unisce con un trattino\n",
151+
"print(underscore_codice) # Output: codice-per-unire\n",
152+
"```"
153+
]
154+
},
155+
{
156+
"cell_type": "markdown",
157+
"id": "73c5a43b",
158+
"metadata": {},
159+
"source": [
160+
"---"
161+
]
162+
},
129163
{
130164
"cell_type": "markdown",
131165
"id": "73c5a43b",
@@ -169,6 +203,14 @@
169203
"- **Casi d'uso**: Rappresentare record fissi (es. coordinate, un'anagrafica che non cambia), restituire valori multipli da una funzione."
170204
]
171205
},
206+
{
207+
"cell_type": "markdown",
208+
"id": "4ca75b23",
209+
"metadata": {},
210+
"source": [
211+
"---"
212+
]
213+
},
172214
{
173215
"cell_type": "markdown",
174216
"id": "4ca75b23",
@@ -222,6 +264,14 @@
222264
"- **Metodi utili**: `.add()`, `.remove()`, `.union()`, `.intersection()`, `in`."
223265
]
224266
},
267+
{
268+
"cell_type": "markdown",
269+
"id": "82c703f1",
270+
"metadata": {},
271+
"source": [
272+
"---"
273+
]
274+
},
225275
{
226276
"cell_type": "markdown",
227277
"id": "82c703f1",
@@ -275,8 +325,13 @@
275325
"cell_type": "markdown",
276326
"metadata": {},
277327
"source": [
278-
"---",
279-
"\n",
328+
"---"
329+
]
330+
},
331+
{
332+
"cell_type": "markdown",
333+
"metadata": {},
334+
"source": [
280335
"## 5. Iteratori e la parola chiave `for`\n",
281336
"\n",
282337
"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",
@@ -299,8 +354,13 @@
299354
"cell_type": "markdown",
300355
"metadata": {},
301356
"source": [
302-
"---",
303-
"\n",
357+
"---"
358+
]
359+
},
360+
{
361+
"cell_type": "markdown",
362+
"metadata": {},
363+
"source": [
304364
"## 6. Spacchettare le collezioni: gli operatori `*` e `**`\n",
305365
"\n",
306366
"In Python, i caratteri `*` e `**` sono molto utili quando si lavora con le funzioni, specialmente per **spacchettare** (unpacking) il contenuto di collezioni come liste e dizionari, trasformandoli in argomenti singoli.\n",
@@ -366,82 +426,70 @@
366426
"id": "27caec71",
367427
"metadata": {},
368428
"source": [
369-
"### Esercizio 2: Lista numeri\n",
370-
"Crea una lista con 5 numeri, aggiungine uno e stampala ordinata."
429+
"### Esercizio 2: Usare `join()`\n",
430+
"Data la lista `parti_url = [\"http:\", \"\", \"www.python.org\", \"doc\"]`, usa il metodo `join()` per combinarla in un unico URL completo, utilizzando `//` come separatore per i primi due elementi e `/` per i successivi."
371431
]
372432
},
373433
{
374434
"cell_type": "markdown",
375435
"id": "fb64a93c",
376436
"metadata": {},
377437
"source": [
378-
"### Esercizio 3: Tuple coordinate\n",
379-
"Crea una tupla `coordinate` con due valori e stampa il primo."
438+
"### Esercizio 3: Lista numeri\n",
439+
"Crea una lista con 5 numeri, aggiungine uno e stampala ordinata."
380440
]
381441
},
382442
{
383443
"cell_type": "markdown",
384444
"id": "20d6c025",
385445
"metadata": {},
386446
"source": [
387-
"### Esercizio 4: Set animali\n",
388-
"Crea un set con alcuni animali, aggiungi uno nuovo e stampa il risultato."
447+
"### Esercizio 4: Tuple coordinate\n",
448+
"Crea una tupla `coordinate` con due valori e stampa il primo."
389449
]
390450
},
391451
{
392452
"cell_type": "markdown",
393453
"id": "fd738f12",
394454
"metadata": {},
395455
"source": [
396-
"### Esercizio 5: Dizionario studente\n",
397-
"Crea un dizionario `studente` con chiavi `nome`, `età` e `corso`. Stampane i valori."
456+
"### Esercizio 5: Set animali\n",
457+
"Crea un set con alcuni animali, aggiungi uno nuovo e stampa il risultato."
398458
]
399459
},
400460
{
401461
"cell_type": "markdown",
462+
"id": "20d6c025",
402463
"metadata": {},
403464
"source": [
404-
"### Esercizio 6: Comprendere gli iteratori\n",
405-
"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."
465+
"### Esercizio 6: Dizionario studente\n",
466+
"Crea un dizionario `studente` con chiavi `nome`, `età` e `corso`. Stampane i valori."
406467
]
407468
},
408469
{
409-
"cell_type": "code",
410-
"execution_count": null,
470+
"cell_type": "markdown",
411471
"metadata": {},
412-
"outputs": [],
413-
"source": []
472+
"source": [
473+
"### Esercizio 7: Comprendere gli iteratori\n",
474+
"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."
475+
]
414476
},
415477
{
416478
"cell_type": "markdown",
417479
"metadata": {},
418480
"source": [
419-
"### Esercizio 7: Spacchettare una lista (*)\n",
481+
"### Esercizio 8: Spacchettare una lista (*)\n",
420482
"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."
421483
]
422484
},
423-
{
424-
"cell_type": "code",
425-
"execution_count": null,
426-
"metadata": {},
427-
"outputs": [],
428-
"source": []
429-
},
430485
{
431486
"cell_type": "markdown",
432487
"metadata": {},
433488
"source": [
434-
"### Esercizio 8: Spacchettare un dizionario (**)\n",
489+
"### Esercizio 9: Spacchettare un dizionario (**)\n",
435490
"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."
436491
]
437492
},
438-
{
439-
"cell_type": "code",
440-
"execution_count": null,
441-
"metadata": {},
442-
"outputs": [],
443-
"source": []
444-
},
445493
{
446494
"cell_type": "markdown",
447495
"id": "8b2811d0",
@@ -476,12 +524,33 @@
476524
"print(persona['nome'])"
477525
]
478526
},
527+
{
528+
"cell_type": "markdown",
529+
"id": "b3b3b3b3",
530+
"metadata": {},
531+
"source": [
532+
"### Soluzione Esercizio 2: Usare `join()`"
533+
]
534+
},
535+
{
536+
"cell_type": "code",
537+
"execution_count": null,
538+
"id": "651a56c7",
539+
"metadata": {},
540+
"outputs": [],
541+
"source": [
542+
"parti_url = [\"http:\", \"\", \"www.python.org\", \"doc\"]\n",
543+
"url_completo = \"//\".join(parti_url[:2]) + \"/\".join(parti_url[2:])\n",
544+
"\n",
545+
"print(url_completo)"
546+
]
547+
},
479548
{
480549
"cell_type": "markdown",
481550
"id": "17781a63",
482551
"metadata": {},
483552
"source": [
484-
"### Soluzione Esercizio 2: Lista numeri\n"
553+
"### Soluzione Esercizio 3: Lista numeri\n"
485554
]
486555
},
487556
{
@@ -501,7 +570,7 @@
501570
"id": "39825875",
502571
"metadata": {},
503572
"source": [
504-
"### Soluzione Esercizio 3: Tuple coordinate\n"
573+
"### Soluzione Esercizio 4: Tuple coordinate\n"
505574
]
506575
},
507576
{
@@ -520,7 +589,7 @@
520589
"id": "a7c94f75",
521590
"metadata": {},
522591
"source": [
523-
"### Soluzione Esercizio 4: Set animali\n"
592+
"### Soluzione Esercizio 5: Set animali\n"
524593
]
525594
},
526595
{
@@ -540,7 +609,7 @@
540609
"id": "9bcee695",
541610
"metadata": {},
542611
"source": [
543-
"### Soluzione Esercizio 5: Dizionario studente\n"
612+
"### Soluzione Esercizio 6: Dizionario studente\n"
544613
]
545614
},
546615
{
@@ -558,7 +627,7 @@
558627
"cell_type": "markdown",
559628
"metadata": {},
560629
"source": [
561-
"### Soluzione Esercizio 6: Comprendere gli iteratori"
630+
"### Soluzione Esercizio 7: Comprendere gli iteratori"
562631
]
563632
},
564633
{
@@ -586,7 +655,7 @@
586655
"cell_type": "markdown",
587656
"metadata": {},
588657
"source": [
589-
"### Soluzione Esercizio 7: Spacchettare una lista (*)"
658+
"### Soluzione Esercizio 8: Spacchettare una lista (*)"
590659
]
591660
},
592661
{
@@ -608,7 +677,7 @@
608677
"cell_type": "markdown",
609678
"metadata": {},
610679
"source": [
611-
"### Soluzione Esercizio 8: Spacchettare un dizionario (**)"
680+
"### Soluzione Esercizio 9: Spacchettare un dizionario (**)"
612681
]
613682
},
614683
{

0 commit comments

Comments
 (0)