Skip to content

Commit bddfbc4

Browse files
committed
Initial commit
0 parents  commit bddfbc4

32 files changed

+2822
-0
lines changed

CODE_OF_CONDUCT.md

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Codice di condotta
2+
3+
Ogni collaboratore e manutentore di questo progetto, nell'interesse di promuovere una comunità aperta e accogliente, si impegna a rispettare tutte le persone che contribuiscono attraverso segnalazioni, aggiornamenti, pubblicazioni e richieste di funzionalità.
4+
5+
Ci si impegna a rendere la partecipazione a questo progetto un'esperienza piacevole per tutti, indipendentemente da: livello di esperienza, sesso, identità di genere ed espressione, orientamento sessuale, disabilità, aspetto personale, razza, etnia, età, religione, o nazionalità.
6+
7+
Esempi di comportamenti inaccettabili da parte dei partecipanti sono:
8+
9+
* L'uso di linguaggio o immagini sessuali
10+
* L'uso di linguaggio o immagini violenti o materiale sessualmente esplicito
11+
* Attacchi personali
12+
* Commenti offensivi / sprezzanti / trolling
13+
* Molestie pubbliche o private
14+
* Pubblicazione di informazioni private, come gli indirizzi fisici o elettronici, senza il permesso esplicito
15+
* Altri comportamenti non etici o non professionali
16+
17+
I Manutentori del progetto hanno il diritto e la responsabilità di rimuovere, modificare o rifiutare commenti, codice, modifiche wiki, messaggi e altri contributi che non sono allineati a questo codice di comportamento, o di rimuovere o _bannare_ qualsiasi collaboratore per comportamenti che ritengano inadeguato, minaccioso, offensivo, o dannoso.
18+
19+
Con l'adozione di questo Codice di Condotta, i manutentori del progetto si impegnano ad applicare in modo equo e coerente questi principi in ogni aspetto della gestione di questo progetto.
20+
Manutentori del progetto che non seguono o non fanno rispettare il codice di condotta possono essere rimossi in modo permanente dal team di progetto.
21+
22+
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à.
23+
24+
Questo codice di condatta è stato tradotto e adattato da:
25+
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).
26+

CONTRIBUTING.md

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Contributor License Agreement
2+
3+
Chiunque contribuisca a questo repository accetta implicitamente le regole descritte nel [codice di condotta](/CODE_OF_CONDUCT.md).
4+
5+
## Regole di pubblicazione
6+
7+
**Assicurarsi sempre che il materiale sia gratuito.**
8+
Un link per scaricare facilmente un libro non è sempre un link a un contenuto gratuito.
9+
Si è pregati di contribuire solo con contenuti che abbiano una chiare licenza d'uso indicante la libera distribuzione dell'opera .
10+
11+
**Segnalazione di contenuti**
12+
Non è necessario conoscere ed utilizzare git, se hai trovato qualcosa di utile per questo progetto è possibile semplicemente aprire una segnalazione tramite la funzionalità _issue_ di github.
13+
14+
**Pyllole**
15+
16+
* Ricordarsi che ci si rivolge a novizi non solo di Python ma anche di programmazione in generale.
17+
* Approfondire troppo potrebbe rendere meno comprensibili i concetti di base.
18+
* Omettere concetti basilari, d'altro canto, potrebbe creare "fondamenta poco solide".
19+
* Inserire link quando si citano concetti già descritti in altre Pyllole .
20+
21+
**Quale documentazione consigliare?**
22+
23+
* eBook, Corsi, Tutorial in formato testo, video o interattivi
24+
* Ricordarsi che l'obiettivo è quello di dare strumenti a chi sta iniziando a programmare, questo è l'ABC. Inutile pubblicare link a eBook o tutorial per librerie o framework specifici.
25+
* Non si vogliono linkare tutti i contenuti online su Python ma solo "i migliori".
26+
* Contenuti recenti, vista la velocità a cui cambiano le cose nel mondo della programmazione è sempre meglio privilegiare contenuti recenti
27+
* Risalire sempre alla fonte ufficiale, un link ad un eBook pubblicato all'interno di una conversazione di un forum non è un buon link.
28+
* Non verranno accettati link contenuti su google drive, dropbox, mega, scribd, issuu e altre piattaforme simili.

