-1
votes

Python pause mais retourne ou stocker la valeur actuelle

Comment implémenter A pour boucle avec une pause qui renvoie également les valeurs à la pause?

x = np.empty(1)

x[0] = 0.4

f = np.array([3,2,1,0,1,2,3])
y = np.empty(0)

for i in range(len(f)):
    if f[i+1] < f[i]:
        newx = x[i]*2
        y = np.append(y,f[i+1])
        x = np.append(x,newx)
    else:
        break


4 commentaires

Retour Pause la boucle Pourquoi vous avez besoin explicite pause


Je suppose que vous avez juste besoin d'une déclaration d'impression :) avant de retourner ou de rompre l'empreinte, faites-moi savoir si vous voulez le stocker .. Je vais vous aider avec le code


Merci pour les réponses rapides. @Akshaynevrekar Comment fonctionnerait une pause explicite? (un peu nouveau à Python ici).


@Punetsinha oui je stocke les valeurs!


3 Réponses :


0
votes

Essayez quelque chose comme ceci:

for i in range(len(f) - 1):        
    newx = x[i]*2
    y = np.append(y,f[i+1])
    x = np.append(x,newx)

    if f[i+1] > f[i]:
        break


3 commentaires

Doux ! Cela marche. Merci pour votre réponse rapide. Je suppose que c'était une solution simple. Un peu nouveau à Python Plus travaillons sur ce projet pour trop d'heures déjà.


f [i + 1] déclenchera une erreur d'index sous certaines conditions, ce qui dépend des entrées


@Menglongli a été modifié pour aller à Len (F) - 1 Pour éviter toute erreur d'index.



1
votes

Essayez d'ajouter du code à votre part de votre part comme suit:

for i in range(len(f)):
    if f[i+1] < f[i]:
        newx = x[i]*2
        y = np.append(y,f[i+1])
        x = np.append(x,newx)
    else:
        y = np.append(y,f[i+1])
        x = np.append(x,newx)
        break


1 commentaires

@Menglongli pourquoi? Cela a le même problème que mon code à l'origine.



0
votes

Ajoutez simplement une nouvelle condition.

x = np.empty(1)
x[0] = 0.4
f = np.array([3,2,1,0,1,2,3])
y = np.empty(0)
for i in range(len(f)):
    if f[i+1] < f[i]:
        newx = x[i]*2
        y = np.append(y,f[i+1])
        x = np.append(x,newx)
    elif f[i+1]>f[i] and f[i]==0:
        newx = x[i] * 2
        y = np.append(y, f[i + 1])
        x = np.append(x, newx)
    else:
        break


0 commentaires