Python - Tipi di variabili

Le variabili non sono altro che posizioni di memoria riservate per memorizzare i valori. Ciò significa che quando crei una variabile riservi dello spazio in memoria.

In base al tipo di dati di una variabile, l'interprete alloca la memoria e decide cosa può essere memorizzato nella memoria riservata. Pertanto, assegnando diversi tipi di dati alle variabili, è possibile memorizzare numeri interi, decimali o caratteri in queste variabili.

Assegnazione di valori alle variabili

Le variabili Python non richiedono una dichiarazione esplicita per riservare spazio di memoria. La dichiarazione avviene automaticamente quando si assegna un valore a una variabile. Il segno di uguale (=) viene utilizzato per assegnare valori alle variabili.

L'operando a sinistra dell'operatore = è il nome della variabile e l'operando a destra dell'operatore = è il valore memorizzato nella variabile. Ad esempio:

#!/usr/bin/python

counter = 100          # An integer assignment
miles   = 1000.0       # A floating point
name    = "John"       # A string

print counter
print miles
print name

Qui, 100, 1000.0 e "John" sono i valori assegnati rispettivamente alle variabili counter , miles e name . Questo produce il seguente risultato:

100
1000.0
John

Assegnazione multipla

Python consente di assegnare un singolo valore a più variabili contemporaneamente. Ad esempio:

a = b = c = 1

Qui, viene creato un oggetto intero con il valore 1 e tutte e tre le variabili vengono assegnate alla stessa posizione di memoria. È inoltre possibile assegnare più oggetti a più variabili. Ad esempio:

a,b,c = 1,2,"john"

In questo caso, due oggetti interi con valori 1 e 2 sono assegnati rispettivamente alle variabili aeb e un oggetto stringa con il valore "john" viene assegnato alla variabile c.

Tipi di dati standard

I dati archiviati in memoria possono essere di molti tipi. Ad esempio, l'età di una persona viene memorizzata come valore numerico e il suo indirizzo viene memorizzato come caratteri alfanumerici. Python ha vari tipi di dati standard che vengono utilizzati per definire le operazioni possibili su di essi e il metodo di archiviazione per ciascuno di essi.

Python ha cinque tipi di dati standard:

  • Numbers
  • String
  • List
  • Tuple
  • Dictionary

Numeri Python

I tipi di dati numerici memorizzano valori numerici. Gli oggetti numerici vengono creati quando si assegna loro un valore. Ad esempio:

var1 = 1
var2 = 10

È inoltre possibile eliminare il riferimento a un oggetto numero utilizzando l'istruzione del. La sintassi dell'istruzione del è:

del var1[,var2[,var3[....,varN]]]]

È possibile eliminare uno o più oggetti utilizzando l'istruzione del. Ad esempio:

del var
del var_a, var_b

Python supporta quattro diversi tipi numerici:

  • int (numeri interi con segno)
  • long (numeri interi lunghi, possono essere rappresentati anche in ottale ed esadecimale)
  • float (valori reali in virgola mobile)
  • complesso (numeri complessi)

Esempi

Ecco alcuni esempi di numeri:

int lungo galleggiante complesso
10 51924361L 0.0 3.14j
100 -0x19323L 15.20 45.j
-786 0122L -21.9 9.322e-36j
080 0xDEFABCECBDAECBFBAEl 32,3 + e18 .876j
-0490 535633629843L -90. -.6545 + 0J
-0x260 -052318172735L -32.54e100 3e + 26J
0x69 -4721885298529L 70.2-E12 4.53e-7j
  • Python consente di utilizzare una l minuscola con long, ma si consiglia di utilizzare solo una L maiuscola per evitare confusione con il numero 1. Python visualizza interi lunghi con una L. maiuscola

  • Un numero complesso è costituito da una coppia ordinata di numeri reali in virgola mobile indicati con x + yj, dove xey sono i numeri reali e j è l'unità immaginaria.

Stringhe Python

Le stringhe in Python sono identificate come un insieme contiguo di caratteri rappresentato tra virgolette. Python consente coppie di virgolette singole o doppie. I sottoinsiemi di stringhe possono essere presi usando l'operatore slice ([] e [:]) con indici che iniziano da 0 all'inizio della stringa e si muovono da -1 alla fine.

Il segno più (+) è l'operatore di concatenazione di stringhe e l'asterisco (*) è l'operatore di ripetizione. Ad esempio:

#!/usr/bin/python

str = 'Hello World!'

print str          # Prints complete string
print str[0]       # Prints first character of the string
print str[2:5]     # Prints characters starting from 3rd to 5th
print str[2:]      # Prints string starting from 3rd character
print str * 2      # Prints string two times
print str + "TEST" # Prints concatenated string

Questo produrrà il seguente risultato:

Hello World!
H
llo
llo World!
Hello World!Hello World!
Hello World!TEST

Elenchi Python

Gli elenchi sono i più versatili dei tipi di dati composti di Python. Un elenco contiene elementi separati da virgole e racchiusi tra parentesi quadre ([]). In una certa misura, gli elenchi sono simili agli array in C. Una differenza tra loro è che tutti gli elementi che appartengono a un elenco possono essere di diverso tipo di dati.

