2015-11-07 5 views
0

intérieur de mon code, il a été pour l'itération sauter le Heres le code que j'utiliseSkipping Pour boucle en Python

print ("part two") 
varZ = varA - 0.5 
varY = firstNumber/varZ 

for varZ in list(reversed(range(firstNumber, 0))): 
    print ("part three") 
    varY = firstNumber/varZ 
    if (varY - int(varY) == 0): 
     print ("part four") 
     break 

    else: 
     varZ = varZ - 1 
     print ("part five") 

print("Part six, Your answer is...", int(varZ)) 

Merci pour l'aide! P.s la sortie est

Your number sir? 27 
Calculating... 
13.5 
part two 
Part six, Your answer is... 13 
+0

s'il vous plaît lire [this] (http://stackoverflow.com/help/mcve) et [this] (http://xyproblem.info/) – Pynchia

Répondre

1

range(firstNumber, 0) est certainement vide, à moins que vous vous attendez à un firstNumber négatif. Ce n'est pas clair ce que vous essayez de faire ici; Si vous essayez d'itérer sur quelque chose comme [5,4,3,2,1,0], vous devez utiliser range(5, 0, -1). Read the docs pour plus d'informations

+0

Il sera vide dans tous les cas où firstNumber n'est pas> = 1 Pour générer un itérable qui donne les nombres dans l'ordre décroissant, vous devez également définir l'étape: 'range (firstNumber, 0, -1)' – chucksmash

+0

ouais, il n'était pas clair pour moi si l'affiche attendait un firstNumber négatif, Il était confus à propos de la syntaxe de la gamme et essayait d'inverser en sens inverse avec l'appel 'reversed', ou s'il pensait que changer les arguments dans la gamme inverserait l'itérateur ou quelque chose. Je vais peut-être ajouter quelques précisions à la réponse – George

0

range(firstNumber, 0) va être une liste vide (sauf si firstNumber est négatif). L'incrément par défaut est 1. Si vous supprimez 0, l'expression range comptera de 0 à firstNumber-1. Je ne sais pas si vous voulez commencer par firstNumber ou firstNumber-1, donc je vais utiliser n dans cet exemple:

for x in list(reversed(range(n))): 

Vous pouvez simplifier cela:

for x in reversed(range(n)): 

ou tout simplement:

for x in range(n-1, -1, -1): 

Ceux-ci compteront tous de n-1 à 0, inclusivement.

Si vous utilisez Python 2, vous pouvez utiliser xrange à la place de range pour éviter de construire réellement la liste. En Python 3, vous pouvez simplement utiliser range.