Je veux changer tout le numéro dans cette liste afin d'ajouter 1,5 à tout ce qui est inférieur à 0 jusqu'à ce qu'ils soient supérieurs à 0, je ne comprends pas pourquoi il produirait une sortie très étrange ([1 , 1, 1, 1, -3.5, -2.5, -4, -5, 0.5])
5 Réponses :
python iTerates par valeur, par défaut. Pour itérer par index, vous devez faire une liste d'indices et itérale par que em>. Vous faites cela avec la gamme intégrée () CODE>: for i in range(len(y)):
while y[i] < 0:
y[i] += 1.5
print(y)
Et si je veux appliquer une fonction assez complexe (comme un i + b i> i ^ 2) à la Y [i] est inférieur à 0, et que "A" diminue de moitié à chaque fois qu'il est utilisé ? (Je lisais des boucles imbriquées, mais je ne les ai pas appris en classe ...)
Dans ce cas, je déclare A = quelque_value code> avant le imbriqué tandis que la boucle code>, puis à l'intérieur de la boucle imbriquée, il suffit de le diminuer à chaque fois. De cette façon, chaque itération du pour code> la boucle est réinitialisée. Les boucles imbriquées ne devraient pas avoir besoin d'explications - elles fonctionnent exactement comme si vous attendiez.
Vous pouvez utiliser MODULO:
for i, n in enumerate(y):
if n < 0:
y[i] %= 1.5
Et si je veux appliquer une fonction assez complexe (comme un i + b i> i ^ 2) à la Y [i] est inférieur à 0, et que "A" diminue de moitié à chaque fois qu'il est utilisé ? (Je lisais des boucles imbriquées, mais je ne les ai pas appris en classe ...)
Vous mélangez les index et éléments de la liste. Et vous aviez besoin d'un certain temps au lieu de "si" pour continuer à aller jusqu'à atteindre le numéro recherché.
Essayez quelque chose comme ceci: P>
for i in range(len(y)):
while y[i] < 0:
y[i]+=1.5
Et si je veux appliquer une fonction assez complexe (comme un i + b i> i ^ 2) à la Y [i] est inférieur à 0, et que "A" diminue de moitié à chaque fois qu'il est utilisé ? (Je lisais des boucles imbriquées, mais je ne les ai pas appris en classe ...)
Désolé, je ne suis pas sûr de ce dont vous avez besoin, mais de diminuer un nombre de moitié à chaque itération, vous pouvez utiliser: "A / = 2" à l'intérieur d'une boucle. Avec cela, chaque fois que vous bouclez, A est divisé par 2
for i in range(len(your_list)):
if your_list[i] < 0:
your_list[i] += 1.5
print(your_list)
Et si vous voulez faire ce que vous avez fait avec foreach pour i dans votre_list: si i <0: votre_list [votre_list.index (i)] + = 1.5 Imprimer (votre_list)
Quelle est la valeur initiale de
y code>?