[Risolto] [Python] Iterazione di lettere

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
bad_hunter
Prode Principiante
Messaggi: 3
Iscrizione: venerdì 29 novembre 2013, 3:40

[Risolto] [Python] Iterazione di lettere

Messaggio da bad_hunter »

Salve a tutti, avrei una domanda da chiedervi riguardo il linguaggio di programmazione python.

Devo fare un ciclo che itera tutte le lettere dell'alfabeto in minuscolo (quindi parte dalla 'a' e finisce alla 'z'), so che potrei fare una lista con le lettere dell'alfabeto e fare:

Codice: Seleziona tutto

for lettera in alfabeto:
    stringa+=lettera#istruzione di esempio
Però mi sembra un soluzione troppo poco elegante, la mia idea era di iterare i valori dei caratteri ascii delle lettere minuscole e convertire il numero nel carattere ascii a cui corrisponde, una roba tipo:

Codice: Seleziona tutto

for n in range(97,123):
    lettera=funzione che converte n in carattere
    stringa+=lettera#istruzione di esempio
In C si poteva fare questa cosa e mi pare strano che in Python non ci sia una funzione simile, ovviamente se c'è un altro metodo bult in di python va bene lo stesso :D :D

Grazie!
Ultima modifica di bad_hunter il venerdì 6 dicembre 2013, 16:34, modificato 1 volta in totale.
Avatar utente
Claudio_F
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1427
Iscrizione: lunedì 28 maggio 2012, 18:49
Desktop: Mate/Gnome
Distribuzione: Ubu20.04/21.04

Re: [Python] Iterazione di lettere

Messaggio da Claudio_F »

Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8179
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [Python] Iterazione di lettere

Messaggio da crap0101 »

Codice: Seleziona tutto

>>> stringa = __import__("string").lowercase
>>> stringa
'abcdefghijklmnopqrstuvwxyz
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
bad_hunter
Prode Principiante
Messaggi: 3
Iscrizione: venerdì 29 novembre 2013, 3:40

Re: [Python] Iterazione di lettere

Messaggio da bad_hunter »

Avatar utente
Claudio_F
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1427
Iscrizione: lunedì 28 maggio 2012, 18:49
Desktop: Mate/Gnome
Distribuzione: Ubu20.04/21.04

Re: [Python] Iterazione di lettere

Messaggio da Claudio_F »

bad_hunter ha scritto:Potete anche chiudere il topic!
Devi aggiungere [Risolto] all'inizio del titolo del primo post.

Comunque la costruzione di un range qualsiasi di caratteri potrebbe anche essere questa:

Codice: Seleziona tutto

stringa = "".join( chr(n) for n in range(ord('a'), ord('z')+1) )
In quanto all'elegante non so se sia davvero preferibile e più leggibile di un semplice:

Codice: Seleziona tutto

stringa = "abcdefghijklmnopqrstuvwxyz"
bad_hunter
Prode Principiante
Messaggi: 3
Iscrizione: venerdì 29 novembre 2013, 3:40

Re: [Python] Iterazione di lettere

Messaggio da bad_hunter »

Oddio, la stringa con tutto l'alfabeto mi sa tanto di pecionata, non che sia sbagliata però proprio non riesco a farmela piacere!

Riguardo l'altra riga di codice, mettere tutto su una riga è una cosa che solitamente evito.
Avatar utente
crap0101
Rampante Reduce
Rampante Reduce
Messaggi: 8179
Iscrizione: martedì 30 ottobre 2007, 6:33
Desktop: LXDE
Distribuzione: Ubuntu 18.04.1 LTS
Sesso: Maschile
Località: TO
Contatti:

Re: [Python] Iterazione di lettere

Messaggio da crap0101 »

bad_hunter [url=http://forum.ubuntu-it.org/viewtopic.php?p=4498130#p4498130][img]http://forum.ubuntu-it.org/images/icons/icona-cita.gif[/img][/url] ha scritto:Oddio, la stringa con tutto l'alfabeto mi sa tanto di pecionata, non che sia sbagliata però proprio non riesco a farmela piacere!
Sei sai da subito qual'è la stringa che ti interessa (cioè è indipendente dall'esecuzione del programma) è la soluzione migliore, risparmi tempo e calcoli.
Riguardo l'altra riga di codice, mettere tutto su una riga è una cosa che solitamente evito.
Se intendi le list-comprehension (e simili), è il modo idiomatico di fare le cose in python. 1000 volte meglio di fare cicli "alla C" convertendo numeri in stringhe e sommandole!
Inoltre, se è proprio _quella_ particolare sequenza che ti interessa, come dicevo, non devi neanche stare a costruirla, è nel modulo string e basta usarla (come alcune altre).
http://www.gnu.org/ http://boinc.berkeley.edu/ http://www.python-it.org/
- Ricorda le ultime parole di suo padre: «Sta' alla larga dalle chiese, figlio. La sola cosa per cui hanno la chiave è il merdaio. E giurami che non porterai mai un distintivo della legge» - W.S. Burroughs
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 2 ospiti