Pausa per il ciclo in un’istruzione if

Attualmente avendo problemi con la rottura di questo for loop. Voglio rompere se la variabile non è presente nell’elenco, così è possibile spostare due un altro for loop. Si prevede un rientro di blocco per il top di for loop, ma se cambio la posizione del break o di inizio della for loop, non funziona. Aiuto!

while cyclenumb <= 10000:

    for x in userpassword[k]:
        for z in lowercaselist:
            if x in z:
                newpasswordlist.append(z)
                k +=1
                break
        else:

    for x in userpassword[k]:
        for z in uppercaselist:
            if x in z:
                newpasswordlist.append(z)
                k +=1
                break
        else:
  • break solo rompe il ciclo interno, non il ciclo esterno. Sei sicuro di bisogno i cicli interni? Forse dovrebbe essere solo if x in lowercaselist
  • A prima vista, il rientro sembra corretto. Il primo altrimenti va contro il primo se x in z? Allora dovrebbe essere rientrato allo stesso livello come il primo se. Il terzo per la dichiarazione andare sotto che altro? Quindi tutto dovrebbe essere rientrato a un livello più basso rispetto all’altro.
  • Qual è il valore di lowercaselist e uppercaselist? Sono liste di liste? Che la strada sembra come quando sei in loop su di loro e quindi utilizzando x in z.
  • barmar, sono le liste contenenti inferiore e superiore, i casi dell’alfabeto, ex “a”, “b”,
  • Allora perché stai usando x in z invece di x = z? O perché non basta scrivere if x in lowercaselist:?
  • che lavoreremo, come faccio ad aggiungere quel valore?? per un nuovo elenco

InformationsquelleAutor mansa | 2016-12-09

 

One Reply
  1. 15

    Avrete bisogno di rompere fuori di ogni ciclo separatamente, come hanno detto nei commenti alla tua domanda, break ferma solo il ciclo che è in

    for x in userpassword[k]:
        for z in lowercaselist:
            if x in z:
                newpasswordlist.append(z)
                k +=1
                break
    
         if x in z: # added an extra condition to exit the main loop
            break

    Avrete bisogno di fare questo per sia loop

    Se si desidera interrompere il ciclo while, allora si può aggiungere if x in z: break in quel ciclo aswel

    • Sì, questo significa che l’indice è troppo grande per la lista, per esempio, se si dispone di un list di 4 elementi, e si tenta di ottenere list[5] darà un errore, perché non c’è il 5 ° elemento
    • grazie, sono stato in grado di risolvere l’indice di problema, ma ora, dopo ho aggiunto la stampa newpasswordlist funzione dopo l’ultimo k+=1 n se la dichiarazione, stampa il valore di z due volte
    • grazie signore, vorrei aggiungere anche questo il mio più altri per i loop nel mio programma, spero che funzionerà

Lascia un commento