comment faire pour incrémenter la variable d'itération à partir de l'intérieur de la boucle en python 3?
for i in range (0, 81):
output = send command
while True:
last_byte = last_byte - offset
if last_byte > offset:
output = send command
i+
else:
output = send command
i+
break
Je veux augmenter l'itérateur à chaque fois que la commande est exécutée. Pour l'instant il n'augmente que de un lorsque la boucle est exécutée. Veuillez informer
for i in range(0,10):
print(i)
i +=2
print("increased i", i)
J'ai couru ce code et il produit à partir de 0 à 9. Je m'attendais à ce qu'il augmenterait l'itérateur par 2.
double possible de Comment faire pour modifier l'indice de la boucle for en Python?
OriginalL'auteur ilaunchpad | 2015-08-28
Vous devez vous connecter pour publier un commentaire.
Enregistrer une copie de l'itérateur comme un objet nommé. Ensuite, vous pouvez passer à la suite si vous le souhaitez.
while
boucle.c'est le schéma général lorsque l'on travaille avec des itérateurs. Il peut être tout itérateur, pas juste une suite de chiffres, plus 1. Si vous voulez à l'avance l'itérateur par plus d'un poste, appel
next()
plus d'une fois. Si vous voulez vraiment travailler avec et de manipuler des nombres-indices directement comme un c pour la boucle, alors que l'on ne devrait pas utiliser des itérateurs, mais plutôt une autre approche (de l'accord).Cette méthode ne fonctionne pas lorsque l'on veut iteratore sur une liste.
OriginalL'auteur
Vous ne pouvez pas le faire à l'intérieur d'un
for
boucle. Parce que chaque fois que la boucle est redémarré, il réaffecter la variablei
(même après le changement de l'intérieur de la boucle) et à chaque fois que vous augmentez simplement la réaffectés variable. Si vous voulez faire ce genre de chose que tu ferais mieux d'utiliser unwhile
boucle et d'accroître la société de consommation variable manuellement.A côté de cela, si vous voulez augmenter la variable sur une période non plus en fonction de certaines conditions particulières, vous pouvez utiliser un des segments de la tranche de la itératif dans lequel vous êtes en boucle.
Par exemple, si vous avez un itérateur vous pouvez utiliser
itertools.islice()
si vous avez une liste, vous pouvez simplement utiliser les étapes lors de l'indexation (my_list[start:end:step]
).Merci pour la clarification.
Depuis l'OP veut augmenter la variable basée sur une condition de la
step
argument enrange
l'habitude de l'aide.bienvenue, Vous pouvez dire ce à la communauté par l'acceptation de la réponse ;).
OriginalL'auteur
range()
a un troisième paramètre pour spécifier l'étape. L'utiliser pour incrémenter le compteur par deux. Par exemple:La raison que vous ne pouvez pas incrément
i
comme une variable normale est parce que lorsque la boucle for commence à s'exécuter, une liste (ou un objet range dans Python 3+) est créée, eti
représente simplement chaque valeur de cet objet de manière incrémentale.OriginalL'auteur
@ilaunchpad Désolé je sais que c'est trop tard pour poster cela mais voici ce que vous avez été à la recherche pour
Vous ne devriez pas utiliser la même variable dans l'instruction For.
OriginalL'auteur
J'ai écrit quelque chose comme cela.
Maintenant, je vais avoir un contrôle total, mais la toile de fond est que j'ai vérifier toutes les conditions.
OriginalL'auteur