Liste in Python

Liste in Python

Le liste in Python sono una serie ordinata di valori identificati da un indice.

Quindi una lista è un dato composto che aggrega dei valori di qualsiasi tipo, racchiusi tra una coppia di parentesi quadre e separati da una virgola.

I valori che fanno parte di una lista si chiamano elementi e possono essere numeri o stringhe.

Esempi di liste in Python

Facciamo quindi degli esempi di liste in Python.

Creiamo una lista di nome voti che contiene i valori numerici da 6 a 9 e anche una stringa, ad esempio Ottimo.

voti=[6,7,8,9,‘Ottimo’]

Quindi, come detto prima, i valori possono essere di tipo diverso.


Facciamo un altro esempio di una lista che contiene valori dello stesso tipo.

Creiamo dunque una lista di nome stagioni, nella quale memorizziamo le stagioni dell’anno.

Dopo stampiamo la lista con la funzione print.

stagioni=[‘Primavera’, ‘Estate’, ‘Autunno’, ‘Inverno’]

print(stagioni)

Si stamperà: [‘Primavera’, ‘Estate’, ‘Autunno’, ‘Inverno’]


Indice della lista

Come abbiamo già detto ad ogni elemento della lista è assegnato un indice che parte da sinistra e inizia da 0. Dunque, per stampare ad esempio il primo elemento scriviamo:

print(stagioni[0])

Mentre per stampare l’ultimo elemento scriviamo:

print(stagioni[3])

Così come abbiamo visto con le stringhe, anche con le liste possiamo estrarre un insieme di valori, cioè una sottolista:

print(stagioni[:2])

Questo output visualizzerà solo i primi due elementi della lista.

Modificare elementi delle liste in Python

Gli elementi della lista possono anche essere modificati, riassegnandogli un nuovo valore.

Ad esempio assegniamo al primo elemento il valore ‘Estate‘, mentre al secondo assegniamo il valore ‘Primavera‘.

stagioni[0]=’Estate’

stagioni[1]=’Primavera’

In questo semplice esempio ho cambiato la prima stagione e la seconda.


Numero degli elementi di una lista

Il metodo len consente di ottenere il numero degli elementi di una lista.

Quindi:

len(stagioni)

Dà come risultato 4. Per stampare al solito utilizziamo print(len(stagioni))


Concatenare le liste

Per concatenare due liste si usa l’operatore +, quindi ad esempio:

a = [‘Primavera’, ‘Estate’]

b = [‘Autunno’, ‘Inverno’]

c=a+b

print(c)

In questo modo dunque si uniscono le due liste in una sola.


Prodotto con le liste in Python

Si può effettuare anche il prodotto con le liste:

voto=[6,8]

voto*=3

print(voto)

L’output visualizzato sarà dunque [6, 8, 6, 8, 6, 8].


Ricerca di un dato in una lista

Per ricercare un dato in una lista si utilizza in. Ad esempio in modalità interattiva possiamo scrivere:

linguaggi = [‘python’, ‘php’]

‘php’ in linguaggi #restituisce True

‘c’ in linguaggi #restituisce False


Conteggiare quante volte compare un elemento, metodo count

Con le liste si può utilizzare anche il metodo count, che consente di contare quante volte ricorre un elemento nella lista. Se l’elemento non viene trovato si ha un’eccezione.

voti=[9,7,7,10]
c=voti.count(7)
print(c)

In questo caso si stamperà 2, cioè il numero di volte che occorre il numero 7.


Posizione dell’elemento nella lista con il metodo index

Si può conoscere la posizione di un elemento nella lista utilizzando il metodo index.

voti=[8,7,5,10]
c=voti.index(5)
print(c)

In questo esempio si stamperà 2, cioè la posizione dell’indice dell’elemento con valore 5, partendo da sinistra. Ricordate che l’indice parte da 0.


