From 94035ee073a3cec673fcbd3d3b381e32b5bcacc9 Mon Sep 17 00:00:00 2001 From: hifly81 Date: Wed, 29 Oct 2025 07:49:47 -0700 Subject: [PATCH] added args in function --- 05_funzioni_moduli.ipynb | 56 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/05_funzioni_moduli.ipynb b/05_funzioni_moduli.ipynb index 4704436..d01aa5f 100755 --- a/05_funzioni_moduli.ipynb +++ b/05_funzioni_moduli.ipynb @@ -55,19 +55,71 @@ "metadata": {}, "outputs": [], "source": [ - "# Definition of a function with positional arguments\n", + "# Definizione di una funzione con argomenti posizionali\n", "def greet(name, surname):\n", " print(f\"Hello, {name} {surname}!\")\n", "\n", "greet(\"Mario\", \"Rossi\")\n", "\n", - "# Definition of a function with keyword arguments\n", + "# Definizione di una funzione con argomenti nominali\n", "def animal_description(species, name):\n", " print(f\"This animal is a {species} named {name}.\")\n", "\n", "animal_description(name=\"Fido\", species=\"dog\")" ] }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Argomenti variabili: *args e **kwargs 🧩\n", + "\n", + "Non sempre è possibile sapere in anticipo quanti argomenti verranno passati a una funzione. In questi casi si possono usare gli **argomenti variabili**.\n", + "\n", + "- **`*args`** (posizionali variabili): permette di passare un numero arbitrario di **argomenti posizionali**. All’interno della funzione, `args` è una *tupla* che contiene tutti i valori passati.\n", + "\n", + "- **`**kwargs`** (nominali variabili): permette di passare un numero arbitrario di **argomenti nominali (keyword)**. All’interno della funzione, `kwargs` è un *dizionario* che associa ogni nome di parametro al suo valore.\n", + "\n", + "Questi meccanismi rendono le funzioni più flessibili e riutilizzabili." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Example with *args\n", + "def sum(*args):\n", + " print(\"Args:\", args)\n", + " return sum(args)\n", + "\n", + "print(sum(2, 4, 6))\n", + "print(sum(1, 2, 3, 4, 5))\n", + "\n", + "# Example con **kwargs\n", + "def person_info(**kwargs):\n", + " print(\"Args:\", kwargs)\n", + " for key, val in kwargs.items():\n", + " print(f\"{key}: {val}\")\n", + "\n", + "person_info(name=\"Luca\", age=30, city=\"Milano\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Riepilogo 📘\n", + "\n", + "| Tipo di argomento | Sintassi | Esempio di uso | Tipo dentro la funzione |\n", + "|--------------------|-----------|----------------|--------------------------|\n", + "| Posizionali | `def f(a, b)` | `f(1, 2)` | Variabili separate |\n", + "| Nominali (keyword) | `def f(a=1)` | `f(a=3)` | Variabili separate |\n", + "| Variabili (*args) | `def f(*args)` | `f(1,2,3)` | Tupla |\n", + "| Variabili (**kwargs)| `def f(**kwargs)` | `f(x=1, y=2)` | Dizionario |" + ] + }, { "cell_type": "markdown", "metadata": {},