Profilo di Dgsol

Nome Dgsol
Indirizzo email n/a
Messaggi1
  • Problema con esercizio al capitolo 7
    Forum >> Principianti
    Prima di tutto ciao a tutti :) Ho iniziato a studiare python da qualche giorno, mi sono bloccato su un esercizio proposto dalla guida "Pensare da informatico".
    Indice = 0 
    while Indice < len(Frutto): 
      Lettera = FruttoIndice 
      print Lettera 
      Indice = Indice + 1 
    Questo è il codice base, dispone le singole lettere della stringa una riga per volta. Fin qui nessun problema. Successivamente viene proposto un esercizio, cioè di creare una funzione che prenda come argomento una stringa e far si che la disponga dall'ultima alla prima lettera, una riga per volta. Non sono riuscito a farlo per quanto ci abbia provato, immagino di aver compreso male qualcosa o di non averla compresa proprio. Così ho cercato qualche codice funzionante su internet per analizzarlo, questo è ciò che ho trovato:

    def Function1(stringa):
        i = -1
        c = 0
        while c < len(stringa):
            lettera = stringa
            print lettera
            i = i - 1
            c = c + 1



    Ora provo ad analizzare la stringa ma mi sfugge la parte finale.

    - Crea 2 variabili locali "i" e "c"

    - Dice alla funzione che finché "c" è inferiore al numero dei caratteri di "stringa" deve stampare la variabile "lettera"

    - Assegna alla variabile "lettera" l'ultimo carattere di "stringa" grazie a "i"

    Fin qui penso di non aver detto stupidaggini, ma se l'ho fatto fatemelo capire perché non ci arrivo.




    Fatto questo, sempre all'interno di "while", dice che "i" deve sempre retrocedere di un carattere grazie a quel "i = i - 1". Questo lo trovo sensato perché partendo da -1, che corrisponde all'ultimo carattere, deve arrivare fino al primo carattere. Nel caso di una stringa come "Computer" dovrebbe quindi arrivare fino a un -8 che sarebbe la "C".

    Nella mia mente però la funzione sarebbe già completa così, non riesco proprio a capire l'ultima riga di codice. a che serve quel "c+1"?
    Evidentemente mi sfugge proprio la logica generale, qualcuno potrebbe illuminarmi?




    Grazie in anticipo e scusate se ho detto troppe cavolate :thinking:


    --- Ultima modifica di Dgsol in data 2016-04-03 22:52:46 ---