LICENSE

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
"Python ABC" di Dario Cassina e Python Italia APS è pubblicato con licenza Creative Commons Attribution 4.0 International.
2+
Per visualizzare una copia di questa licenza visitare https://creativecommons.org/licenses/by/4.0/
3+
4+
Parti di questo lavoro, dove indicato, sono derivate da altri progetti pubblicati sotto _licenza CC BY-SA_
5+
Di seguito la lista dei progetti condivisi o adattati:
6+
- "Learn X in Y minutes di adambard" disponibile presso l'indirizzo https://github.com/adambard/learnxinyminutes-docs, pubblicato sotto licenza CC BY-SA 3.0.
7+
- "The Contributor Covenant - version 1.3.0" disponibile presso l'indirizzo https://www.contributor-covenant.org/version/1/3/0/code-of-conduct.html, pubblicato sotto licenza CC BY 4.0.
8+
9+
Nota sui contenuti condivisi o adattati:
10+
I contenuti condivisi o adattati da altri progetti con una versione precedente di CC BY-SA possono essere pubblicati come indicato al punto 4b del codice legale CC dalla versione 2.0 (https://creativecommons.org/licenses/by-nc-sa/2.0 / legalcode).
11+
12+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
13+
English version
14+
15+
"Python ABC" by Dario Cassina and Python Italia APS is licensed under the Creative Commons Attribution 4.0 International License.
16+
To view a copy of this license, visit https://creativecommons.org/licenses/by/4.0/
17+
18+
Parts of this work, where indicated, are derived from other projects published under the CC BY-SA_license
19+
Below is the list of this shared or adapted projects:
20+
- "Learn X in Y minutes of adambard" available at https://github.com/adambard/learnxinyminutes-docs, published under CC BY-SA 3.0.
21+
- "The Covenant Contributor - version 1.3.0" available at https://www.contributor-covenant.org/version/1/3/0/code-of-conduct.html, published under CC BY 4.0 license .
22+
23+
Note on shared or adapted contents:
24+
Contents shared or adapted from other projects with a prior version of CC BY-SA may be published as indicated in point 4b of the CC legal code since version 2.0 (https://creativecommons.org/licenses/by-nc-sa/2.0/legalcode).

README.md

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Python ABC
2+
3+
_Se vuoi imparare Python parti dall'ABC._
4+
5+
Queste pagine vogliono essere un semplice strumento in grado di fornire un'immediata, unica e chiara risposta alle comuni domande di chi si avvicina per la prima volta al linguaggio Python.
6+
7+
* Come installo python?
8+
* Come funziona una lista/dizionario/ciclo/...?
9+
* Dove posso trovare documentazione, tutorial o corsi?
10+
11+
Prima di voler scrivere un qualunque programma con Python è necessario conoscere le basi.
12+
13+
[Vai alla pagina principale di Python-ABC](https://draio.github.io/Python-ABC/)
14+
15+
Ogni contributo è ben accetto, leggi il [codice di condotta](CODE_OF_CONDUCT.md) e la pagina con le [linee guida alla collaborazione](CONTRIBUTING.md).
16+
17+
Questa guida è è pubblicata con licenza Creative Commons Attribution 4.0 International [leggi qui](LICENSE) i dettagli.

docs/Pyllole/Classes.md

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Classi
2+
3+
Per creare una classe si utilizza l'istruzione `class`
4+
5+
```python
6+
class Human:
7+
# Un attributo della classe. E' condiviso tra tutte
8+
# le istanze delle classe
9+
species = "H. sapiens"
10+
11+
# Si noti che i doppi underscore iniziali e finali denotano
12+
# gli oggetti o attributi utilizzati da Python ma che vivono
13+
# nel namespace controllato dall'utente.
14+
# Metodi, oggetti o attributi come: __init__, __str__,
15+
# __repr__, etc. sono chiamati metodi speciali (o talvolta
16+
# chiamati "dunder methods").
17+
# Non dovresti inventare tali nomi da solo.
18+
19+
def __init__(self, name):
20+
# Assegna l'argomento all'attributo name dell'istanza
21+
self.name = name
22+
23+
# Inizializza una proprietà
24+
self._age = 0
25+
26+
# Un metodo dell'istanza. Tutti i metodi prendo "self"
27+
# come primo argomento
28+
def say(self, msg):
29+
print("{name}: {message}".format(name=self.name, message=msg))
30+
31+
# Un altro metodo dell'istanza
32+
def sing(self):
33+
return 'yo... yo... microphone check... one two... '
34+
35+
# Un metodo della classe è condiviso fra tutte le istanze
36+
# Sono chiamati con la classe chiamante come primo argomento
37+
@classmethod
38+
def get_species(cls):
39+
return cls.species
40+
41+
# Un metodo statico è chiamato senza classe o istanza
42+
# di riferimento
43+
@staticmethod
44+
def grunt():
45+
return "*grunt*"
46+
47+
# Una property è come un metodo getter.
48+
# Trasforma il metodo age() in un attributo in sola lettura,
49+
# che ha lo stesso nome
50+
@property
51+
def age(self):
52+
return self._age
53+
54+
# Questo metodo permette di modificare una property
55+
@age.setter
56+
def age(self, age):
57+
self._age = age
58+
59+
# Questo metodo permette di cancellare una property
60+
@age.deleter
61+
def age(self):
62+
del self._age
63+
```
64+
65+
Quando l'interprete Python legge un sorgente esegue tutto il suo codice.
66+
Il controllo su `__name__` assicura che questo blocco di codice venga eseguito solo quando questo modulo è il programma principale.
67+
68+
```python
69+
if __name__ == '__main__':
70+
# Crea un'istanza della classe
71+
i = Human(name="Ian")
72+
i.say("hi") # "Ian: hi"
73+
j = Human("Joel")
74+
j.say("hello") # "Joel: hello"
75+
# i e j sono istanze del tipo Human, o in altre
76+
# parole sono oggetti Human
77+
78+
# Chiama un metodo della classe
79+
i.say(i.get_species()) # "Ian: H. sapiens"
80+
# Cambia l'attributo condiviso
81+
Human.species = "H. neanderthalensis"
82+
i.say(i.get_species()) # => "Ian: H. neanderthalensis"
83+
j.say(j.get_species()) # => "Joel: H. neanderthalensis"
84+
85+
# Chiama un metodo statico
86+
print(Human.grunt()) # => "*grunt*"
87+
88+
# Non è possibile chiamare il metodo statico con l'istanza dell'oggetto
89+
# poiché i.grunt() metterà automaticamente "self" (l'oggetto i)
90+
# come argomento
91+
print(i.grunt()) # => TypeError: grunt() takes 0 positional arguments but 1 was given
92+
93+
# Aggiorna la property (age) di questa istanza
94+
i.age = 42
95+
# Leggi la property
96+
i.say(i.age) # => "Ian: 42"
97+
j.say(j.age) # => "Joel: 0"
98+
# Cancella la property
99+
del i.age
100+
i.age # => questo genererà un AttributeError
101+
```
102+
103+
104+
---
105+
106+
_This content is a derivative of ["Learn X in Y minutes"](https://github.com/adambard/learnxinyminutes-docs) by [adambard](https://github.com/adambard), used under a CC BY-SA 3.0 license._
+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
2+
# Ambiente di sviluppo
3+
4+
## L'editor di testo
5+
6+
Il fondamentale, e più usato, strumento di ogni programmatore è l'_editor di testo_, un programma in grado di creare e modificare file, testuali appunto, contenenti il codice sorgente dei programmi.
7+
Un file testuale è un file che contiente solo ed esclusivamente byte che verranno interpretati come caratteri di testo.
8+
9+
Un editori di testo non è un [IDE](#IDE), inizia a programmare con un semplice editor di testo e passa ad un [IDE](#IDE) solo quando avrai più esperienza.
10+
11+
**Nota**: Un _editor di testo_ non è un programma per il _word processing_, programmi come _MS-Word_ non scrivono file testuali ma file con un formato proprietario contenenti i dati relativi alla formattazione del testo (font, dimensioni, colori, ...). Un file di testo contenente una "a" avrà una lunghezza di 1 byte, l'equivalente testo in un file di _MS-Word_ genererà un file intorno ai 9.000 byte.
12+
13+
### Funzionalità
14+
15+
Naturalmente qualunque editor di testo in grado semplicemente di creare, aprire e modificare un file di testo ti permetterà di scrivere il tuo codice.
16+
Ci sono poi altre caratteristiche che ti renderanno la vita più semplice nelle ore che passerai a scrivere.
17+
18+
* Funzioni di ricerca e sostituzione
19+
* Funzioni per tagliare, copiare e incollare
20+
vRappresentazione a colori ([syntax highlighting](https://it.wikipedia.org/wiki/Syntax_highlighting)) del codice
21+
* Possibilità di aggiungere funzionalità dell'editor tramite _plugin_
22+
* Personalizzazione (dimensione del carattere, combinazioni di colori, ecc)
23+
24+
**Nota**: oggi è quasi obbligatorio che un editor di testo supporti la [codifica UTF-8](https://it.wikipedia.org/wiki/UTF-8).
25+
26+
27+
### Linea di comando
28+
29+
Se si programma per lavoro prima o poi Linux si dovrà utilizzare, per questo è fondamentale conoscere i suoi editor testuali da linea di comando: `vim` e `nano`.
30+
31+
Entrambi, funzionando in modalità testuale (non grafica) e possono sembrare un po' ostici. Tutti i comandi (esci, salva, cerca, ...) vengono attivati tramite combinazioni di tasti, il mouse, se siete fortunati, può essere utilizzato per selezionare un testo e copiarlo.
32+
33+
Tra i due `nano` è probabilmente il più semplice, si scrive direttamente sul "foglio" e in una barra vengono indicati i comandi principali, con `^` che indica il tasto `ctrl` (`ctrl+x` esce, `ctrl+o` salva, `ctrl+w` cerca).
34+
35+
36+
### I più diffusi editor di testo (ambiente grafico)
37+
38+
* [Sublime Text](https://www.sublimetext.com/)
39+
* [Atom](https://atom.io)
40+
* [visual Studio Code](https://code.visualstudio.com)
41+
42+
## IDE
43+
44+
Il processo di creazione del programma parte dalla scrittura del codice ma continua poi nelle fasi, ad esempio, di compilazione e [debug](https://it.wikipedia.org/wiki/Debugging). A seconda del linguaggio utilizzato, queste fasi vengono eseguite dal programmatore con vari singoli strumenti a sua disposizione.
45+
46+
Un IDE (Integrated Development Environment), conosciuto anche come _ambiente di sviluppo integrato_, è un unico programma dal quale è possibile gestire tutte le fasi dello sviluppo di un software. Un IDE permette da un unica interfaccia di scrivere, controllare, compilare, eseguire, testare e distribuire un programma.
47+
48+
* [PyCharm](https://www.jetbrains.com/pycharm/)
49+
* [PyDev (Eclipse for Python)](http://www.pydev.org/)
50+
* [WingIDE](https://wingware.com/)
51+
* [Komodo IDE](https://www.activestate.com/komodo-ide)

0 commit comments

Comments
 (0)