Skip to content

Commit 94035ee

Browse files
committed
added args in function
1 parent 4042f71 commit 94035ee

File tree

1 file changed

+54
-2
lines changed

1 file changed

+54
-2
lines changed

05_funzioni_moduli.ipynb

Lines changed: 54 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,19 +55,71 @@
5555
"metadata": {},
5656
"outputs": [],
5757
"source": [
58-
"# Definition of a function with positional arguments\n",
58+
"# Definizione di una funzione con argomenti posizionali\n",
5959
"def greet(name, surname):\n",
6060
" print(f\"Hello, {name} {surname}!\")\n",
6161
"\n",
6262
"greet(\"Mario\", \"Rossi\")\n",
6363
"\n",
64-
"# Definition of a function with keyword arguments\n",
64+
"# Definizione di una funzione con argomenti nominali\n",
6565
"def animal_description(species, name):\n",
6666
" print(f\"This animal is a {species} named {name}.\")\n",
6767
"\n",
6868
"animal_description(name=\"Fido\", species=\"dog\")"
6969
]
7070
},
71+
{
72+
"cell_type": "markdown",
73+
"metadata": {},
74+
"source": [
75+
"### Argomenti variabili: *args e **kwargs 🧩\n",
76+
"\n",
77+
"Non sempre è possibile sapere in anticipo quanti argomenti verranno passati a una funzione. In questi casi si possono usare gli **argomenti variabili**.\n",
78+
"\n",
79+
"- **`*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",
80+
"\n",
81+
"- **`**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",
82+
"\n",
83+
"Questi meccanismi rendono le funzioni più flessibili e riutilizzabili."
84+
]
85+
},
86+
{
87+
"cell_type": "code",
88+
"execution_count": null,
89+
"metadata": {},
90+
"outputs": [],
91+
"source": [
92+
"# Example with *args\n",
93+
"def sum(*args):\n",
94+
" print(\"Args:\", args)\n",
95+
" return sum(args)\n",
96+
"\n",
97+
"print(sum(2, 4, 6))\n",
98+
"print(sum(1, 2, 3, 4, 5))\n",
99+
"\n",
100+
"# Example con **kwargs\n",
101+
"def person_info(**kwargs):\n",
102+
" print(\"Args:\", kwargs)\n",
103+
" for key, val in kwargs.items():\n",
104+
" print(f\"{key}: {val}\")\n",
105+
"\n",
106+
"person_info(name=\"Luca\", age=30, city=\"Milano\")"
107+
]
108+
},
109+
{
110+
"cell_type": "markdown",
111+
"metadata": {},
112+
"source": [
113+
"#### Riepilogo 📘\n",
114+
"\n",
115+
"| Tipo di argomento | Sintassi | Esempio di uso | Tipo dentro la funzione |\n",
116+
"|--------------------|-----------|----------------|--------------------------|\n",
117+
"| Posizionali | `def f(a, b)` | `f(1, 2)` | Variabili separate |\n",
118+
"| Nominali (keyword) | `def f(a=1)` | `f(a=3)` | Variabili separate |\n",
119+
"| Variabili (*args) | `def f(*args)` | `f(1,2,3)` | Tupla |\n",
120+
"| Variabili (**kwargs)| `def f(**kwargs)` | `f(x=1, y=2)` | Dizionario |"
121+
]
122+
},
71123
{
72124
"cell_type": "markdown",
73125
"metadata": {},

0 commit comments

Comments
 (0)