Nella prossima lezione parleremo ancora delle liste in Python e come utilizzarle con le strutture condizionali e iterative.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

Numeri amicabili in Python

Numeri amicabili in Python

In questa lezione realizzeremo un programma sui numeri amicabili in Python, al fine di esercitarci con le strutture iterative.

Ricordiamo che due numeri si dicono amicabili se la somma dei divisori propri di uno, escluso però il numero stesso, è uguale all’altro numero e viceversa.

Ad esempio i numeri 220 e 284 sono amicabili.

Infatti i divisori di 220 sono 1, 2, 4, 5, 10, 11, 20, 22, 44, 55 e 110. La loro somma mi dà 284.

Allo stesso modo troviamo i divisori di 284: 1, 2, 4, 71, 142 la cui somma fa 220.

Quindi i numeri sono amicabili.

L’algoritmo risolutivo consiste dunque nel trovare tutti i divisori del primo numero, escluso il numero stesso, sommarli e confrontarli con l’altro numero. Allo stesso modo con il secondo numero.

Quindi innanzitutto prendiamo in input i due numeri interi e li memorizziamo in due variabili numero1 e numero2. Dopo inizializziamo le variabili div, somma1 e somma2.

La variabile div rappresenta il divisore e viene inizializzata ad 1 all’inizio e dopo il primo while, perché ci servirà per l’altro numero. In alternativa si poteva utilizzare un’altra variabile.

Dopo con il ciclo while troviamo tutti i divisori del numero1 e li sommiamo nella variabile somma1. Lo stesso per l’altro numero per cui sommiamo i divisori nella variabile somma2.

Infine compariamo somma1 con numero2 e somma2 con numero1. Se entrambe le uguaglianze sono verificate allora i numeri sono amicabili, altrimenti non lo sono.

Ecco dunque il codice completo dell’algoritmo sui numeri amicabili in Python:

numero1=int(input(‘Inserire il primo numero: ‘))

numero2=int(input(‘Inserire il secondo numero: ‘))

div,somma1,somma2=1,0,0

while div<=numero1/2:

if numero1%div==0:

somma1+=div

div+=1

div=1 #riportiamo il divisore ad 1

while div<=numero2/2:

if numero2%div==0:

somma2+=div

div+=1

if somma1==numero2 and somma2==numero1:

print(‘I numeri sono amicabili!’)

else:

print(‘I numeri non sono amicabili!’)

Potremmo aggiungere un controllo, perché in effetti è inutile trovare tutti i divisori del secondo numero, se somma1 è diverso da numero2.

Quindi sarebbe opportuno trovare i divisori del secondo numero solo se la condizione somma1 uguale a numero2 è soddisfatta.

Lo stesso algoritmo lo abbiamo realizzato con algobuild: numeri amicabili con Algobuild.

Chiaramente questo è solo uno dei possibili modi per implementare l’algoritmo sui numeri amicabili in Python, dite pure la vostra nei commenti sotto.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

Numeri primi in Python

Numeri primi in Python

Realizziamo un programma sui numeri primi in Python utilizzando le strutture iterative studiate finora, al fine di approfondirle.

Ricordiamo dunque la definizione di numero primo:

Un numero è primo quando ha solo due divisori: uno e se stesso.

Quindi è primo ciascun numero naturale maggiore di 1 che sia divisibile solamente per 1 e per sé stesso.

La successione dei numeri primi comincia con 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, …

Algoritmo per i numeri primi in Python

Abbiamo già realizzato questo algoritmo in linguaggio C: numero primo in C. Inoltre, anche con Algobuild, abbiamo affrontato lo stesso argomento: numeri primi da 1 a 100 con Algobuild e con Scratch: numeri primi da 1 a 100 con Scratch.

Dato in input un numero verificare che sia primo.

Per realizzare questo algoritmo sui numeri primi in Python, prendiamo in input un numero e lo dividiamo a mano a mano per numeri minori della sua metà. Difatti è scontato che dividendo un numero per valori maggiori della sua metà, il resto della divisione sia diverso da 0.

