6 999
contributi
S3v (discussione | contributi) (tolto "stub") |
|||
(43 versioni intermedie di 3 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{ | {{Acc_Menu_Python}} | ||
== Tipi numerici == | == Tipi numerici == | ||
=== Interi === | === Interi === | ||
Gli interi sono... numeri interi :) | Gli interi sono... numeri interi :) | ||
Riga 29: | Riga 30: | ||
=== Numeri complessi === | === Numeri complessi === | ||
Li tralasciamo. Chi è interessato ora sa che in Python esiste un tipo predefinito per gestirli; si presume che sia in grado di trovare la documentazione autonomamente. | Li tralasciamo. Chi è interessato ora sa che in Python esiste un tipo predefinito per gestirli; si presume che sia in grado di trovare la documentazione autonomamente. | ||
== Booleani == | == Booleani == | ||
Riga 47: | Riga 49: | ||
0 | 0 | ||
</pre> | </pre> | ||
== Sequenze == | == Sequenze == | ||
Una sequenza può essere definita come un elenco ordinato e numerabile di oggetti. | Una sequenza può essere definita come un elenco ordinato e numerabile di oggetti. | ||
In Python esistono 6 diversi tipi di sequenze: '''stringhe, bytes, bytearray, liste, tuple e range'''. | In Python esistono 6 diversi tipi di sequenze: '''stringhe, bytes, bytearray, liste, tuple e range'''. | ||
In questa sede tratteremo le | Le sequenze si dividono in 2 categorie, '''mutabili''' (liste, bytearray) e '''immutabili''' (stringhe e tuple, bytes), per ''mutabile'' si intende la possibilità di aggiungere, modificare ed eliminare componenti (oggetti). | ||
I range sono sequenze di numeri ottenute tramite l'omonima funzione ''range()''. | |||
In questa sede tratteremo le sequenze più comuni: '''stringhe''', '''liste''' e '''tuple'''. | |||
=== Stringhe === | === Stringhe === | ||
Riga 80: | Riga 85: | ||
</pre> | </pre> | ||
Le stringhe possono essere '''indicizzate (indexed)''', cioé la posizione di ogni carattere può essere individuata con un numero intero: | |||
Le stringhe possono essere '''indicizzate (indexed)''', cioé la posizione di ogni carattere può essere individuata con un numero intero | |||
<pre> | <pre> | ||
+---+---+---+---+---+ | +---+---+---+---+---+ | ||
Riga 91: | Riga 95: | ||
L'indicizzazione, come mostra la tabella sopra, può essere effettuata sia partendo dal primo carattere (sequenza di numeri positivi) che dall' ultimo (sequenza di numeri negativi). | L'indicizzazione, come mostra la tabella sopra, può essere effettuata sia partendo dal primo carattere (sequenza di numeri positivi) che dall' ultimo (sequenza di numeri negativi). | ||
E' possibile estrapolare porzioni (substring) o singoli caratteri di una stringa per mezzo dello '''slicing''' (taglio). | |||
E' possibile estrapolare porzioni (substring) o singoli caratteri di una stringa per mezzo dello '''slicing''' ( | |||
Per estrapolare il primo carattere posso scrivere: | Per estrapolare il primo carattere posso scrivere: | ||
Riga 146: | Riga 149: | ||
'avorP' | 'avorP' | ||
</pre> | </pre> | ||
Le stringhe possono essere '''concatenate''' con l'operatore '''+''': | Le stringhe possono essere '''concatenate''' con l'operatore '''+''': | ||
Riga 159: | Riga 161: | ||
</pre> | </pre> | ||
Per la manipolazione delle stringhe sono disponibili una serie di '''operazioni comuni a tutte le sequenze''' (mutabili e non, eccetto che per i range), di seguito il link alla documentazione uffciale (prima tabella ): | |||
* [http://docs.python.org/release/3.1.3/library/stdtypes.html#sequence-types-str-bytes-bytearray-list-tuple-range Sequence Types — str, bytes, bytearray, list, tuple, range] | |||
Per | Per l'analisi dei singoli '''metodi''' applicabili alle stringhe: | ||
{{Box|Nota|Un metodo può essere definito (in modo un po' rudimentale) come una funzione applicabile ad un determinato oggetto. La sintassi standard é: ''oggetto.nome_metodo()''}} | {{Box|Nota|Un metodo può essere definito (in modo un po' rudimentale) come una funzione applicabile ad un determinato oggetto. La sintassi standard é: ''oggetto.nome_metodo()''}} | ||
* [http://docs.python.org/release/3.1.3/library/stdtypes.html#string-methods String Methods] | * [http://docs.python.org/release/3.1.3/library/stdtypes.html#string-methods String Methods] | ||
Riga 178: | Riga 181: | ||
{{Box|Nota|Per l'inserimento di oggetti di tipo stringa, é ammesso anche l'uso dei doppi apici}} | {{Box|Nota|Per l'inserimento di oggetti di tipo stringa, é ammesso anche l'uso dei doppi apici}} | ||
Tutti gli oggetti contenuti in una lista sono '''indicizzati (indexed)''' con un valore numerico ed é possibile eseguire lo '''slicing''', analogamente a quanto detto per le stringhe. | Tutti gli oggetti contenuti in una lista sono '''indicizzati (indexed)''' con un valore numerico ed é possibile eseguire lo '''slicing (taglio)''', analogamente a quanto detto per le stringhe. | ||
Le liste, essendo oggetti '''mutabili''', danno la possibilità di: | Le liste, essendo oggetti '''mutabili''', danno la possibilità di: | ||
inserire | ''inserire'' elementi: | ||
<pre> | <pre> | ||
Riga 190: | Riga 193: | ||
</pre> | </pre> | ||
modificare elementi | ''modificare'' elementi: | ||
<pre> | <pre> | ||
Riga 205: | Riga 208: | ||
['ho', 46, 'anni', 'da', 'compiere'] | ['ho', 46, 'anni', 'da', 'compiere'] | ||
</pre> | </pre> | ||
''eliminare'' elementi: | |||
<pre> | |||
>>> io[3:] = [] | |||
>>> io | |||
['ho', 46, 'anni'] | |||
</pre> | |||
analogamente alle stringhe, le liste possono essere '''concatenate''': | |||
<pre> | |||
>>> io+io | |||
['ho', 46, 'anni', 'ho', 46, 'anni'] | |||
</pre> | |||
'''ripeute''': | |||
<pre> | |||
>>> io*2 | |||
['ho', 46, 'anni', 'ho', 46, 'anni'] | |||
</pre> | |||
possiamo '''aggiungere liste come nuovi elementi''', e agire sugli elementi di quest'ultime: | |||
<pre> | |||
>>> accidenti = ['sono', 'già', 'grande'] | |||
>>> io[3:3] = [accidenti] | |||
>>> io | |||
['ho', 46, 'anni', ['sono', 'già', 'grande']] | |||
>>> io[3][2] | |||
'grande' | |||
</pre> | |||
Per la manipolazione delle liste si possono effettuare una serie di '''operazioni comuni a tutte le sequenze mutabili''', di seguito il link alla documentazione ufficiale: | |||
* [http://docs.python.org/release/3.1.3/library/stdtypes.html#mutable-sequence-types Mutable sequence types] | |||
Per l'analisi dei '''metodi''' ed ulteriori funzionalità: | |||
* [http://docs.python.org/release/3.1.3/tutorial/datastructures.html#more-on-lists More on Lists] | |||
=== Tuple === | === Tuple === | ||
Per definire una tupla possiamo riprendere quando detto per le liste, insieme ordinato di oggetti. A differenza delle liste le tuple sono oggetti '''immutabili''', non é possibile inserire, modificare o cancellare elementi (oggetti). | |||
Le tuple possono contenere oggetti mutabili come loro elementi. | |||
Per creare una tupla la sintassi è la seguente: | |||
<pre> | |||
>>> tricolore = ('verde', 'bianco', 'rosso') | |||
>>> tricolore | |||
('verde', 'bianco', 'rosso') | |||
</pre> | |||
Anche gli elementi di una tupla sono '''indicizzati (indexed)''' con un valore numerico, ed é possibile eseguire lo '''slicing (taglio)''' in modo analogo a quanto detto per le liste. | |||
==Collezioni non ordinate== | |||
È possibile con i dizionari ed i set gestire oggetti in cui l'ordine di sequenza è superfluo. | |||
===Dizionari=== | |||
Trattasi di una sequenza non ordinata di coppie di valori ''chiave:valore''. Siccome sono implementati tramite una tabella di hash, risultano molto efficienti quando è necessario effettuare ricerche per chiave. | |||
Ecco qualche esempio: | |||
<pre>>>> libri = {"Dante": "divina commedia", "Macchiavelli": "il principe"} | |||
>>> libri | |||
{'Macchiavelli': 'il principe', 'Dante': 'divina commedia'} | |||
>>> libri.keys() | |||
dict_keys(['Macchiavelli', 'Dante']) | |||
>>> libri.items() | |||
dict_items([('Macchiavelli', 'il principe'), ('Dante', 'divina commedia')]) | |||
>>> libri['Macchiavelli'] | |||
'il principe'</pre> | |||
===Set=== | |||
I set sono collezioni disordinate di elementi unici. Molte delle operazioni che si possono compiere con questi oggetti sono direttamente collegabili alla teoria degli insiemi (quindi unione, differenza, intersezione, sottoinsieme...). | |||
Ecco un chiaro esempio: | |||
<pre> | |||
>>> a = {1,2,3,4,5,6} | |||
>>> 2 in a | |||
True | |||
>>> {2,3}.issubset(a) | |||
True | |||
>>> a | |||
{1, 2, 3, 4, 5, 6} | |||
>>> a = a - {3,6} | |||
>>> a | |||
{1, 2, 4, 5} | |||
>>> a.add(4) | |||
>>> a | |||
{1, 2, 4, 5} | |||
>>> a.add(4) | |||
>>> a | |||
{1, 2, 4, 5} | |||
>>> a.union({5,6,7}) | |||
{1, 2, 4, 5, 6, 7} | |||
</pre> | |||
[[Categoria:Accademia Python - Lezione 1]] | [[Categoria:Accademia Python - Lezione 1]] |
contributi