Es. 4. 08/05

Da aptiva.

Ringrazio Carmosina per la soluzione proposta che e' originale, e funziona. E' solo un po' prolissa... questo mi consente di spiegare che e' piu' comodo usare le liste (in altri linguaggi di programmazione si chiamano array o vettori) quando occorre gestire tante variabili dello stesso tipo con un indice. Usando la funzione ord si puo' ricavare il codice ascii/unicode di ogni singolo carattere. Quindi si puo' per esempio preparare una lista con 26 elementi a zero:

 count=[0]*26

e poi scorrendo l'input carattere per carattere si puo' sommare 1 all'elemento corrsipondente alla lettera dell'alfabeto (0='A', 1='B' etc:

 if 'A'<=x<='Z':
   count[ord(x)-ord('A')]+=1

... e similmente anche per le lettere minuscole.

SI puo' fare anche con il count! (che e' una ottima idea):

 for c in range(26):
   count[i]+=elemento.count(chr(i+ord('A')));

e per le minuscole:

 for c in range(26):
   count[i]+=elemento.count(chr(i+ord('a')));

quando i vale 0, ord('A') vale 65, chr(i+ord('A')) e' 'A'

quando i vale 1, ord('A')+1 vale 65, chr(i+ord('A')) e' 'B'

quando i vale 2, ord('A')+2 vale 66, chr(i+ord('A')) e' 'C'

e cosi' via...


(In python questo esercizio si puo' svolgere anche con i dizionari.)

Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Strumenti