È possibile accedere ai valori memorizzati in un elenco utilizzando l'operatore slice ([] e [:]) con indici che iniziano da 0 all'inizio dell'elenco e procedono fino alla fine -1. Il segno più (+) è l'operatore di concatenazione dell'elenco e l'asterisco (*) è l'operatore di ripetizione. Ad esempio:

#!/usr/bin/python

list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
tinylist = [123, 'john']

print list          # Prints complete list
print list[0]       # Prints first element of the list
print list[1:3]     # Prints elements starting from 2nd till 3rd 
print list[2:]      # Prints elements starting from 3rd element
print tinylist * 2  # Prints list two times
print list + tinylist # Prints concatenated lists

Questo produce il seguente risultato:

['abcd', 786, 2.23, 'john', 70.2]
abcd
[786, 2.23]
[2.23, 'john', 70.2]
[123, 'john', 123, 'john']
['abcd', 786, 2.23, 'john', 70.2, 123, 'john']

Tuple Python

Una tupla è un altro tipo di dati di sequenza simile all'elenco. Una tupla è composta da un numero di valori separati da virgole. A differenza degli elenchi, tuttavia, le tuple sono racchiuse tra parentesi.

Le principali differenze tra liste e tuple sono: Le liste sono racchiuse tra parentesi ([]) e i loro elementi e le loro dimensioni possono essere cambiate, mentre le tuple sono racchiuse tra parentesi (()) e non possono essere aggiornate. Le tuple possono essere pensate comeread-onlyelenchi. Ad esempio:

#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
tinytuple = (123, 'john')

print tuple               # Prints the complete tuple
print tuple[0]            # Prints first element of the tuple
print tuple[1:3]          # Prints elements of the tuple starting from 2nd till 3rd 
print tuple[2:]           # Prints elements of the tuple starting from 3rd element
print tinytuple * 2       # Prints the contents of the tuple twice
print tuple + tinytuple   # Prints concatenated tuples

Questo produce il seguente risultato:

('abcd', 786, 2.23, 'john', 70.2)
abcd
(786, 2.23)
(2.23, 'john', 70.2)
(123, 'john', 123, 'john')
('abcd', 786, 2.23, 'john', 70.2, 123, 'john')

Il codice seguente non è valido con la tupla, perché si è tentato di aggiornare una tupla, operazione non consentita. Caso simile è possibile con gli elenchi -

#!/usr/bin/python

tuple = ( 'abcd', 786 , 2.23, 'john', 70.2  )
list = [ 'abcd', 786 , 2.23, 'john', 70.2  ]
tuple[2] = 1000    # Invalid syntax with tuple
list[2] = 1000     # Valid syntax with list

Dizionario Python

I dizionari di Python sono una specie di tabella hash. Funzionano come array associativi o hash trovati in Perl e sono costituiti da coppie chiave-valore. Una chiave del dizionario può essere quasi qualsiasi tipo Python, ma di solito sono numeri o stringhe. I valori, d'altra parte, possono essere qualsiasi oggetto Python arbitrario.

I dizionari sono racchiusi tra parentesi graffe ({}) e i valori possono essere assegnati e accessibili utilizzando le parentesi quadre ([]). Ad esempio:

#!/usr/bin/python

dict = {}
dict['one'] = "This is one"
dict[2]     = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}


print dict['one']       # Prints value for 'one' key
print dict[2]           # Prints value for 2 key
print tinydict          # Prints complete dictionary
print tinydict.keys()   # Prints all the keys
print tinydict.values() # Prints all the values

Questo produce il seguente risultato:

This is one
This is two
{'dept': 'sales', 'code': 6734, 'name': 'john'}
['dept', 'code', 'name']
['sales', 6734, 'john']

I dizionari non hanno il concetto di ordine tra gli elementi. Non è corretto affermare che gli elementi sono "fuori servizio"; sono semplicemente non ordinati.

Conversione del tipo di dati

A volte, potrebbe essere necessario eseguire conversioni tra i tipi incorporati. Per convertire tra i tipi, è sufficiente utilizzare il nome del tipo come funzione.

Esistono diverse funzioni integrate per eseguire la conversione da un tipo di dati a un altro. Queste funzioni restituiscono un nuovo oggetto che rappresenta il valore convertito.

Sr.No. Descrizione della funzione
1

int(x [,base])

Converte x in un numero intero. base specifica la base se x è una stringa.

2

long(x [,base] )

Converte x in un intero lungo. base specifica la base se x è una stringa.

3

float(x)

Converte x in un numero in virgola mobile.

4

complex(real [,imag])

Crea un numero complesso.

5

str(x)

Converte l'oggetto x in una rappresentazione di stringa.

6

repr(x)

Converte l'oggetto x in una stringa di espressione.

7

eval(str)

Valuta una stringa e restituisce un oggetto.

8

tuple(s)

Converte s in una tupla.

9

list(s)

Converte s in un elenco.

10

set(s)

Converte s in un set.

11

dict(d)

Crea un dizionario. d deve essere una sequenza di tuple (chiave, valore).

12

frozenset(s)

Converte i messaggi di posta elettronica in un set congelato.

13

chr(x)

Converte un numero intero in un carattere.

14

unichr(x)

Converte un numero intero in un carattere Unicode.

15

ord(x)

Converte un singolo carattere nel suo valore intero.

16

hex(x)

Converte un numero intero in una stringa esadecimale.

17

oct(x)

Converte un numero intero in una stringa ottale.