Nota: Il programma è stato realizzato con la versione Python 3.3.2. Per farlo funzionare nella versione 2.7.6 è sufficiente togliere le parentesi quando si utilizza print.
Quando si scrive un articolo o un testo di qualsiasi genere, a volte può risultare utile contare i caratteri. Questa operazione può essere svolta in svariati modi, sia attraverso semplici applicazione presenti sul web e sia tramite il software che utilizziamo per scrivere.
Ma se invece volessimo creare un programma nostro per contare i caratteri? Tramite Python un programma del genere può essere realizzato in 2 semplice righe.
Conta Caratteri
La funzione "len", conta la lunghezza di una stringa data in input e la funzione print stampa questa lunghezza.
def contacaratteri(x):
#questa semplice funzione conta e stampa la lunghezza della stringa all'interno della variabile "x"
print ("Caratteri Totali: " + str(len(x)))
Conta Parole
Quando si scrive un testo però, potrebbe tornare utile conoscere il numero di parole di quest'ultimo. In questo caso è sufficiente effettuare una piccola modifica al programma aggiungendo una funzione che conti solo le parole.
def contaparole(x):
#creazione di una variabile con valore 0
parole=0
#analizza la stringa partendo dal primo carattere, quando trova uno spazio si blocca ed inserisce la porzione di stringa in una lista (vettore).
a=x.split(" ")
#la lista creata potrebbe anche contenere parole composte da un valore vuoto. Tramite il ciclo for si esegue una verifica e vengono contate solo i valori che contengano almeno un carattere che non sia lo spazio.
for i in a:
if (i!=""):
parole=parole+1
#viene stampato il numero totale di parole
print ("Parole Totali: " + str(parole))
Se si richiama la funzione in questo modo:
x = input("inserire testo: ")
contacaratteri(x)
contaparole(x)
Assegnando ad"x" il valore "Ciao mi chiamo Stefano")
Il programma ci restituirà il seguente risultato:
inserire testo: Ciao mi chiamo Stefano
Caratteri Totali: 22
Parole Totali: 4
Come potete vedere, il programma comincia ad assumere una certa forma e tramite ulteriori add-on e magari con l'inserimento di un interfaccia grafica, può trasformarsi in uno strumento utile.
Altre Funzioni
Si può anche creare una funzione che non prenda in considerazione le parole avente 1 o 2 lettere. Oppure si può aggiungere che ogni parola è retribuita un tot di centesimi e calcolare il valore totale dell'articolo in poche righe di codice:
def valore()
#si richiama la funzione che conta le parole e si assegna il numero di parole alla variabile "a"
a=contaparole(x)
#si assegna il valore a parola, ad esempio 4,50 € ogni 300 parole, corrisponde a 0,015 € a parola.
Valoreparola= 0,015
#si calcola il valore dell'articolo
valorearticolo=a*valoreparola
#si stampa il valore dell'articolo
print (valorearticolo)
Il risultato a video sarà il seguente:
inserire testo: Ciao mi chiamo Stefano
Caratteri Totali: 22
Parole Totali: 4
Parole Totali: 4
0.0536
Nota: Per omettere la doppia ripetizione di "Parole Totali: 4" sarebbe opportuno utilizzare "return" al posto del print.
Questo programmino, se ampliato, può ritornare veramente utile a chi lavora con i Web Editor, inoltre ho notato che è molto più preciso di alcune programmi online per il conteggio delle parole come Javascriptkit.com o freetiamo i quali considerano come parole anche il doppio spazio vuoto.