|
2 | 2 | "cells": [ |
3 | 3 | { |
4 | 4 | "cell_type": "markdown", |
| 5 | + "id": "8db108fa", |
5 | 6 | "metadata": {}, |
6 | 7 | "source": [ |
7 | 8 | "# 🐍 Primi passi con Python\n", |
8 | 9 | "\n", |
9 | | - "---", |
10 | | - "\n", |
| 10 | + "---\n", |
11 | 11 | "In questa lezione, vedremo cosa ti serve per iniziare, dalle competenze di base agli strumenti per scrivere i primi programmi, fino a scrivere il tuo primo semplice programma \"Hello, World!\"." |
12 | 12 | ] |
13 | 13 | }, |
14 | 14 | { |
15 | 15 | "cell_type": "markdown", |
| 16 | + "id": "038c35b4", |
16 | 17 | "metadata": {}, |
17 | 18 | "source": [ |
18 | 19 | "## 1. Pre-requisiti e strumenti necessari 🛠️\n", |
|
24 | 25 | }, |
25 | 26 | { |
26 | 27 | "cell_type": "markdown", |
| 28 | + "id": "93ebc2be", |
27 | 29 | "metadata": {}, |
28 | 30 | "source": [ |
29 | 31 | "### L'ambiente di sviluppo: Editor o IDE?\n", |
|
38 | 40 | }, |
39 | 41 | { |
40 | 42 | "cell_type": "markdown", |
| 43 | + "id": "5697c534", |
41 | 44 | "metadata": {}, |
42 | 45 | "source": [ |
43 | 46 | "### Installazione di Python e dell'editor\n", |
|
59 | 62 | }, |
60 | 63 | { |
61 | 64 | "cell_type": "markdown", |
| 65 | + "id": "5050cc32", |
62 | 66 | "metadata": {}, |
63 | 67 | "source": [ |
64 | | - "---", |
65 | | - "\n", |
| 68 | + "---\n", |
66 | 69 | "## 2. Il tuo primo programma: \"Hello, World!\"\n", |
67 | 70 | "\n", |
68 | 71 | "Ora che hai tutto il necessario, possiamo scrivere il nostro primo programma. In Python, stampare il messaggio \"Hello, World!\" è semplice grazie alla funzione `print()`." |
|
71 | 74 | { |
72 | 75 | "cell_type": "code", |
73 | 76 | "execution_count": null, |
| 77 | + "id": "603da1ad", |
74 | 78 | "metadata": {}, |
75 | 79 | "outputs": [], |
76 | 80 | "source": [ |
|
79 | 83 | }, |
80 | 84 | { |
81 | 85 | "cell_type": "markdown", |
| 86 | + "id": "7c25e16f", |
82 | 87 | "metadata": {}, |
83 | 88 | "source": [ |
84 | 89 | "**Perché è così importante?** Questo semplice comando ci dimostra tre cose fondamentali:\n", |
|
89 | 94 | }, |
90 | 95 | { |
91 | 96 | "cell_type": "markdown", |
| 97 | + "id": "a37e5665", |
92 | 98 | "metadata": {}, |
93 | 99 | "source": [ |
94 | | - "---", |
95 | | - "\n", |
| 100 | + "---\n", |
96 | 101 | "## 3. Come eseguire uno script Python\n", |
97 | 102 | "\n", |
98 | 103 | "Per eseguire un programma più strutturato, lo salveremo in un file con estensione `.py` e lo eseguiremo da riga di comando (il terminale).\n", |
99 | 104 | "\n", |
| 105 | + "### Interazione con l'utente: la funzione `input()` 💬\n", |
| 106 | + "\n", |
| 107 | + "Mentre `print()` ti permette di mostrare un output, la funzione **`input()`** ti consente di chiedere all'utente di inserire dei dati. Quando Python incontra `input()`, il programma si ferma e attende che l'utente scriva qualcosa e prema Invio. Il testo che l'utente inserisce viene restituito come una stringa. Spiegheremo in dettaglio come funziona `input()` più avanti nel corso, ma per ora puoi vederla in azione nel prossimo esempio." |
| 108 | + ] |
| 109 | + }, |
| 110 | + { |
| 111 | + "cell_type": "markdown", |
| 112 | + "id": "a57a03aa", |
| 113 | + "metadata": {}, |
| 114 | + "source": [ |
100 | 115 | "### Esempio: `saluto.py`\n", |
101 | 116 | "Crea un file di testo e salvalo come `saluto.py` nella tua cartella di lavoro. Al suo interno, scrivi il seguente codice:" |
102 | 117 | ] |
103 | 118 | }, |
104 | 119 | { |
105 | 120 | "cell_type": "code", |
106 | 121 | "execution_count": null, |
| 122 | + "id": "a57a03aa", |
107 | 123 | "metadata": {}, |
108 | 124 | "outputs": [], |
109 | 125 | "source": [ |
|
117 | 133 | }, |
118 | 134 | { |
119 | 135 | "cell_type": "markdown", |
120 | | - "metadata": {}, |
| 136 | + "id": "9bcd3e4b", |
| 137 | + "metadata": { |
| 138 | + "jp-MarkdownHeadingCollapsed": true |
| 139 | + }, |
121 | 140 | "source": [ |
122 | 141 | "### Il costrutto `if __name__ == \"__main__\":` 🤔\n", |
123 | 142 | "\n", |
124 | 143 | "Hai sicuramento notato il blocco `if __name__ == \"__main__\":`. Questo è un costrutto comune e importante in Python. Serve a controllare se il file Python viene eseguito direttamente o se viene importato come modulo in un altro script.\n", |
125 | 144 | "\n", |
| 145 | + "Analizziamo il metodo più in dettaglio:\n", |
126 | 146 | "1. **`__name__`** è una variabile speciale che Python imposta automaticamente.\n", |
127 | 147 | "2. Quando esegui il file direttamente (ad es. con `python3 saluto.py`), il valore di `__name__` è `\"__main__\"`.\n", |
128 | 148 | "3. Se un altro file Python importa il tuo `saluto.py` (`import saluto`), il valore di `__name__` sarà il nome del modulo, cioè `\"saluto\"`.\n", |
|
132 | 152 | }, |
133 | 153 | { |
134 | 154 | "cell_type": "markdown", |
| 155 | + "id": "af5a1f21", |
135 | 156 | "metadata": {}, |
136 | 157 | "source": [ |
137 | 158 | "### Passare argomenti esterni al programma 🚀\n", |
|
148 | 169 | { |
149 | 170 | "cell_type": "code", |
150 | 171 | "execution_count": null, |
| 172 | + "id": "7151f687", |
151 | 173 | "metadata": {}, |
152 | 174 | "outputs": [], |
153 | 175 | "source": [ |
|
166 | 188 | }, |
167 | 189 | { |
168 | 190 | "cell_type": "markdown", |
| 191 | + "id": "29e2d008", |
169 | 192 | "metadata": {}, |
170 | 193 | "source": [ |
171 | 194 | "### Eseguire il file con argomenti\n", |
|
179 | 202 | }, |
180 | 203 | { |
181 | 204 | "cell_type": "markdown", |
| 205 | + "id": "4d634076", |
182 | 206 | "metadata": {}, |
183 | 207 | "source": [ |
184 | | - "---", |
185 | | - "\n", |
| 208 | + "---\n", |
186 | 209 | "## 4. Importare moduli e librerie\n", |
187 | 210 | "\n", |
188 | 211 | "Python ha una ricca **libreria standard** di moduli che puoi importare per estendere le funzionalità del tuo codice. Le librerie sono collezioni di funzioni e strumenti predefiniti.\n", |
|
196 | 219 | { |
197 | 220 | "cell_type": "code", |
198 | 221 | "execution_count": null, |
| 222 | + "id": "e5e3c19d", |
199 | 223 | "metadata": {}, |
200 | 224 | "outputs": [], |
201 | 225 | "source": [ |
|
208 | 232 | }, |
209 | 233 | { |
210 | 234 | "cell_type": "markdown", |
| 235 | + "id": "1125fa78", |
211 | 236 | "metadata": {}, |
212 | 237 | "source": [ |
213 | | - "---", |
214 | | - "\n", |
| 238 | + "---\n", |
215 | 239 | "## 5. Un breve sguardo all'interprete\n", |
216 | 240 | "\n", |
217 | 241 | "Python è un **linguaggio interpretato**, a differenza di linguaggi come C++ che sono compilati. Questo significa che il tuo codice non viene tradotto in un file eseguibile separato prima di essere lanciato.\n", |
|
227 | 251 | }, |
228 | 252 | { |
229 | 253 | "cell_type": "markdown", |
| 254 | + "id": "e12c5bf9", |
230 | 255 | "metadata": {}, |
231 | 256 | "source": [ |
232 | | - "---", |
233 | | - "\n", |
| 257 | + "---\n", |
234 | 258 | "## Esercizi\n", |
235 | 259 | "\n", |
| 260 | + "---" |
| 261 | + ] |
| 262 | + }, |
| 263 | + { |
| 264 | + "cell_type": "markdown", |
| 265 | + "id": "2d1f9748", |
| 266 | + "metadata": {}, |
| 267 | + "source": [ |
236 | 268 | "### Esercizio 1: Saluto personalizzato\n", |
237 | 269 | "Modifica il file `saluto.py` per chiedere il nome e stampare un messaggio di benvenuto più elaborato." |
238 | 270 | ] |
239 | 271 | }, |
240 | 272 | { |
241 | 273 | "cell_type": "code", |
242 | 274 | "execution_count": null, |
| 275 | + "id": "4895b613", |
| 276 | + "metadata": {}, |
| 277 | + "outputs": [], |
| 278 | + "source": [] |
| 279 | + }, |
| 280 | + { |
| 281 | + "cell_type": "markdown", |
| 282 | + "id": "92adf2b9", |
| 283 | + "metadata": {}, |
| 284 | + "source": [ |
| 285 | + "### Esercizio 2: Usare un modulo\n", |
| 286 | + "Scrivi un nuovo script chiamato `radice.py` che usa la libreria `math` per chiedere un numero all'utente e stampare la sua radice quadrata." |
| 287 | + ] |
| 288 | + }, |
| 289 | + { |
| 290 | + "cell_type": "code", |
| 291 | + "execution_count": null, |
| 292 | + "id": "35888dbe", |
| 293 | + "metadata": {}, |
| 294 | + "outputs": [], |
| 295 | + "source": [] |
| 296 | + }, |
| 297 | + { |
| 298 | + "cell_type": "markdown", |
| 299 | + "id": "5d9176d4", |
| 300 | + "metadata": {}, |
| 301 | + "source": [ |
| 302 | + "### Esercizio 3: Funzione e main\n", |
| 303 | + "Scrivi un programma chiamato `calcolatrice.py` che definisce una funzione `somma(a, b)` e la chiama all'interno del blocco `if __name__ == \"__main__\":` per stampare il risultato di una somma, ad esempio 5 + 3." |
| 304 | + ] |
| 305 | + }, |
| 306 | + { |
| 307 | + "cell_type": "code", |
| 308 | + "execution_count": null, |
| 309 | + "id": "59ace534", |
| 310 | + "metadata": {}, |
| 311 | + "outputs": [], |
| 312 | + "source": [] |
| 313 | + }, |
| 314 | + { |
| 315 | + "cell_type": "markdown", |
| 316 | + "id": "b3f86e9e", |
| 317 | + "metadata": {}, |
| 318 | + "source": [ |
| 319 | + "---\n", |
| 320 | + "## Soluzioni\n", |
| 321 | + "\n", |
| 322 | + "---" |
| 323 | + ] |
| 324 | + }, |
| 325 | + { |
| 326 | + "cell_type": "markdown", |
| 327 | + "id": "4895b614", |
| 328 | + "metadata": {}, |
| 329 | + "source": [ |
| 330 | + "### Soluzione Esercizio 1: Saluto personalizzato" |
| 331 | + ] |
| 332 | + }, |
| 333 | + { |
| 334 | + "cell_type": "code", |
| 335 | + "execution_count": null, |
| 336 | + "id": "4895b615", |
243 | 337 | "metadata": {}, |
244 | 338 | "outputs": [], |
245 | 339 | "source": [ |
246 | | - "# Soluzione Esercizio 1\n", |
247 | 340 | "def saluta_utente():\n", |
248 | 341 | " nome = input(\"Come ti chiami? \")\n", |
249 | 342 | " print(f\"Ciao {nome}! È un piacere averti qui.\")\n", |
250 | 343 | "\n", |
251 | | - "# Questo blocco assicura che il codice venga eseguito solo quando il file è il programma principale\n", |
252 | 344 | "if __name__ == \"__main__\":\n", |
253 | 345 | " saluta_utente()" |
254 | 346 | ] |
255 | 347 | }, |
256 | 348 | { |
257 | 349 | "cell_type": "markdown", |
| 350 | + "id": "92adf2ba", |
258 | 351 | "metadata": {}, |
259 | 352 | "source": [ |
260 | | - "### Esercizio 2: Usare un modulo\n", |
261 | | - "Scrivi un nuovo script chiamato `radice.py` che usa la libreria `math` per chiedere un numero all'utente e stampare la sua radice quadrata." |
| 353 | + "### Soluzione Esercizio 2: Usare un modulo" |
262 | 354 | ] |
263 | 355 | }, |
264 | 356 | { |
265 | 357 | "cell_type": "code", |
266 | 358 | "execution_count": null, |
| 359 | + "id": "35888dbf", |
267 | 360 | "metadata": {}, |
268 | 361 | "outputs": [], |
269 | 362 | "source": [ |
270 | | - "# Soluzione Esercizio 2\n", |
271 | 363 | "import math\n", |
272 | 364 | "\n", |
273 | 365 | "def calcola_radice():\n", |
|
281 | 373 | }, |
282 | 374 | { |
283 | 375 | "cell_type": "markdown", |
| 376 | + "id": "5d9176d5", |
284 | 377 | "metadata": {}, |
285 | 378 | "source": [ |
286 | | - "### Esercizio 3: Funzione e main\n", |
287 | | - "Scrivi un programma chiamato `calcolatrice.py` che definisce una funzione `somma(a, b)` e la chiama all'interno del blocco `if __name__ == \"__main__\":` per stampare il risultato di una somma, ad esempio 5 + 3." |
| 379 | + "### Soluzione Esercizio 3: Funzione e main" |
288 | 380 | ] |
289 | 381 | }, |
290 | 382 | { |
291 | 383 | "cell_type": "code", |
292 | 384 | "execution_count": null, |
| 385 | + "id": "59ace535", |
293 | 386 | "metadata": {}, |
294 | 387 | "outputs": [], |
295 | 388 | "source": [ |
296 | | - "# Soluzione Esercizio 3\n", |
297 | 389 | "def somma(a, b):\n", |
298 | 390 | " \"\"\"Restituisce la somma di due numeri.\"\"\"\n", |
299 | 391 | " return a + b\n", |
|
306 | 398 | ], |
307 | 399 | "metadata": { |
308 | 400 | "kernelspec": { |
309 | | - "display_name": "Python 3", |
310 | | - "name": "python3" |
| 401 | + "display_name": "Python [conda env:base] *", |
| 402 | + "language": "python", |
| 403 | + "name": "conda-base-py" |
311 | 404 | }, |
312 | 405 | "language_info": { |
| 406 | + "codemirror_mode": { |
| 407 | + "name": "ipython", |
| 408 | + "version": 3 |
| 409 | + }, |
| 410 | + "file_extension": ".py", |
| 411 | + "mimetype": "text/x-python", |
313 | 412 | "name": "python", |
314 | | - "version": "3.x" |
| 413 | + "nbconvert_exporter": "python", |
| 414 | + "pygments_lexer": "ipython3", |
| 415 | + "version": "3.13.5" |
315 | 416 | } |
316 | 417 | }, |
317 | 418 | "nbformat": 4, |
|
0 commit comments