Python: 2 - Le Variabili

Le Variabili 

Le variabili sono essenzialmente un comodo contenitore per memorizzare le informazioni. In Python, le variabili sono molto flessibili. Non è necessario dichiarare un tipo. Il tipo viene generalmente determinato quando gli si assegna un valore. Infatti, dichiari una variabile assegnandole un valore. Questo è importante da ricordare quando inizi con i numeri. In Python, c'è una differenza tra 1 e 1.0. Il primo numero è un intero e il secondo è un float

Ecco alcune regole generali per le variabili: 

• Possono contenere solo lettere, numeri e trattini bassi 

• Sono sensibili al maiuscolo / minuscolo; ad esempio, variabile non è la stessa di Variabile.  

Non utilizzare parole chiave Python 

Oltre a queste regole ferree, ecco un paio di suggerimenti: 

• Rendi il nome della variabile significativo con il minor numero di caratteri possibile 

• Fare attenzione quando si utilizza la L minuscola (l) e la O maiuscola (O). Questi caratteri sono molto simili a 1 e 0, il che può creare confusione. Non sto dicendo di non usarli; assicurati solo che sia chiaro cosa stai facendo. È fortemente sconsigliato utilizzarli come nomi di variabili a carattere singolo.


Tipi di dati 

Python è un linguaggio tipizzato dinamicamente. Ciò significa che il tipo di dati memorizzati in una variabile non viene verificato fino a quando il programma non viene eseguito, non durante la compilazione. Ciò consente di posticipare l'assegnazione di un tipo fino a quando non viene assegnato un valore. Tuttavia, anche Python è fortemente tipizzato e fallirà se si tenta di eseguire un'operazione che non è valida per quel tipo di dati. Ad esempio, non è possibile eseguire operazioni matematiche su una variabile contenente una stringa. Pertanto, è importante tenere traccia del tipo di dati a cui fa riferimento la variabile. 
Di seguito farò una breve descrizione di due tipi di dati di base (stringhe e numeri) ed alcuni dei tipi più complessi: tuple, elenchi e dizionari. Python ti consente di definire i tuoi tipi come classi. 
 

Stringhe 

Una stringa è una raccolta di uno o più caratteri contenuti tra virgolette. Le virgolette sono il modo in cui indichi una stringa. Ad esempio, "100" è una stringa; 100 è un numero (un numero intero per essere più precisi). Puoi usare virgolette doppie o singole (ricorda solo cosa hai usato). Puoi annidare un tipo di virgolette all'interno di un altro, ma otterrai un errore o, peggio, risultati imprevisti, se incroci le virgolette. 

Ecco un esempio di virgolette doppie: 
>>> print("Questo è un testo") 
Questo è un testo 

Ecco un esempio di virgolette singole: 
>>> print('Questo è un testo') 
Questo è un testo 

Ecco un esempio di virgolette singole all'interno di virgolette doppie: 
>>> print ("'Questo è testo'") 
'Questo è un testo' 

Ecco un esempio di virgolette doppie all'interno di virgolette singole: 
>>> print ('"Questo è testo"') 
"Questo è un testo" 

Le virgolette triple vengono utilizzate per estendere più righe all'interno di una stringa. Ecco un esempio di virgolette triple: 
>>> print ("""questo
 è 
un
testo""") 

Questo
è 
un
testo 

Puoi usare virgolette singole come apostrofi se prima esegui l'escape. Escape di un carattere significa semplicemente che stai dicendo all'interprete di vedere un carattere come un carattere stringa piuttosto che funzionale. 

