2016-10-08 3 views
0

Ich füttere einen Zahlenschieberegler in RhinoPython, um den y-Wert zu erhöhen. Ich möchte das Inkrement umkehren, wenn y einem bestimmten Wert entspricht. Ich habe herausgefunden, wie man es negativ macht, aber das ist nicht das, wonach ich suche. Entschuldigung, für die Einfachheit dieser Frage und danke. Kurz gesagt erhöht der Zahlenregler die Variable und sobald er 45 erreicht, zählt er mit jedem Inkrement des Zahlenschiebers herunter.Rückwärtszählung nach dem Schwellenwert

len = 45 
inc = float(.1) 

if y >= len: 
    y *= -inc 
print (y) 
+0

Sie möchten das Inkrement hinzufügen oder multiplizieren? Das Problem mit Ihrem Code ist auch, dass wenn Sie 'y * = -inc' machen, die 'if'-Bedingung nicht mehr verifiziert ist, so dass das Programm stoppt – MMF

+0

Ja, das macht Sinn. Ich möchte von der Variablen subtrahieren, sobald die Bedingung erfüllt ist. –

+0

dann ersetzen Sie "y * = - inc" durch "y - = inc" und fügen Sie eine 'if' Bedingung hinzu – MMF

Antwort

2

Zunächst einmal rufen Sie nicht eine Variable len, weil es ein Name, der Standard-Library-Funktion ist. Wenn ich die Frage richtig verstanden habe, würde der Code

threshold = 45 
inc = .1 
y = 0 

while True: # goes forever, put your own code here 
    if y >= threshold: 
     inc *= -1 
    y += inc 
    print (y) 

sein Nach y 45 erreicht hat, beginnen sie heruntergezählt. Keine Stop-Bedingung, wenn Sie jedoch herunter zählen, es ist ein unendlicher Zyklus hier

+0

Danke nochmal, ich implementiere das:' threshold = x/2 inc = float (.1) während true: wenn y> = len: inc * = -1 y + = inc wenn y <= 0: break' aber es ist mein Computer abstürzt, wenn die Bedingung –

+0

Glad erfüllt ist es Ihnen geholfen! Sie können die Antwort als akzeptiert markieren, wenn Sie denken, dass es nützlich war. – jackdaw

+0

Ja, es ist nahe gekommen, aber wie ich erwähnt habe, kann ich keinen richtigen Ausgang finden als: 'wenn y <= 0: Pause 'gibt keine Werte zurück. Weißt du warum das so ist? –

Verwandte Themen