Inoltre, dato che tutti i numeri sono divisibili per 1, facciamo senza anche a contarlo come divisore.

Quindi impostiamo la variabile div a 2 e la incrementiamo di volta in volta fino ad arrivare a numero/2.

Se il resto della divisione numero%div è uguale a zero, allora conteggiamo i divisori in una variabile contatore count inizializzata a zero.

Se la variabile count rimane a 0 allora non si trovano divisori e quindi il numero è primo. In caso contrario il numero non è primo.

Ottimizziamo l’algoritmo terminando il ciclo se il divisore raggiunge la metà del numero preso in considerazione ma anche se il contatore diventa 1, così da non dividere inutilmente e risparmiare molto più tempo. Ciò è indicato soprattutto per numeri molto grandi.

Ecco dunque il codice completo:

numero=int(input(‘Inserire un numero: ‘))

if numero<=1:

print(‘Devi inserire un numero maggiore di 1’)

else:

div,count=2,0

while div<=numero/2 and count==0:

if numero%div==0:

count+=1

div+=1

if count==0:

print(‘Numero primo!’)

else:

print(‘Il numero non è primo!’)

Torneremo nuovamente sui numeri primi in Python nelle prossime lezioni.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili

Calcolatrice con JavaScript

Calcolatrice con JavaScript

Realizziamo in quest’articolo una semplice calcolatrice con JavaScript, per spiegare ancora il metodo getElementById().

Anche questo è un semplice esercizio proposto a scopo didattico, in seguito svilupperemo lo stesso esercizio utilizzando jQuery.


Sviluppo di una calcolatrice con JavaScript

Il semplice esempio di calcolatrice che realizzeremo oggi utilizza HTML, CSS e anche JavaScript.

Ecco dunque l’esempio.

Inserite i numeri e le operazioni cliccando sui tasti e infine cliccate sul tasto uguale (=) per avere il risultato dell’operazione. Adesso potete continuare ad operare sul numero ottenuto oppure, se volete cancellare tutto il contenuto del display, cliccate sul pulsante C.

Innanzitutto creiamo il codice HTML per inserire i tasti da 0 a 9, poi inseriamo i pulsanti per le operazioni matematiche, il tasto per la virgola, il tasto C e infine il tasto uguale. Inseriamo anche il display in alto.

Utilizzeremo quindi i tag div, i tag input e il tag button, a cui assegneremo opportune classi, per formattare la nostra calcolatrice con JavaScript, come da esempio mostrato sopra.



Notiamo inoltre che, all’evento onclick per i tasti, abbiamo inserito n(this.id), in questo modo infatti recuperiamo in automatico l’id che è dichiarato in ciascun input. Mentre all’evento onclick di button assegniamo la funzione operazione() che creeremo in JavaScript.

Realizziamo poi il foglio di stile.


.content {
            margin-left: 2px;
        }
.tasto {
            background-color: #a5cff3 ;
            color: #175c97;
            font-size: 22pt;
            border: none;
            margin: 4px 2px;
            height: 40px;
	    width: 46px;
        }
.display {
            background: none;
            color: #175c97;
            font-size: 24pt;
            border: #175c97 solid 2px;
            margin: 4px 2px;
            width: 204px;
            height: 40px;            
        }
.uguale {
            width: 208px;
        }

Chiaramente potete personalizzare con la formattazione desiderata la vostra calcolatrice con JavaScript.

Infine implementiamo il codice JavaScript.

Il codice è veramente molto semplice. Realizziamo la funzione n(dato) che di volta in volta prende i dati inseriti cliccando sui tasti in quanto utilizza il metodo getElementById().

Poi realizziamo la funzione che compie le operazioni utilizzando l’istruzione eval che restituirà il risultato della nostra operazione.

