Skip to content

Commit 6386bbf

Browse files
committed
added details in 00,01,02
1 parent 33ce4ba commit 6386bbf

4 files changed

Lines changed: 779 additions & 643 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,5 @@ yarn-error.log*
2525

2626
server/node_modules
2727
server/package-lock.json
28+
29+
.ipynb_checkpoints/

00_sommario_corso.ipynb

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,19 @@
3939
"11. [Progetto conclusivo](11_progetto.ipynb)\n",
4040
"\n",
4141
"## 🎯 Obiettivi del Corso\n",
42-
"- Imparare la sintassi base di Python\n",
43-
"- Eseguire codice con Jupyter Notebook\n",
44-
"- Capire variabili, tipi e strutture di controllo, cicli\n",
45-
"- Scrivere script Python\n",
46-
"- Utilizzare le strutture dati più comuni\n",
47-
"- Come gestire gli errori\n",
42+
"- Imparare la sintassi base di Python.\n",
43+
"- Eseguire codice con Jupyter Notebook.\n",
44+
"- Capire variabili, tipi e strutture di controllo, cicli.\n",
45+
"- Scrivere script Python.\n",
46+
"- Utilizzare le strutture dati più comuni.\n",
47+
"- Come gestire gli errori.\n",
4848
"- Le funzioni, organizzare il codice in blocchi riutilizzabili, e i moduli.\n",
4949
"- File I/O, leggere e scrivere dati da e verso i file.\n",
5050
"- Libreria Standard, panoramica su moduli e pacchetti che vengono installati insieme a Python.\n",
5151
"- Librerie aggiuntive e Ambienti Virtuali, come usare librerie aggiuntive e come abilitare ambienti virtuali.\n",
52-
"- Programmazione Orientata agli Oggetti, concetti base\n",
52+
"- Programmazione Orientata agli Oggetti, concetti base.\n",
5353
"- Progetto conclusivo, realizzare una semplica applicazione applicando i vari concetti appresi.\n",
54-
"- Appendice. [La storia di Python](appendix.ipynb)\n",
54+
"- Appendice. La storia di Python\n",
5555
"\n",
5656
"---\n",
5757
"_Inizia dal primo notebook per cominciare il tuo percorso!_"

01_primi_passi.ipynb