Ecco un esempio di escape tra virgolette: 
>>> print('Questo o l'altro non funzionerà') 
File "<stdin>", riga 1 
            print ('Questo o l'altro non funzionerà'') 
                              
SyntaxError: sintassi non valida 

>>> print ('L\'altro non avrà errori') 
L'altro non avrà errori 

Puoi farlo all'intera stringa rendendola una stringa grezza. In questo esempio successivo, "/n" viene utilizzato per spostarsi su una nuova riga. 

Ecco un esempio di una stringa grezza: 
>>> print('qualcosa \nuovo') 
qualcosa uovo 

>>> print(r'qualcosa \nuovo ') 
qualcosa /nuovo 

Manipolazione delle Stringhe 

Esistono molti modi per manipolare le stringhe. Alcuni sono abbastanza semplici, come la concatenazione, ovvero l'aggiunta di stringhe. Tuttavia, alcuni di loro sono un pò sorprendenti. Le stringhe vengono trattate come un elenco di valori di carattere. Più avanti esploreremo gli elenchi in maggiore dettaglio. Tuttavia, utilizzeremo alcuni dei tratti delle liste per lavorare con le stringhe. 
Poiché le stringhe sono elenchi, simili agli array in altre lingue, possiamo fare riferimento a caratteri specifici all'interno di una stringa. Come gli elenchi, le stringhe sono indicizzate a zero. Ciò significa che il primo carattere di una stringa è nella posizione zero. 

Con le stringhe, come le liste, il primo carattere è all'indice [0]: 
>>> robot = "pippo" 
>>> robot[0] 

Quando si utilizza un numero negativo, l'indice inizia alla fine della stringa e funziona all'indietro. 
>>> robot[-1] 

Il taglio di una stringa consente di estrarre una sottostringa. Quando si taglia una stringa, si forniscono due numeri separati da due punti. Il primo numero è l'indice iniziale e il secondo è l'indice finale. 
>>> robot[0: 3] 
pip 

Si noti che durante il taglio, il primo indice è inclusivo e il secondo indice è esclusivo. Nell'esempio precedente, il valore all'indice [0] restituito, "p"; mentre il valore all'indice [3] non era "p". 
Quando si taglia, se si lascia uno degli indici, si assume l'inizio o la fine della stringa. 
>>> robot[: 3] 
pip 

>>> robot[3:] 
po 

L'unione di stringhe viene chiamata concatenazione. Con Python, puoi facilmente unire stringhe insieme. Funziona con stringhe letterali e variabili stringa. Puoi anche moltiplicare le stringhe per un effetto interessante. Puoi aggiungere due stringhe insieme. 

>>> print("Ro" + "bot") 
Robot 

Puoi aggiungere variabili stringa insieme, in questo modo: 
>>> x = "Ro" 
>>> y = "bot" 
>>> z = x + y 
>>> print(z) 
Robot 

Puoi aggiungere una variabile stringa e un valore letterale. 
>>> print (x + "bot") 
Robot 

Puoi moltiplicare le stringhe letterali. 
>>> print (2 * "ro" + "bot") 
rorobot 

La moltiplicazione delle stringhe, tuttavia, funziona solo sui letterali. Non funzionerà con variabili stringa.

I Numeri 

I numeri in Python sono disponibili in pochi tipi, i più comuni dei quali sono interi e float. 
Un numero intero è un numero intero, mentre un float è un decimale. Python utilizza anche un tipo booleano che ha un valore di uno o zero. Questi sono spesso usati come flag o stato, dove uno significa "acceso" (o vero) e zero significa "spento" (o falso). Un booleano è una sottoclasse di numeri interi e vengono trattati come numeri interi durante l'esecuzione delle operazioni. Come ci si potrebbe aspettare, è possibile eseguire operazioni matematiche con tipi di numeri. In genere, se esegui operazioni aritmetiche con un tipo, il risultato è quel tipo. 
La matematica che utilizza numeri interi di solito produce un numero intero. Tuttavia, se esegui la divisione con numeri interi, il risultato è un float. 
La matematica con i float risulta in un float. Se esegui operazioni aritmetiche con entrambi i tipi, il risultato è un float. 

L'addizione di due numeri interi produce un numero intero. 
>>> 2 + 3 

L'addizione di due float risulta in un float. 
>>> 0,2 + 0,3 
0,5 

Aggiungendo un float e un intero si ottiene un float. 
>>> 1 + 0,5 
1,5 

La sottrazione e la moltiplicazione funzionano allo stesso modo. 
>>> 3-2 
>>> 3-1,5 
1.5 
>>> 2 * 3 
>>> 2 * 0,8 
1,6 

La divisione si traduce sempre in un float. 
>>> 3.2 / 2 
1.6 
>>> 3/2 
1.5 

L'operatore ** risulta nel primo numero elevato alla potenza del secondo. 
>>> 3 ** 2 

Tuttavia, c'è un problema con i float Python. L'interprete a volte produce un numero apparentemente arbitrario di cifre decimali. Questo ha a che fare con il modo in cui la notazione in virgola mobile viene memorizzata in Python e come la matematica viene eseguita all'interno dell'interprete. 
>>> 0,2 + 0,1 
0,30000000000000004

Booleani vero / falso

C'è un terzo tipo di dati in Python che non è esattamente un numero o una stringa. È chiamato booleano (dal nome di un matematico di nome George Boole) e può essere uno dei due valori: Vero o Falso. 
Può sembrare un po 'strano avere un tipo di dati per qualcosa che può essere solo Vero o Falso. Tuttavia, a causa del modo in cui i computer svolgono il loro lavoro, è effettivamente efficiente rendere Vero / Falso il proprio tipo di dati. 
Un singolo bit, che è la più piccola unità di archiviazione in un computer, è tutto ciò che è necessario per memorizzare un valore che può essere solo Vero o Falso.
Nel codice Python, le persone memorizzano i valori True o False nelle variabili utilizzando un formato simile a questo:

x = True

o

X = False

Si capisce che True e False sono booleani perché non sono racchiusi tra virgolette (come sarebbe una stringa) e non sono numeri. Inoltre, è richiesto il limite iniziale. In altre parole, la prima lettera deve essere maiuscola e tutte le lettere successive devono essere minuscole.

Liste 

Un elenco è una raccolta di elementi in un ordine particolare. In altre lingue, sono generalmente noti come array. Puoi mettere tutto quello che vuoi in un elenco. I valori memorizzati in un elenco non devono essere dello stesso tipo di dati. Tuttavia, se mescoli i tipi di dati in un elenco, assicurati di sapere quale tipo stai ricevendo quando lo usi. Lavoravi con le liste quando lavoravi con le stringhe. Una stringa è essenzialmente un elenco di caratteri. Pertanto, l'indicizzazione e la suddivisione in sezioni funzionano anche con gli elenchi. 
Viene creato un elenco utilizzando le parentesi quadre []. 
>>> robots = ["pippo", "Pluto", "Paperino"] 
>>> robots 
["pippo", "Pluto", "Paperino"] 

Come le stringhe, gli elenchi sono indicizzati a zero. Ciò significa che il primo elemento in una lista è in posizione 0, il secondo è in posizione 1 e così via. È possibile accedere ai singoli elementi di un elenco richiamandone l'indice o la posizione all'interno dell'elenco. 
>>> robot[0] 
"pippo
>>> robot[-1] 
"Paperino

Le liste possono anche essere tagliate. Quando un elenco viene suddiviso, il risultato è un nuovo elenco contenente il sottoinsieme dell'elenco originale. 
>>> robot[1:3] 
["Pluto", "Paperino"

È facile aggiungere, modificare e rimuovere membri di un elenco utilizzando la suddivisione in sezioni e la concatenazione. 

Questo esempio aggiunge membri a un elenco. 
>>> more_bots = robots + ["Roomba", "Neato", "InMoov"] 
>>> more_bots 
["pippo", "Pluto", "Paperino", "Roomba", "Neato", "InMoov"] 

Questo esempio modifica i membri in un elenco. 
>>> more_bots[3] = "ASIMO" 
>>> more_bots 
["pippo", "Pluto", "Paperino", "ASIMO", "Neato", "InMoov"] 

Questo esempio rimuove i membri di un elenco. 
>>> more_bots[3:5] = [] 
>>> more_bots 
["pippo", "Pluto", "Paperino", "InMoov"] 

Assegna i membri dell'elenco alle variabili: 
>>> a, b = more_bots [0: 2] 
>>> a 'nomade' 
>>> b "Ponginator" 

Esistono numerosi metodi inclusi automaticamente negli elenchi. Ad esempio, puoi forzare l'iniziale maiuscola della prima lettera di un nome. 
>>> print(robots[0].title()) 
Pippo 

Come ho già detto, un elenco può contenere qualsiasi tipo di dati, inclusi altri elenchi. Infatti, quando iniziamo a lavorare con la visione artificiale, useremo spesso elenchi di elenchi per contenere i dati delle immagini. 

Tuple 

Sentirai molto il termine tuple quando lavori con Python. Un tuple è semplicemente un tipo speciale di elenco che non può essere modificato. Pensa a un tuple come ad un elenco di costanti o ad un elenco di costanti. Dichiari un tuple usando le parentesi anziché le parentesi quadre. Le tuple sono immutabili, il che significa che una volta che un tuple è stata creata, non può essere modificata. 
Per modificare il contenuto di un tuple, è necessario creare un nuovo tuple. 
Questo viene fatto utilizzando le stesse tecniche di suddivisione che abbiamo usato per stringhe ed elenchi. 
>>> colori = ("rosso", "giallo", "blu") 
>>> colori
('rosso', 'giallo', 'blu') 
>>> colori2 = colori[0: 2] 
>>> colori2
('rosso', 'giallo') 

Si noti che abbiamo usato la notazione elenco quando si taglia la tupla, colori[0: 2] invece che colori(0: 2). Il risultato della sezione è ancora un tuple. Un tuple, tuttavia, può essere sostituita. 
>>> colori2 = (1,2,3) 
>>> colori2 
(1,2,3) 

Possono anche essere sostituiti con una tupla vuota. 
>>> colori2 = () 
>>> colori2
() 

Dizionari 

Un dizionario è simile a un elenco tranne per il fatto che ti consente di assegnare un nome agli elementi nell'elenco. Questo viene fatto utilizzando coppie chiave / valore. La chiave diventa l'indice del valore. Ciò ti consente di aggiungere una struttura significativa ai tuoi elenchi. Sono utili per contenere un elenco di parametri o proprietà. Un dizionario viene dichiarato utilizzando le parentesi graffe anziché le parentesi quadre. 
>>> Due = {'tipo': 'windows', 'colore': 'nero', 'processore': 'Intel'} 
>>> print(Due['tipo']) 
windows 

Lavorate con i dizionari più o meno allo stesso modo di un array. Tranne che invece di fornire un numero di indice, fornisci la chiave per accedere a un elemento. Ci sono un paio di cose da sapere sui dizionari prima di usarli.

• La chiave deve essere un valore immutabile, come un numero o una stringa. Le tuple possono essere utilizzate anche come chiavi. 

• Una chiave non può essere definita più di una volta in un dizionario. 

Come le variabili, il valore di una chiave è l'ultimo assegnato. 
>>> Uno = {'tipo': 'test', 'colore': 'nero', 'tipo': 'ruote'} 
>>> Uno 
{'colore': 'nero', 'tipo': 'ruote'} 

In questo esempio, il primo valore di "tipo" è stato sovrascritto dal secondo. 

I dizionari possono essere nidificati come valori all'interno di altri dizionari. Nell'esempio seguente, ho incorporato la definizione per il mio progetto, Due, in un dizionario dei miei amici. 

>>> mieiAmici = {'Uno':  Uno, 'Due': Due, 'Tre': 'TEST'} 
>>> mieiAmici 
{'Uno': {'colore': 'nero', 'tipo': 'ruote'} , 'Due': {'colore': 'nero', 'tipo': 'ruote'}, 'Tre': ' TEST '} 

Ovviamente, un dizionario non sarebbe così utile se non fossi in grado di aggiornare e manipolare i valori contenuti all'interno. Apportare modifiche a un dizionario è simile a apportare modifiche a un elenco. L'unica vera differenza è che usi la chiave piuttosto che la posizione per accedere ai vari elementi. Per aggiornare un valore, utilizzare la chiave per fare riferimento al valore da modificare. 
>>> mieiAmici['Tre'] = 'Ultimo' 
>>> mieiAmici 
{'Uno': {'colore': 'nero', 'tipo': 'ruote'} , 'Due': {'colore': 'nero', 'tipo': 'ruote'}, 'Tre': ' Ultimo'} 

Una coppia chiave / valore 
>>> del mieiAmici["Tre"] 
>>> mieiAmici 
{'Uno': {'colore': 'nero', 'tipo': 'ruote'} , 'Due': {'colore': 'nero', 'tipo': 'ruote'}} 

Un dizionario può essere copiato con il metodo copy della classe dictionary. Per accedere al metodo di copia, inizia con il nome del dizionario e aggiungi .copy() alla fine. 
>>> altriAmici = mieiAmici.copy() 
>>> altriAmici
{'Uno': {'colore': 'nero', 'tipo': 'ruote'} , 'Due': {'colore': 'nero', 'tipo': 'ruote'}} 

Per aggiungere un dizionario alla fine di un altro, utilizzare il metodo update(). 
>>> conoscenti = {'Nome': 'Pluto', 'classe': 'terza'} 
>>> mieiAmici.update(conoscenti) 
>>> mieiAmici 
{'Uno': {'colore': 'nero', 'tipo': 'ruote'} , 'Due': {'colore': 'nero', 'tipo': 'ruote'}, 'Nome': 'Pluto', 'classe': 'terza'} 

Nessun commento: