|
126 | 126 | "- **Metodi utili**: `.append()`, `.remove()`, `.pop()`, `.sort()`, `len()`." |
127 | 127 | ] |
128 | 128 | }, |
| 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 | + }, |
129 | 163 | { |
130 | 164 | "cell_type": "markdown", |
131 | 165 | "id": "73c5a43b", |
|
169 | 203 | "- **Casi d'uso**: Rappresentare record fissi (es. coordinate, un'anagrafica che non cambia), restituire valori multipli da una funzione." |
170 | 204 | ] |
171 | 205 | }, |
| 206 | + { |
| 207 | + "cell_type": "markdown", |
| 208 | + "id": "4ca75b23", |
| 209 | + "metadata": {}, |
| 210 | + "source": [ |
| 211 | + "---" |
| 212 | + ] |
| 213 | + }, |
172 | 214 | { |
173 | 215 | "cell_type": "markdown", |
174 | 216 | "id": "4ca75b23", |
|
222 | 264 | "- **Metodi utili**: `.add()`, `.remove()`, `.union()`, `.intersection()`, `in`." |
223 | 265 | ] |
224 | 266 | }, |
| 267 | + { |
| 268 | + "cell_type": "markdown", |
| 269 | + "id": "82c703f1", |
| 270 | + "metadata": {}, |
| 271 | + "source": [ |
| 272 | + "---" |
| 273 | + ] |
| 274 | + }, |
225 | 275 | { |
226 | 276 | "cell_type": "markdown", |
227 | 277 | "id": "82c703f1", |
|
275 | 325 | "cell_type": "markdown", |
276 | 326 | "metadata": {}, |
277 | 327 | "source": [ |
278 | | - "---", |
279 | | - "\n", |
| 328 | + "---" |
| 329 | + ] |
| 330 | + }, |
| 331 | + { |
| 332 | + "cell_type": "markdown", |
| 333 | + "metadata": {}, |
| 334 | + "source": [ |
280 | 335 | "## 5. Iteratori e la parola chiave `for`\n", |
281 | 336 | "\n", |
282 | 337 | "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 | 354 | "cell_type": "markdown", |
300 | 355 | "metadata": {}, |
301 | 356 | "source": [ |
302 | | - "---", |
303 | | - "\n", |
| 357 | + "---" |
| 358 | + ] |
| 359 | + }, |
| 360 | + { |
| 361 | + "cell_type": "markdown", |
| 362 | + "metadata": {}, |
| 363 | + "source": [ |
304 | 364 | "## 6. Spacchettare le collezioni: gli operatori `*` e `**`\n", |
305 | 365 | "\n", |
306 | 366 | "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 | 426 | "id": "27caec71", |
367 | 427 | "metadata": {}, |
368 | 428 | "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." |
371 | 431 | ] |
372 | 432 | }, |
373 | 433 | { |
374 | 434 | "cell_type": "markdown", |
375 | 435 | "id": "fb64a93c", |
376 | 436 | "metadata": {}, |
377 | 437 | "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." |
380 | 440 | ] |
381 | 441 | }, |
382 | 442 | { |
383 | 443 | "cell_type": "markdown", |
384 | 444 | "id": "20d6c025", |
385 | 445 | "metadata": {}, |
386 | 446 | "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." |
389 | 449 | ] |
390 | 450 | }, |
391 | 451 | { |
392 | 452 | "cell_type": "markdown", |
393 | 453 | "id": "fd738f12", |
394 | 454 | "metadata": {}, |
395 | 455 | "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." |
398 | 458 | ] |
399 | 459 | }, |
400 | 460 | { |
401 | 461 | "cell_type": "markdown", |
| 462 | + "id": "20d6c025", |
402 | 463 | "metadata": {}, |
403 | 464 | "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." |
406 | 467 | ] |
407 | 468 | }, |
408 | 469 | { |
409 | | - "cell_type": "code", |
410 | | - "execution_count": null, |
| 470 | + "cell_type": "markdown", |
411 | 471 | "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 | + ] |
414 | 476 | }, |
415 | 477 | { |
416 | 478 | "cell_type": "markdown", |
417 | 479 | "metadata": {}, |
418 | 480 | "source": [ |
419 | | - "### Esercizio 7: Spacchettare una lista (*)\n", |
| 481 | + "### Esercizio 8: Spacchettare una lista (*)\n", |
420 | 482 | "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." |
421 | 483 | ] |
422 | 484 | }, |
423 | | - { |
424 | | - "cell_type": "code", |
425 | | - "execution_count": null, |
426 | | - "metadata": {}, |
427 | | - "outputs": [], |
428 | | - "source": [] |
429 | | - }, |
430 | 485 | { |
431 | 486 | "cell_type": "markdown", |
432 | 487 | "metadata": {}, |
433 | 488 | "source": [ |
434 | | - "### Esercizio 8: Spacchettare un dizionario (**)\n", |
| 489 | + "### Esercizio 9: Spacchettare un dizionario (**)\n", |
435 | 490 | "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." |
436 | 491 | ] |
437 | 492 | }, |
438 | | - { |
439 | | - "cell_type": "code", |
440 | | - "execution_count": null, |
441 | | - "metadata": {}, |
442 | | - "outputs": [], |
443 | | - "source": [] |
444 | | - }, |
445 | 493 | { |
446 | 494 | "cell_type": "markdown", |
447 | 495 | "id": "8b2811d0", |
|
476 | 524 | "print(persona['nome'])" |
477 | 525 | ] |
478 | 526 | }, |
| 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 | + }, |
479 | 548 | { |
480 | 549 | "cell_type": "markdown", |
481 | 550 | "id": "17781a63", |
482 | 551 | "metadata": {}, |
483 | 552 | "source": [ |
484 | | - "### Soluzione Esercizio 2: Lista numeri\n" |
| 553 | + "### Soluzione Esercizio 3: Lista numeri\n" |
485 | 554 | ] |
486 | 555 | }, |
487 | 556 | { |
|
501 | 570 | "id": "39825875", |
502 | 571 | "metadata": {}, |
503 | 572 | "source": [ |
504 | | - "### Soluzione Esercizio 3: Tuple coordinate\n" |
| 573 | + "### Soluzione Esercizio 4: Tuple coordinate\n" |
505 | 574 | ] |
506 | 575 | }, |
507 | 576 | { |
|
520 | 589 | "id": "a7c94f75", |
521 | 590 | "metadata": {}, |
522 | 591 | "source": [ |
523 | | - "### Soluzione Esercizio 4: Set animali\n" |
| 592 | + "### Soluzione Esercizio 5: Set animali\n" |
524 | 593 | ] |
525 | 594 | }, |
526 | 595 | { |
|
540 | 609 | "id": "9bcee695", |
541 | 610 | "metadata": {}, |
542 | 611 | "source": [ |
543 | | - "### Soluzione Esercizio 5: Dizionario studente\n" |
| 612 | + "### Soluzione Esercizio 6: Dizionario studente\n" |
544 | 613 | ] |
545 | 614 | }, |
546 | 615 | { |
|
558 | 627 | "cell_type": "markdown", |
559 | 628 | "metadata": {}, |
560 | 629 | "source": [ |
561 | | - "### Soluzione Esercizio 6: Comprendere gli iteratori" |
| 630 | + "### Soluzione Esercizio 7: Comprendere gli iteratori" |
562 | 631 | ] |
563 | 632 | }, |
564 | 633 | { |
|
586 | 655 | "cell_type": "markdown", |
587 | 656 | "metadata": {}, |
588 | 657 | "source": [ |
589 | | - "### Soluzione Esercizio 7: Spacchettare una lista (*)" |
| 658 | + "### Soluzione Esercizio 8: Spacchettare una lista (*)" |
590 | 659 | ] |
591 | 660 | }, |
592 | 661 | { |
|
608 | 677 | "cell_type": "markdown", |
609 | 678 | "metadata": {}, |
610 | 679 | "source": [ |
611 | | - "### Soluzione Esercizio 8: Spacchettare un dizionario (**)" |
| 680 | + "### Soluzione Esercizio 9: Spacchettare un dizionario (**)" |
612 | 681 | ] |
613 | 682 | }, |
614 | 683 | { |
|
0 commit comments