Lines changed: 125 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@
22
"cells": [
33
{
44
"cell_type": "markdown",
5+
"id": "8db108fa",
56
"metadata": {},
67
"source": [
78
"# 🐍 Primi passi con Python\n",
89
"\n",
9-
"---",
10-
"\n",
10+
"---\n",
1111
"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!\"."
1212
]
1313
},
1414
{
1515
"cell_type": "markdown",
16+
"id": "038c35b4",
1617
"metadata": {},
1718
"source": [
1819
"## 1. Pre-requisiti e strumenti necessari 🛠️\n",
@@ -24,6 +25,7 @@
2425
},
2526
{
2627
"cell_type": "markdown",
28+
"id": "93ebc2be",
2729
"metadata": {},
2830
"source": [
2931
"### L'ambiente di sviluppo: Editor o IDE?\n",
@@ -38,6 +40,7 @@
3840
},
3941
{
4042
"cell_type": "markdown",
43+
"id": "5697c534",
4144
"metadata": {},
4245
"source": [
4346
"### Installazione di Python e dell'editor\n",
@@ -59,10 +62,10 @@
5962
},
6063
{
6164
"cell_type": "markdown",
65+
"id": "5050cc32",
6266
"metadata": {},
6367
"source": [
64-
"---",
65-
"\n",
68+
"---\n",
6669
"## 2. Il tuo primo programma: \"Hello, World!\"\n",
6770
"\n",
6871
"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,6 +74,7 @@
7174
{
7275
"cell_type": "code",
7376
"execution_count": null,
77+
"id": "603da1ad",
7478
"metadata": {},
7579
"outputs": [],
7680
"source": [
@@ -79,6 +83,7 @@
7983
},
8084
{
8185
"cell_type": "markdown",
86+
"id": "7c25e16f",
8287
"metadata": {},
8388
"source": [
8489
"**Perché è così importante?** Questo semplice comando ci dimostra tre cose fondamentali:\n",
@@ -89,21 +94,32 @@
8994
},
9095
{
9196
"cell_type": "markdown",
97+
"id": "a37e5665",
9298
"metadata": {},
9399
"source": [
94-
"---",
95-
"\n",
100+
"---\n",
96101
"## 3. Come eseguire uno script Python\n",
97102
"\n",
98103
"Per eseguire un programma più strutturato, lo salveremo in un file con estensione `.py` e lo eseguiremo da riga di comando (il terminale).\n",
99104
"\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": [
100115
"### Esempio: `saluto.py`\n",
101116
"Crea un file di testo e salvalo come `saluto.py` nella tua cartella di lavoro. Al suo interno, scrivi il seguente codice:"
102117
]
103118
},
104119
{
105120
"cell_type": "code",
106121
"execution_count": null,
122+
"id": "a57a03aa",
107123
"metadata": {},
108124
"outputs": [],
109125
"source": [
@@ -117,12 +133,16 @@
117133
},
118134
{
119135
"cell_type": "markdown",
120-
"metadata": {},
136+
"id": "9bcd3e4b",
137+
"metadata": {
138+
"jp-MarkdownHeadingCollapsed": true
139+
},
121140
"source": [
122141
"### Il costrutto `if __name__ == \"__main__\":` 🤔\n",
123142
"\n",
124143
"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",
125144
"\n",
145+
"Analizziamo il metodo più in dettaglio:\n",
126146
"1. **`__name__`** è una variabile speciale che Python imposta automaticamente.\n",
127147
"2. Quando esegui il file direttamente (ad es. con `python3 saluto.py`), il valore di `__name__` è `\"__main__\"`.\n",
128148
"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,6 +152,7 @@
132152
},
133153
{
134154
"cell_type": "markdown",
155+
"id": "af5a1f21",
135156
"metadata": {},
136157
"source": [
137158
"### Passare argomenti esterni al programma 🚀\n",
@@ -148,6 +169,7 @@
148169
{
149170
"cell_type": "code",
150171
"execution_count": null,
172+
"id": "7151f687",
151173
"metadata": {},
152174
"outputs": [],
153175
"source": [
@@ -166,6 +188,7 @@
166188
},
167189
{
168190
"cell_type": "markdown",
191+
"id": "29e2d008",
169192
"metadata": {},
170193
"source": [
171194
"### Eseguire il file con argomenti\n",
@@ -179,10 +202,10 @@
179202
},
180203
{
181204
"cell_type": "markdown",
205+
"id": "4d634076",
182206
"metadata": {},
183207
"source": [
184-
"---",
185-
"\n",
208+
"---\n",
186209
"## 4. Importare moduli e librerie\n",
187210
"\n",
188211
"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,6 +219,7 @@
196219
{
197220
"cell_type": "code",
198221
"execution_count": null,
222+
"id": "e5e3c19d",
199223
"metadata": {},
200224
"outputs": [],
201225
"source": [
@@ -208,10 +232,10 @@
208232
},
209233
{
210234
"cell_type": "markdown",
235+
"id": "1125fa78",
211236
"metadata": {},
212237
"source": [
213-
"---",
214-
"\n",
238+
"---\n",
215239
"## 5. Un breve sguardo all'interprete\n",
216240
"\n",
217241
"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,47 +251,115 @@
227251
},
228252
{
229253
"cell_type": "markdown",
254+
"id": "e12c5bf9",
230255
"metadata": {},
231256
"source": [
232-
"---",
233-
"\n",
257+
"---\n",
234258
"## Esercizi\n",
235259
"\n",
260+
"---"
261+
]
262+
},
263+
{
264+
"cell_type": "markdown",
265+
"id": "2d1f9748",
266+
"metadata": {},
267+
"source": [
236268
"### Esercizio 1: Saluto personalizzato\n",
237269
"Modifica il file `saluto.py` per chiedere il nome e stampare un messaggio di benvenuto più elaborato."
238270
]
239271
},
240272
{
241273
"cell_type": "code",
242274
"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",
243337
"metadata": {},
244338
"outputs": [],
245339
"source": [
246-
"# Soluzione Esercizio 1\n",
247340
"def saluta_utente():\n",
248341
" nome = input(\"Come ti chiami? \")\n",
249342
" print(f\"Ciao {nome}! È un piacere averti qui.\")\n",
250343
"\n",
251-
"# Questo blocco assicura che il codice venga eseguito solo quando il file è il programma principale\n",
252344
"if __name__ == \"__main__\":\n",
253345
" saluta_utente()"
254346
]
255347
},
256348
{
257349
"cell_type": "markdown",
350+
"id": "92adf2ba",
258351
"metadata": {},
259352
"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"
262354
]
263355
},
264356
{
265357
"cell_type": "code",
266358
"execution_count": null,
359+
"id": "35888dbf",
267360
"metadata": {},
268361
"outputs": [],
269362
"source": [
270-
"# Soluzione Esercizio 2\n",
271363
"import math\n",
272364
"\n",
273365
"def calcola_radice():\n",
@@ -281,19 +373,19 @@
281373
},
282374
{
283375
"cell_type": "markdown",
376+
"id": "5d9176d5",
284377
"metadata": {},
285378
"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"
288380
]
289381
},
290382
{
291383
"cell_type": "code",
292384
"execution_count": null,
385+
"id": "59ace535",
293386
"metadata": {},
294387
"outputs": [],
295388
"source": [
296-
"# Soluzione Esercizio 3\n",
297389
"def somma(a, b):\n",
298390
" \"\"\"Restituisce la somma di due numeri.\"\"\"\n",
299391
" return a + b\n",
@@ -306,12 +398,21 @@
306398
],
307399
"metadata": {
308400
"kernelspec": {
309-
"display_name": "Python 3",
310-
"name": "python3"
401+
"display_name": "Python [conda env:base] *",
402+
"language": "python",
403+
"name": "conda-base-py"
311404
},
312405
"language_info": {
406+
"codemirror_mode": {
407+
"name": "ipython",
408+
"version": 3
409+
},
410+
"file_extension": ".py",
411+
"mimetype": "text/x-python",
313412
"name": "python",
314-
"version": "3.x"
413+
"nbconvert_exporter": "python",
414+
"pygments_lexer": "ipython3",
415+
"version": "3.13.5"
315416
}
316417
},
317418
"nbformat": 4,

0 commit comments

Comments
 (0)