diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 5e1dd8c..6448be4 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -22,5 +22,5 @@ Manutentori del progetto che non seguono o non fanno rispettare il codice di con Questo codice di condotta vale sia online che nella vita reale nel momento in cui un individuo sta rappresentando il progetto o la sua comunità. Questo codice di condatta è stato tradotto e adattato da: -The Contributor Covenant, version 1.3.0, available at [https://www.contributor-covenant.org/version/1/3/0/code-of-conduct.html](https://www.contributor-covenant.org/version/1/3/0/code-of-conduct.html) released under the [CC BY 4.0 License](https://github.com/ContributorCovenant/contributor_covenant/blob/master/LICENSE.md). +The Contributor Covenant, version 1.3.0, available at [https://www.contributor-covenant.org/version/1/3/0/code-of-conduct.html](https://www.contributor-covenant.org/version/1/3/0/code-of-conduct.html) released under the [CC BY 4.0 License](https://github.com/ContributorCovenant/contributor_covenant/blob/release/LICENSE.md). diff --git a/docs/Pyllole/00_Install.md b/docs/Pyllole/00_Install.md index 21ae32e..2b73aa4 100644 --- a/docs/Pyllole/00_Install.md +++ b/docs/Pyllole/00_Install.md @@ -9,7 +9,7 @@ Il modo più semplice per sapere se il tuo sistema ha già installato Python è Per installare Python scarica la versione più recente dal sito ufficiale: [https://www.python.org/downloads/](https://www.python.org/downloads/) -**Ricorda, [a breve](https://pythonclock.org) Python 2.7 non verrà più supportato.** +**Ricorda, Python 2 non è più supportato dal 1° gennaio 2020, maggiori informazioni i [qui](https://www.python.org/doc/sunset-python-2/).** --- diff --git a/docs/Pyllole/01_Use_Python.md b/docs/Pyllole/01_Use_Python.md index 58e42b1..33a51eb 100644 --- a/docs/Pyllole/01_Use_Python.md +++ b/docs/Pyllole/01_Use_Python.md @@ -11,7 +11,8 @@ Una volta installato Python ci sono due fondamentali modi per utilizzarlo: Eseguendo direttamente Python viene attivata la modalità intereattiva dell'interprete (REPL), un'interfaccia per scrivere ed eseguire immediatamente i comandi del linguaggio Python. Il REPL si presenta semplicemente con un _prompt_ `>>>` in attesa di un comando. -A seconda di come, cosa e dove è stato installato Python, potrebbe essere necessario specificare quale versione si vuole eseguire. Ad oggi molte versioni pre-installate eseguono Python 2.7 di default, in questi casi è necessario specificare `python3` per eseguire l'ultima versione. +A seconda di come, cosa e dove è stato installato Python, potrebbe essere necessario specificare quale versione si vuole eseguire. +In alcuni sistemi obsoleti potresti trovar installato Python 2, in questi casi è necessario specificare `python3` per eseguire l'ultima versione. ``` $ python @@ -28,6 +29,7 @@ Python 3.5.3 (default, Jan 19 2017, 14:11:04) Type "help", "copyright", "credits" or "license" for more information. >>> ``` +**Ricorda, Python 2 non è più supportato dal 1° gennaio 2020, maggiori informazioni [qui](https://www.python.org/doc/sunset-python-2/).** All'interno dell'interprete è possibile inviare comandi Python che vengono eseguiti man mano che vengono scritti (riga per riga). @@ -39,7 +41,7 @@ Ciao Se si utilizzano istruzioni che prevedono più linee di codice, come i cicli o la definizione di funzione, l'interprete segnalerà che non ha ancora iniziato a interpretare i comandi forniti cambiando il prompt in `...`. -Naturalmente, in questi casi, si deve fare molta attenzione all'[indentazione](Syntax.md#indentazione). +Naturalmente, in questi casi, si deve fare molta attenzione all'[indentazione](11_Syntax.md#indentazione). ```python >>> for a in range(3): @@ -107,7 +109,7 @@ Un'altro aiuto diretto nell'interprete è dato dalla funzione `dir()`, in grado Creare uno script significa creare un file contenente un programma Python. Questo file/programma potrà poi essere eseguito direttamente o importato da altri programmi. -Per creare un file script **basta un semplice [editor di testo](Pyllole/Development_Environment.md)**, nulla di più. Studiando Python è meglio evitare complessi ambienti di sviluppo (IDE), quando si conoscerà il linguaggio e si svilupperanno veri programmi, si potrà decidere di utilizzarli per ottimizzare il proprio lavoro. +Per creare un file script **basta un semplice [editor di testo](05_Development_Environment.md)**, nulla di più. Studiando Python è meglio evitare complessi ambienti di sviluppo (IDE), quando si conoscerà il linguaggio e si svilupperanno veri programmi, si potrà decidere di utilizzarli per ottimizzare il proprio lavoro. Il file script di python hanno estensione _.py_, crea un tuo file, chiamiamolo _prova.py_ e comincia a programmare. @@ -138,7 +140,7 @@ Eseguendo il file `prova.py` viene generato il file `prova.pyc` che, per spiegar ### Sintassi e stile di scrittura -Consulta la pagina relativa alla [sintassi di base](Syntax.md) per cominciare a conoscere il linguaggio python. +Consulta la pagina relativa alla [sintassi di base](11_Syntax.md) per cominciare a conoscere il linguaggio python. Anche se al momento è prematuro, sappi che in Python anche lo stile di scritture del codice è importante ed è definito nel [PEP 8 - Style Guide for Python Code](https://www.python.org/dev/peps/pep-0008/). diff --git a/docs/Pyllole/11_Syntax.md b/docs/Pyllole/11_Syntax.md index 05177fa..5ebf669 100644 --- a/docs/Pyllole/11_Syntax.md +++ b/docs/Pyllole/11_Syntax.md @@ -6,7 +6,7 @@ * `Complesso è meglio di complicato` * `La leggibilità è importante` -Questi cinque principi, presi da [Lo Zen di Python](Zen.md), fanno capire quanto in Python la forma sia importante tanto quanto la sintassi. +Questi cinque principi, presi da [Lo Zen di Python](99_Zen.html), fanno capire quanto in Python la forma sia importante tanto quanto la sintassi. In Python ogni comando si scrive su una singola riga e non necessita di particolari caratteri di termine (altri linguaggi necessitano, per esempio, di `;`). Se si vogliono scrivere più comandi sulla stessa riga è possibile dividerli utilizzando il `;`, ma non farlo. diff --git a/docs/Pyllole/21_Variables.md b/docs/Pyllole/21_Variables.md index db214bf..5916398 100644 --- a/docs/Pyllole/21_Variables.md +++ b/docs/Pyllole/21_Variables.md @@ -16,10 +16,10 @@ Così nascono gli standard, dall'ASCII a UTF-8, dalle GIF alle PNG, tutti i modi Ogni linguaggio di programmazione ha i suoi tipi di dati con le proprie particolari caratteristiche, ma in generale i tipi di base sono: -* [Booleani](Type_Boolean.md): 0 o 1, chiamati anche False o True -* [Numeri interi](Type_Number.md): in grado di rappresentare, a seconda del numero di byte utilizzati, i numeri interi da -N a +N -* [Numeri decimali](Type_Number.md): numero in virgola mobile, indica il metodo di rappresentazione approssimata dei numeri reali -* [Stringhe](Type_String.md): sequenze di caratteri (lettere, numeri e simboli) che formano un testo +* [Booleani](43_Type_Boolean.md): 0 o 1, chiamati anche False o True +* [Numeri interi](41_Type_Number.md): in grado di rappresentare, a seconda del numero di byte utilizzati, i numeri interi da -N a +N +* [Numeri decimali](41_Type_Number.md): numero in virgola mobile, indica il metodo di rappresentazione approssimata dei numeri reali +* [Stringhe](42_Type_String.md): sequenze di caratteri (lettere, numeri e simboli) che formano un testo Esistoni inoltre molti tipi di dati complessi, dagli array agli oggetti, ma per il momento è meglio fermarsi a questi. @@ -87,7 +87,7 @@ Il doppio carattere uguale `==` è sempre un operatore di uguaglianza, non una a Il _casting_ in programmazione è la conversione di un dato da un tipo ad un altro. -Potremmo avere una variabile a cui è assegnato il valore `"123", anche se sembra un numero, come già suggeriscono le virgolette, in realtà si tratta di una stringa (magari acquisita tramite [input](Input.md)). +Potremmo avere una variabile a cui è assegnato il valore `"123", anche se sembra un numero, come già suggeriscono le virgolette, in realtà si tratta di una stringa (magari acquisita tramite [input](25_Input.md). Se volessi trattare questo `"123"` come se fosse un numero, e sommargline ad esempio un altro, dovrei prima trasformalo in un intero. Per convertire in intero una stringa, o un float, si utilizza la funzione `int()`. diff --git a/docs/Pyllole/23_Print.md b/docs/Pyllole/23_Print.md index c875e56..985224a 100644 --- a/docs/Pyllole/23_Print.md +++ b/docs/Pyllole/23_Print.md @@ -1,6 +1,6 @@ # Print -La funzione `print()` permette di scrivere sulla vostra console delle stringhe (in Python 2.7 non era una funzione ma un'istruzione built-in del linguaggio che non richiedeva le parentesi). +La funzione `print()` permette di scrivere sulla vostra console delle stringhe (sequenze di caratteri). ```python >>> print("Ciao, questa è una stringa.") diff --git a/docs/Pyllole/25_Input.md b/docs/Pyllole/25_Input.md index 3c84f45..1f84d50 100644 --- a/docs/Pyllole/25_Input.md +++ b/docs/Pyllole/25_Input.md @@ -22,17 +22,17 @@ Inserisci la tua età: 42 ### Valore restituito -La funzione `input()` restituisce sempre una stringa, se si vuole utilizzare il risultato come dato numerico è necessario convertirlo utilizzando le funzioni [int() o float()](Type_Number.md). +La funzione `input()` restituisce sempre una stringa, se si vuole utilizzare il risultato come dato numerico è necessario convertirlo utilizzando le funzioni [int() o float()](41_Type_Number.md). ```python >>> stringa = input("Inserisci un numero intero: ") Inserisci un numero intero: 42 >>> numero=int(stringa) ``` -**Importante**: se la stringa passata a `int()` non è convertibile in un intero, Python genererà un'errore, è quindi consigliabile gestire l'eccezione con [try/except](Try_Except.md) +**Importante**: se la stringa passata a `int()` non è convertibile in un intero, Python genererà un'errore, è quindi consigliabile gestire l'eccezione con [try/except](61_Try_Except.md) **Nota**: nelle versioni 2.x l'attuale funzione input() si chiamava raw_input(). La funzione input() di Python2 esiste ma ha un comportamento differente da quello qui descritto. -Vedi l'esempio pratico nella pagina [try/except](Try_Except.md) per come gestire l'errata conversione. +Vedi l'esempio pratico nella pagina [try/except](61_Try_Except.md) per come gestire l'errata conversione. -Vedi l'esempio pratico nella pagina [cicli](Loops.md) per come ripetere input() finché il valore è corretto. +Vedi l'esempio pratico nella pagina [cicli](29_Loops.md) per come ripetere input() finché il valore è corretto. diff --git a/docs/Pyllole/27_If-Else.md b/docs/Pyllole/27_If-Else.md index f9d6255..79c8d13 100644 --- a/docs/Pyllole/27_If-Else.md +++ b/docs/Pyllole/27_If-Else.md @@ -4,7 +4,7 @@ In un programma le istruzioni vengono eseguite nell'ordine in cui sono scritte n Per poter eseguire una parte di questo codice solo in alcuni casi si utilizza l'istruzione di controllo `if`/`else`. -_Ricorda, in python [l'indentazione](Syntax.md#indentazione) è molto importante!_ +_Ricorda, in python [l'indentazione](11_Syntax.md#indentazione) è molto importante!_ La sintassi di base di `if` è: diff --git a/docs/Pyllole/29_Loops.md b/docs/Pyllole/29_Loops.md index 7bd0a5a..be39364 100644 --- a/docs/Pyllole/29_Loops.md +++ b/docs/Pyllole/29_Loops.md @@ -1,12 +1,12 @@ # Cicli -_Prima di studiare i cicli e gli iteratori assicurati di conoscere le [liste](Type_List.md)._ +_Prima di studiare i cicli e gli iteratori assicurati di conoscere le [liste](53_Type_List.md)._ Per ripetere una determinata azione più volte e/o su più elementi si utilizzano le istruzioni `for` e `while` per costruire dei _"cicli"_. Il programma ripeterà il codice all'interno del ciclo per un numero di volte determinato da una determinata condizione. -_Ricorda, in python [l'indentazione](Syntax.md#indentazione) è molto importante!_ +_Ricorda, in python [l'indentazione](11_Syntax.md#indentazione) è molto importante!_ ## For @@ -85,7 +85,7 @@ while x < 4: ### Esempio pratico **Ciclo while per riproporre la richiesta di dati in caso di errore di immissione** -La funzione `input()` acqusisce un valore inserito da tastiera in formato stringa. A volte è necessario che il dato acquisito sia un numero, in questi casi si utilizzano le funzioni `int()` o `float()` per convertirlo. +La funzione `input()` acquisisce un valore inserito da tastiera in formato stringa. A volte è necessario che il dato acquisito sia un numero, in questi casi si utilizzano le funzioni `int()` o `float()` per convertirlo. Si può quindi utilizzare `try`/`except` per controllare che sia stato inserito un dato valido, ma per riproporre la domanda in caso di errore è necessario creare un ciclo. @@ -95,7 +95,7 @@ Nel seguente esempio ripetiamo la richiesta finché a `numero` non viene assegna numero=None while not numero: try: - numero=int(input("Inserisci un numero intero: ")) + numero=int(input("Inserisci un numero intero: ")) except: print("Il dato inserito non è un numero intero") ``` diff --git a/docs/Pyllole/42_Type_String.md b/docs/Pyllole/42_Type_String.md index 78e323f..6b59f07 100644 --- a/docs/Pyllole/42_Type_String.md +++ b/docs/Pyllole/42_Type_String.md @@ -100,7 +100,7 @@ Con le _f-string_ è possibile anche eseguire delle espressioni all'interno del >>> seven = 7 >>> f'''Il suo nome è {name.upper()} ...ed ha {6 * seven} anni.''' -'Il suo nome è John ed ha 42 anni.' +'Il suo nome è JOHN ed ha 42 anni.' ``` diff --git a/docs/Pyllole/55_Type_Tuple.md b/docs/Pyllole/55_Type_Tuple.md index 02f791b..d2cfc9a 100644 --- a/docs/Pyllole/55_Type_Tuple.md +++ b/docs/Pyllole/55_Type_Tuple.md @@ -1,8 +1,8 @@ # Tipi: Tuple -_Prima di studiare le tuple assicurati di conoscere le [liste](Type_List.md)._ +_Prima di studiare le tuple assicurati di conoscere le [liste](53_Type_List.md)._ -Le tuple sono come le [liste](Type_List.md) ma immutabili. +Le tuple sono come le [liste](53_Type_List.md) ma immutabili. ```python >>> tup = (1, 2, 3) diff --git a/docs/Pyllole/57_Type_Set.md b/docs/Pyllole/57_Type_Set.md index ddd4469..fcc8b75 100644 --- a/docs/Pyllole/57_Type_Set.md +++ b/docs/Pyllole/57_Type_Set.md @@ -1,6 +1,6 @@ # Tipi: Set -_Prima di studiare i set assicurati di conoscere le [liste](Type_List.md)._ +_Prima di studiare i set assicurati di conoscere le [liste](53_Type_List.md)._ I set sono come le liste ma non possono contenere doppioni. diff --git a/docs/Pyllole/59_Type_Dictionary.md b/docs/Pyllole/59_Type_Dictionary.md index 5fe93aa..5a19f5d 100644 --- a/docs/Pyllole/59_Type_Dictionary.md +++ b/docs/Pyllole/59_Type_Dictionary.md @@ -1,6 +1,6 @@ # Tipi: Dizionari -_Prima di studiare i dizionari assicurati di conoscere le [liste](Type_List.md)._ +_Prima di studiare i dizionari assicurati di conoscere le [liste](53_Type_List.md)._ Un dizionario è come una lista che ha un nome al posto dell'indice, è un insieme di coppie chiave-valore. diff --git a/docs/Pyllole/61_Try_Except.md b/docs/Pyllole/61_Try_Except.md index 1f67267..4ae61aa 100644 --- a/docs/Pyllole/61_Try_Except.md +++ b/docs/Pyllole/61_Try_Except.md @@ -1,6 +1,6 @@ # Try - Except -_Ricorda, in python [l'indentazione](Syntax.md#indentazione) è molto importante!_ +_Ricorda, in python [l'indentazione](11_Syntax.md#indentazione) è molto importante!_ Le eccezioni (exception) sono errori rilevati durante l'esecuzione di un programma. @@ -67,7 +67,7 @@ finally: ### Esempio pratico **Conversione e controllo risultato di input()** -Se si vuole utilizzare il risultato della funzione `input()`, che è sempre una stringa, come dato numerico è necessario convertirlo utilizzando le funzioni [int() o float()](Type_Number.md). Il valore immesso potrebbe però non essere convertibile in un numero, in questo caso la funzione di conversione usata genererà un'errore che è meglio gestire. +Se si vuole utilizzare il risultato della funzione `input()`, che è sempre una stringa, come dato numerico è necessario convertirlo utilizzando le funzioni [int() o float()](41_Type_Number.md). Il valore immesso potrebbe però non essere convertibile in un numero, in questo caso la funzione di conversione usata genererà un'errore che è meglio gestire. ```python stringa = input("Inserisci un numero intero: ") @@ -77,4 +77,4 @@ except: print("Il dato inserito non è un numero intero") ``` -Vedi l'esempio pratico nella pagina [cicli](Loops.md) per come ripetere il controllo finché il valore è corretto. +Vedi l'esempio pratico nella pagina [cicli](29_Loops.md) per come ripetere il controllo finché il valore è corretto. diff --git a/docs/Pyllole/63_Functions.md b/docs/Pyllole/63_Functions.md index 5791628..cc47512 100644 --- a/docs/Pyllole/63_Functions.md +++ b/docs/Pyllole/63_Functions.md @@ -50,7 +50,7 @@ def varargs(*args): ``` All'interno della funzione la variabile `args` sarà di un tipo particolare chiamato tupla. -Questa variabile conterrà tutti i parametri passati alla funzione (leggi la pagine relativa alle [liste](Type_List.md) e alle [tuple](Type_Tuple.md)). +Questa variabile conterrà tutti i parametri passati alla funzione (leggi la pagine relativa alle [liste](53_Type_List.md) e alle [tuple](55_Type_Tuple.md)). ```python >>> varargs(1, 2, 3) @@ -65,7 +65,7 @@ def keyword_args(**kwargs): ``` All'interno della funzione la variabile `kwargs` sarà di un tipo particolare dizionario. -Questa variabili conterrà tutti i paramentri inviati come coppie chiave/valore (leggi la pagine relativa ai [dizionari](Type_Dictionary.md)). +Questa variabili conterrà tutti i paramentri inviati come coppie chiave/valore (leggi la pagine relativa ai [dizionari](59_Type_Dictionary.md)). ```python >>> keyword_args(alpha=40, beta=50) diff --git a/docs/Pyllole/71_Iterable.md b/docs/Pyllole/71_Iterable.md index a10cc92..c09e651 100644 --- a/docs/Pyllole/71_Iterable.md +++ b/docs/Pyllole/71_Iterable.md @@ -1,7 +1,7 @@ # Iterabili e Iteratori -_Prima di approfondire gli oggetti iterabili assicurati di conoscere le [liste](Type_List.md), [set](Type_Set.md) e [dizionari](Type_Dictionary.md)._ +_Prima di approfondire gli oggetti iterabili assicurati di conoscere le [liste](53_Type_List.md), [set](57_Type_Set.md) e [dizionari](59_Type_Dictionary.md)._ **In Python qualunque oggetto in grado di essere trattato come una sequenza è definito un oggetto iterable (iterabile)**. diff --git a/docs/Pyllole/75_List_Comprehension.md b/docs/Pyllole/75_List_Comprehension.md index 82467ad..1574376 100644 --- a/docs/Pyllole/75_List_Comprehension.md +++ b/docs/Pyllole/75_List_Comprehension.md @@ -1,6 +1,6 @@ # List Comprehension -_Prima di approfondire le "List Comprehension" assicurati di conoscere le [liste](Type_List.md), [set](Type_Set.md) e [dizionari](Type_Dictionary.md)._ +_Prima di approfondire le "List Comprehension" assicurati di conoscere le [liste](53_Type_List.md), [set](57_Type_Set.md) e [dizionari](59_Type_Dictionary.md)._ La sintassi per le _list comprehension_ consente, in modo semplice ed elegante, di costruire sequenze da altre sequenze. diff --git a/docs/Pyllole/81_Classes.md b/docs/Pyllole/81_Classes.md index d7548fd..1d6012f 100644 --- a/docs/Pyllole/81_Classes.md +++ b/docs/Pyllole/81_Classes.md @@ -20,10 +20,10 @@ class Human: # Assegna l'argomento all'attributo name dell'istanza self.name = name - # Inizializza una proprietà - self._age = 0 + # Inizializza una proprietà + self._age = 0 - # Un metodo dell'istanza. Tutti i metodi prendo "self" + # Un metodo dell'istanza. Tutti i metodi prendono "self" # come primo argomento def say(self, msg): print("{name}: {message}".format(name=self.name, message=msg)) @@ -45,7 +45,7 @@ class Human: return "*grunt*" # Una property è come un metodo getter. - # Trasforma il metodo age() in un attributo in sola lettura, + # Trasforma il metodo age() in un attributo in sola lettura, # che ha lo stesso nome @property def age(self): @@ -84,17 +84,15 @@ if __name__ == '__main__': # Chiama un metodo statico print(Human.grunt()) # => "*grunt*" - - # Non è possibile chiamare il metodo statico con l'istanza dell'oggetto - # poiché i.grunt() metterà automaticamente "self" (l'oggetto i) - # come argomento - print(i.grunt()) # => TypeError: grunt() takes 0 positional arguments but 1 was given + + # I metodi statici possono essere chiamati anche dalle istanze + print(i.grunt()) # => "*grunt*" # Aggiorna la property (age) di questa istanza i.age = 42 # Leggi la property i.say(i.age) # => "Ian: 42" - j.say(j.age) # => "Joel: 0" + j.say(j.age) # => "Joel: 0" # Cancella la property del i.age i.age # => questo genererà un AttributeError diff --git a/docs/Pyllole/assets/favicon.png b/docs/Pyllole/assets/favicon.png new file mode 100644 index 0000000..c2478ba Binary files /dev/null and b/docs/Pyllole/assets/favicon.png differ diff --git a/docs/index.md b/docs/index.md index 1554996..bc91d62 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,10 +11,9 @@ Prima di voler scrivere un qualunque programma con Python è necessario conoscer ## Principali Riferimenti Online * **Python.org**: [il sito ufficiale in inglese](https://docs.python.org) -* **Python.it** : [sito ufficiale italiano](http://www.python.it/) - [Forum](http://www.python.it/forum) - [Telegram](https://t.me/pythonita) - [Mailing list](http://www.python.it/comunita/mailing-list/) -* **Python-it.org**: [Sito](http://www.python-it.org) - [Forum](http://www.python-it.org/forum) +* **Python.it** : [sito ufficiale italiano](http://www.python.it/) - [Forum](http://www.python.it/forum) - [Telegram](https://t.me/python_ita) - [Mailing list](http://www.python.it/comunita/mailing-list/) -**Cerca di usare, per quanto possibile, Python 3.x**, [a breve](https://pythonclock.org) Python 2.7 non verrà più supportato. +**Nello studio e nelle ricerche fai sempre riferimento a Python 3.x**, Python 2 non è più supportato dal 1° gennaio 2020, maggiori informazioni [qui](https://www.python.org/doc/sunset-python-2/). ## Per iniziare @@ -30,7 +29,7 @@ Le Pyllole sono brevi e semplici spiegazioni relative al linguaggio Python 3. * [Come usare Python](Pyllole/01_Use_Python.md) - [Ambiente di sviluppo](Pyllole/05_Development_Environment.md) * [Sintassi di base](Pyllole/11_Syntax.md) * [Le variabili](Pyllole/21_Variables.md) -* [Print](Pyllole/23_Print.md) - [Input](Pyllole/25_Input.md) - [If/Else](Pyllole/27_If-Else.md) - [Cicli](Pyllole/Loops.md) +* [Print](Pyllole/23_Print.md) - [Input](Pyllole/25_Input.md) - [If/Else](Pyllole/27_If-Else.md) - [Cicli](Pyllole/29_Loops.md) * [Numeri](Pyllole/41_Type_Number.md) - [Stringhe](Pyllole/42_Type_String.md) - [Booleani](Pyllole/43_Type_Boolean.md) - [None](Pyllole/44_Type_None.md) * [Liste](Pyllole/53_Type_List.md) - [Tuple](Pyllole/55_Type_Tuple.md) - [Set](Pyllole/57_Type_Set.md) - [Dizionari](Pyllole/59_Type_Dictionary.md) * [Try/Except](Pyllole/61_Try_Except.md) @@ -44,21 +43,25 @@ Le Pyllole sono brevi e semplici spiegazioni relative al linguaggio Python 3. * Per condividere il tuo codice, in un forum o chat, usa un servizio per la condivisione del codice * [hastebin](https://hastebin.com) - [arin.ga](https://arin.ga) - [dpaste.de](https://dpaste.de) * Puoi provare il tuo codice, senza installare nulla sul tuo PC, usando un compilatore online - * [Judge0 IDE](https://ide.judge0.com) - [repl.it](https://repl.it/) + * [Judge0 IDE](https://ide.judge0.com) - [trinket.io](https://trinket.io) - [repl.it](https://repl.it/) ## Documentazione Gratuita -* ### eBook, Guide e Tutorial +* ### Tutorial, eBook e Guide Online * ITALIANO * [Documentazione ufficiale](http://python.it/doc/) - * eBook: [Immersione in Python 3](http://gpiancastelli.altervista.org/dip3-it/) - [PDF](http://gpiancastelli.altervista.org/dip3-it/d/diveintopython3-it-pdf-latest.zip) - * eBook: [ThinkPython](https://github.com/AllenDowney/ThinkPythonItalian/) -[PDF](https://github.com/AllenDowney/ThinkPythonItalian/blob/master/thinkpython_italian.pdf) - * Guida: [Guida Python di HTML.IT](http://www.html.it/guide/guida-python/) + * Tutorial e guide online: + * [Tutorial Python di Nicola Cassetta (base e intermedio)](http://ncassetta.altervista.org/materiali-didattici.html) + * [Tutorial Python di CodingCreativo.it](https://www.codingcreativo.it/tutorial-python/) + * [Guida Python di HTML.IT](http://www.html.it/guide/guida-python/) + * eBook: + * [Immersione in Python 3](http://gpiancastelli.altervista.org/dip3-it/) - [PDF](http://gpiancastelli.altervista.org/dip3-it/d/diveintopython3-it-pdf-latest.zip) + * [ThinkPython](https://github.com/AllenDowney/ThinkPythonItalian/) -[PDF](https://github.com/AllenDowney/ThinkPythonItalian/blob/master/thinkpython_italian.pdf) * INGLESE * Python 3 Official Documentation - * [Documentation](https://docs.python.org/3/download.html) + * [Documentation](https://www.python.org/doc/) * [Tutorial](https://docs.python.org/3/tutorial/index.html) * E-book * [Automate the Boring Stuff with Python](https://automatetheboringstuff.com/) @@ -66,9 +69,8 @@ Le Pyllole sono brevi e semplici spiegazioni relative al linguaggio Python 3. * [Fundamentals of Programming Python](http://python.cs.southern.edu/pythonbook/pythonbook.pdf) * [O’Reilly Media: A Whirlwind Tour of Python](http://www.oreilly.com/programming/free/files/a-whirlwind-tour-of-python.pdf) * Packt Publishing - * [Learning Python](https://www.packtpub.com/packt/free-ebook/learning-python) - * [What You Need To Know About Python](https://www.packtpub.com/packt/free-ebook/what-you-need-know-about-python) - * [Mastering Python](https://www.packtpub.com/free-ebook/mastering-python) + * [Learning Python](https://www.packtpub.com/free-ebooks/learning-python) + * [Mastering Python](https://www.packtpub.com/free-ebooks/mastering-python) * [Python Practice Book](https://anandology.com/python-practice-book/index.html) * [Python Programming](https://upload.wikimedia.org/wikipedia/commons/9/91/Python_Programming.pdf) * [Syncfusion: Python Succinctly](https://www.syncfusion.com/ebooks/python) @@ -76,22 +78,25 @@ Le Pyllole sono brevi e semplici spiegazioni relative al linguaggio Python 3. * [The Hitchhiker’s Guide to Python!](http://docs.python-guide.org/en/latest/) * [Python 101](https://leanpub.com/python_101) * [Intermediate Python](https://leanpub.com/intermediatepython) - * [Think Python 2e](http://greenteapress.com/wp/think-python-2e/) + * [Think Python 2 edition](http://greenteapress.com/wp/think-python-2e/) * [30 Python Language Features and Tricks You May Not Know About](http://sahandsaba.com/thirty-python-language-features-and-tricks-you-may-not-know.html) * [Building Skills in Python](http://www.itmaybeahack.com/book/python-2.6/latex/BuildingSkillsinPython.pdf) + * Cheatsheet + * [Python Cheatsheet](https://www.pythoncheatsheet.org/) + * [Comprehensive Python Cheatsheet](https://gto76.github.io/python-cheatsheet/) * Tutorial * [A Beginner's Python Tutorial](https://en.wikibooks.org/wiki/A_Beginner%27s_Python_Tutorial) + * [Python 3 Module of the Week](https://pymotw.com) * [A Byte of Python](https://python.swaroopch.com/first_steps.html) - * [CodeCademy: Python](https://www.codecademy.com/learn/python) * ### Video Corsi e Tutorial * ITALIANO * [Video Corso Python 3 - Impara a Programmare in Python 3.6](https://www.youtube.com/playlist?list=PLHUQL6-_n9Zes1VLMgJbLa8IIOHT9x4Nu) * [Python 3.6 Tutorial Italiano - Programmazione a Oggetti - Classi e Istanze](https://www.youtube.com/watch?v=nmoJf-Ei4TA&list=PLHUQL6-_n9ZdD3JMKg4On4NFh8bBg3Ckn) * [ProgrammareInPython.it - Video Corsi e Esercizi](https://www.programmareinpython.it/programmare-in-python/) - * [Programmare in Python 2 - Marco Beri](https://www.youtube.com/playlist?list=PLC4DEDAECF24B855D) * [Amazing Python - Marco Beri](https://www.youtube.com/watch?v=O0DLSD5o5VU&list=PLu-RPGHOxmPVN7WbrlmO6Vc2gb8djB3_n) * INGLESE + * [Python for Beginners - Microsoft](https://www.youtube.com/playlist?list=PLlrxD0HtieHhS8VzuMCfQD4uJ9yne1mE6) * [Automate the Boring Stuff with Python](https://www.youtube.com/playlist?list=PL0-84-yl1fUnRuXGFe_F7qSH1LEnn9LkW) * [Python 3.4 Programming Tutorials](https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_) * [Python Programming Tutorials](https://www.youtube.com/playlist?list=PLEA1FEF17E1E5C0DA) @@ -107,21 +112,22 @@ In questi elenchi possono essere trovati approfondimenti e documentazione relati * ITALIANO * [Python.it - I libri su Python](http://www.python.it/doc/libri/) * INGLESE - * [Free Programming Books](https://github.com/EbookFoundation/free-programming-books/blob/master/free-podcasts-screencasts-en.md#python) - * [Packt Publishing: Free Learning - Free Programming Ebooks](https://www.packtpub.com/packt/offers/free-learning) - * [O’Reilly Media: Free Ebooks](http://www.oreilly.com/free/reports.html) + * [Python projects for beginners](https://beginnerpythonprojects.com/) + * [Free Programming Books](https://github.com/EbookFoundation/free-programming-books/blob/main/casts/free-podcasts-screencasts-en.md#python) + * [Packt Publishing: Free Learning - Free Programming Ebooks](https://www.packtpub.com/free-learning) + * [O’Reilly: Open Books](https://www.oreilly.com/openbook/) * [Syncfusion: Succinctly free eBooks](https://www.syncfusion.com/ebooks) - * [Awesome Python Awesome](https://github.com/vinta/awesome-python) - list of frameworks, libraries, software and resources + * [Awesome Python](https://github.com/vinta/awesome-python) - una lista di frameworks, librerie e software * ### Video Corsi e Tutorial * ITALIANO * [Python.it - Media](http://python.it/doc/media/) * INGLESE - * [Free Python Podcasts and Screencasts](https://github.com/EbookFoundation/free-programming-books/blob/master/free-podcasts-screencasts-en.md#python) + * [Free Python Podcasts and Screencasts](https://github.com/EbookFoundation/free-programming-books/blob/main/casts/free-podcasts-screencasts-en.md) --- -Ogni contributo è ben accetto, leggi il [codice di condotta](CODE_OF_CONDUCT.md) e la pagina con le [linee guida alla collaborazione](CONTRIBUTING.md). +Ogni contributo è ben accetto, leggi il [codice di condotta](https://github.com/pythonitalia/python-abc/blob/master/CODE_OF_CONDUCT.md) e la pagina con le [linee guida alla collaborazione](https://github.com/pythonitalia/python-abc/blob/master/CONTRIBUTING.md). Questa guida è è pubblicata con licenza [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/) (Creative Commons Attribution 4.0 International) - [leggi qui i dettagli](https://github.com/pythonitalia/python-abc/blob/master/LICENSE).