Topic: Ciclo while e parametri funzioni  (Letto 105 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline lelef77

  • python unicellularis
  • *
  • Post: 11
  • Punti reputazione: 0
    • Mostra profilo
Ciclo while e parametri funzioni
« il: Giugno 06, 2019, 12:12 »
Ciao a tutti, ho un nuovo esercizio codecombat da sottoporre..
La soluzione l'ho già trovata, ma solo perchè alcune parti di codice erano già inserite...
Chiaramente sono le parti che non capisco fino in fondo :) ...

# Sposta in basso a destra di step
def moveDownRight(step):
    hero.moveXY(hero.pos.x + step, hero.pos.y - step)

# Sposta in alto a destra di 1 step
def moveUpRight(step):
    hero.moveXY(hero.pos.x + step, hero.pos.y + step)

hunter = hero.findFriends()[0]  # hero visualizza il cacciatore --- ma perchè lo [0]?
route = hunter.route            # percorso = percorso mostrato dal cacciatore
routeIndex = 0                  # punto di partenza

while routeIndex < len(route):                      #?
    direction = route[routeIndex]                   #?
    if direction > 0:
        moveUpRight(8) # 8 = numero di step da mandare alla funzione
    else:
        moveDownRight(8) # 8 = numero di step da mandare alla funzione
   
    routeIndex += 1  #?


Chi mi spiega la locica che sono un pò confuso? grazie :)

Offline bebo

  • python erectus
  • ***
  • Post: 231
  • Punti reputazione: 0
    • Mostra profilo
    • bebo_sudo's personal homepage
Re:Ciclo while e parametri funzioni
« Risposta #1 il: Giugno 06, 2019, 13:56 »
Ciao!
Perche' non provi a stampare con print() i valori delle variabili che non riesci a capire? Ad esempio, prova a stampare print(hero.findFriends()), oppure print(routeIndex, route, len(route), direction) subito sotto quel direction = route[routeIndex].

Offline lelef77

  • python unicellularis
  • *
  • Post: 11
  • Punti reputazione: 0
    • Mostra profilo
Re:Ciclo while e parametri funzioni
« Risposta #2 il: Giugno 06, 2019, 23:25 »
Ciao bebo, grazie per la risposta... ti rispondo a mia volta  :)...
non provo print perchè come dicevo, si tratta di un esercizio su codecombat, quindi l'ambiente di lavoro è preimpostato e si possono usare solo determinati comandi... il print non è tra questi...
quindi posso scrivere:

print(routeIndex, route, len(route), direction)


ma non l'editor mi restituisce un errore perchè il print non è contemplato dall'esercizio :) ....

Ad ogni modo, a me interessava la logica... cioè, il ciclo while, che come è stato impostato? Io l'ho trovato già scritto, perchè altrimenti col cavolo riuscivo a completare il tutto.

Offline bebo

  • python erectus
  • ***
  • Post: 231
  • Punti reputazione: 0
    • Mostra profilo
    • bebo_sudo's personal homepage
Re:Ciclo while e parametri funzioni
« Risposta #3 il: Giugno 07, 2019, 16:23 »
Se il while lo leggi come un "finché", ti aiuta?

riga 13: "Continua a fare l'azione sottostante finché l'indice della strada (--> routeindex) e' minore del numero di strade"
riga 14: "Prendi la direzione (in cui procedere) dalla lista delle strade, usando l'indice della strada su cui stiamo iterando"
..
riga 20: "Aumenta l'indice della strada da esaminare di 1, in modo da esaminare la strada seguente al prossimo passo"

Meglio?

Ma l'esercizio era usare un ciclo while?
Perche' le 4 righe che non ti tornano, si possono scrivere in una sola riga usando un for, facendo diventare il tutto mille volte piu' leggibile.

Offline lelef77

  • python unicellularis
  • *
  • Post: 11
  • Punti reputazione: 0
    • Mostra profilo
Re:Ciclo while e parametri funzioni
« Risposta #4 il: Giugno 08, 2019, 05:27 »
Si bebo, si poteva usare solo while... l'esercizio riguarda l'aritmetica... il for ancora non ci sono arrivato.
Grazie 1000 per la spiegazione  :)