Un programmino utile se ci si interessa un pò alla crittografia: il calcolo della frequenza dei caratteri in un testo.
Prendete in input un file di testo, calcolate la frequenza percentuale dei caratteri alfabetici, restituite l'output.
Soluzione in Python:
Prendete in input un file di testo, calcolate la frequenza percentuale dei caratteri alfabetici, restituite l'output.
Soluzione in Python:
Codice:
from sys import argv
from string import ascii_lowercase
def frequency(line):
line = line.lower()
res = {}
for c in ascii_lowercase:
res[c] = 0
for c in line:
if c in ascii_lowercase: res[c]+=1
return res
res = {}
totalchars = 0
for c in ascii_lowercase:
res[c] = 0
for line in open(argv[1], "r"):
freq = frequency(line)
totalchars += len(line)
for c in ascii_lowercase:
res[c] += freq[c]
result = []
for k, v in res.iteritems():
result.append((v,k))
result.sort()
result.reverse()
for v, k in result:
print k,"\t",((v*100.0)/totalchars)