Infine realizziamo la funzione che semplicemente cancella il display.


 function n(dato){ 
   document.getElementById("operazioni").value += dato;
}

function operazione() { 
document.getElementById("operazioni").value = eval(document.getElementById("operazioni").value); 
}

function cancella() { 
 document.getElementById("operazioni").value = ""; 
}

Come vi dicevo questo è un semplice metodo per creare una calcolatrice con JavaScript, potete trovare tante altre soluzioni.

Alcuni link utili

Template responsive con html

Css Responsive

Come trovare immagini per il sito web

Quali colori scegliere per un sito web

Quali font scegliere per un sito web

Form in html

Tag strong

Collegamenti interni ad una pagina web

Python list

Python list

Python list è un metodo utilizzato per creare delle liste vuote, per copiare una lista in un’altra o ancora per creare delle liste con determinati valori.

Python list – Come creare una lista vuota

In Python si può creare una lista vuota seguendo vari metodi.

Un primo metodo consiste nel definire il nome della lista e porla uguale alle parentesi quadre aperte e chiuse, così:

mese = []

Ma, per creare una lista vuota, potremmo anche utilizzare il metodo list in Python, in questo modo:

stagioni=list()

Se dunque proviamo adesso a stampare entrambe le liste con la funzione print:

print(mese, stagioni)

Otterremo di conseguenza questo output: [] []


Python list – Copiare una lista con il metodo list

Il metodo list in Python, oltre a creare una lista vuota, può essere utilizzato anche per copiare il contenuto di una lista in un’altra.

l1 = ['Python' , 'Coding Creativo' , 2019]
l2 = list(l1) #creo una copia della lista l1 passata come argomento
print(l1,l2) #stampo le due liste

L’output prodotto sarà dunque questo:

['Python', 'Coding Creativo', 2019] ['Python', 'Coding Creativo', 2019]

Creare delle liste di interi

Python list consente anche di creare delle nuove liste. Quindi nell’esempio che segue creiamo una lista di numeri interi da 0 a n, dove n è incluso.

n=int(input('Inserisci n: '))
interi=list(range(n+1))

print(interi)

Creare una lista tra due estremi n ed m

Adesso utilizzeremo ancora il metodo list in Python per creare una lista di interi tra due estremi stabiliti n ed m che prendiamo in input.

n=int(input('Numero: '))
m=int(input('Numero: '))

interi=list(range(n,m+1))

print(interi)

In output si visualizzeranno quindi tutti i numeri compresi tra 10 e 30 inclusi.

N.B Se si inserisce un valore di n maggiore di m si stamperà la lista vuota.

Potremmo quindi fare un controllo sui valori inseriti in input.

Creare una lista con step

Infine utilizzeremo ancora il metodo list in Python per creare una lista di interi tra 10 e 30 a step di 5.

n=10
m=30
s=5
interi=list(range(n,m+1,s))

print(interi)

Dunque in output visualizzeremo:

[10, 15, 20, 25, 30]

Come creare una lista di numeri random

Creiamo adesso una lista di lunghezza casuale, utilizzando la funzione randint del modulo random che potete consultare in questa guida: numeri random.

Quindi facciamo in modo ad esempio di assegnare ad n un valore casuale tra 1 e 10 e ad m un valore casuale tra 20 e 100.

from random import randint

n=randint(1,10)
m=randint(20,100)

interi=list(range(n,m))

print(interi)

In questa lezione abbiamo affrontato il metodo list in Python, nella prossima lezione parleremo ancora delle liste e come utilizzarle con le strutture condizionali e iterative.

Alcuni link utili

Indice tutorial sul linguaggio Python

1 – Introduzione al linguaggio Python

2 – Le variabili

3 – Operatori aritmetici e di assegnazione

4 – Stringhe

5 – Casting

6 – Input e print

7 – Primi esercizi in Python

8 – Errori in Python

9 – Script Python

10 – Scambio di variabili