Python: scorrere una stringa in input

di il
10 risposte

Python: scorrere una stringa in input

Ciao a tutti,

come dal titolo avrei bisogno di un aiuto su python che sto cercando di imparare! ecco il problema:
ho creato un dizionario con dentro le lettere dell'alfabeto inglese a cui ad ognuna, ho associato un numero (da 1 a 25).

Ora inserendo in input una stringa (facciamo conto il mio nome) devo poter analizzare (scorrere) le singole lettere che compongono il mio nome e sommare in una variabile totalizzatrice la somma dei valori corrispondenti:
gincum sarebbe: g= 7; i= 9... e quindi nella variabile, TOTALE = 7+9+....
No so come scorrere le singole lettere della stringa per poterle confrontare con quelle del dizionario!

Mi date una mano?

grazie
G

10 Risposte

  • Re: Python: scorrere una stringa in input

    Non c'è proprio nessuno che mi possa dare una mano??
  • Re: Python: scorrere una stringa in input

    Grazie comunque, mi hanno aiutato su un altro forum.
    G
  • Re: Python: scorrere una stringa in input

    Quindi hai risolto?
    se si, puoi postare la soluzione e scrivere risolto sul titolo? almeno puoi aiutare chi come te si è bloccato a quel problema
  • Re: Python: scorrere una stringa in input

    Come da richiesta di Unbreker,
    ecco di seguito il programmino (consisteva nel ricevere in input un nome e con un calcolo restituire un certo numero)
    Era un esercizio per il quale ad ogni lettera dell'alfabeto era assegnato un numero (da 1 a 25) e per cui ho creato un dizionario!

    import string


    def calcolaProgetto (ciccio):
    dizionario = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e':4, 'f': 5, 'g': 6, 'h': 7, 'i': 8, 'j': 9, 'k': 10, 'l': 11, 'm': 12, 'n': 13, 'o': 14, 'p': 15, 'q': 16, 'r': 17, 's': 18, 't': 19, 'u': 20, 'v': 21, 'w': 22, 'x': 23, 'y': 24, 'z': 25}
    totale = 0
    pro = ciccio
    for i in pro:
    if dizionario.has_key(i):
    valore = dizionario
    totale = totale + valore
    numeroProgetto = 1+(totale%9)
    return numeroProgetto




    nome = raw_input ("Inserisci il nome dell'utente per il progetto in minuscolo e senza spazi: ")
    progetto = calcolaProgetto (nome)
    print "Il numero del progetto e' ", progetto

    Ovviamente se avete soluzioni migliori, rimango con le orecchie tese!

    Un saluto
  • Re: Python: scorrere una stringa in input

    In linea di principio va bene. Ci sono un paio di cose ridondanti di cui potresti fare a meno, del tipo assegnare a pro il valore di ciccio (potresti usare direttamente ciccio) e assegnare valore = dizionario (puoi usare direttamente dizionario).
  • Re: Python: scorrere una stringa in input

    E' quello che ho fatto all'inizio, ma mi ha cominciato a segnalare un errore: se non ricordo male secondo l'interprete non potevo "contare" il for con un intero (i) una stringa (ciccio) e quindi sono ricorso a questo escamotage!!!
    Ed ovviamente è come la vedi nel codice postato, i non era dichiarata da nessuna parte!!
  • Re: Python: scorrere una stringa in input

    A me funziona senza ridondanze:
    
    def calcolaProgetto (ciccio):
        dizionario = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e':4, 'f': 5, 'g': 6, 'h': 7, 'i': 8, 'j': 9, 'k': 10, 'l': 11, 'm': 12, 'n': 13, 'o': 14, 'p': 15, 'q': 16, 'r': 17, 's': 18, 't': 19, 'u': 20, 'v': 21, 'w': 22, 'x': 23, 'y': 24, 'z': 25}
        totale = 0
        for i in ciccio:
            if dizionario.has_key(i):
                totale = totale + dizionario[i]
        return totale
    
    La variabile i non deve venire definita dato che e' un iteratore sull'oggetto stringa, per cui assume di volta in volta il valore della lettera successiva.
  • Re: Python: scorrere una stringa in input

    E` un comportamento che nn mi spiego! Ho pensato ad un problema di editor (Geany) in effetti dovrei riprovare!!

    Inviato dal mio LG-E440 con Tapatalk 4
  • Re: Python: scorrere una stringa in input

    Se può essere utile, un problema potrebbe essere l'uso di Python 3 in cui è stato tolto has_key() e al suo posto bisogna utilizzare l'operatore 'in'
    def calcolaProgetto (ciccio):
        dizionario = {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e':4, 'f': 5, 'g': 6, 'h': 7, 'i': 8, 'j': 9, 'k': 10, 'l': 11, 'm': 12, 'n': 13, 'o': 14, 'p': 15, 'q': 16, 'r': 17, 's': 18, 't': 19, 'u': 20, 'v': 21, 'w': 22, 'x': 23, 'y': 24, 'z': 25}
        totale = 0
        for i in ciccio:
    #        if dizionario.has_key(i):
            if i in dizionario:
                totale = totale + dizionario[i]
        return totale
    L'ho provato con Python 3.3.2 e con questa modifica funziona correttamente.
  • Re: Python: scorrere una stringa in input

    Al momento utilizzo python 2.7.
    Ho appena provato la tua versione del programma e ovviamente funziona!
    Vabbè mi arrendo!!

    In teoria funziona lo stesso anche sul programma nell'altro post!

    un saluto
Devi accedere o registrarti per scrivere nel forum
10 risposte