Seite 1 von 1
Einen Wert langsam Steigen lassen
Verfasst: Samstag 21. März 2009, 09:43
von krisi12345
Wie kann man einen Wert mit einer bestimmten Geschwindigkeit steigen lassen?
Code: Alles auswählen
wert = 1 # "wert" soll in einer bestimmten Zeit auf z.B. 10 gesteigert werden
Re: Einen Wert langsam Steigen lassen
Verfasst: Samstag 21. März 2009, 09:55
von numerix
krisi12345 hat geschrieben:Wie kann man einen Wert mit einer bestimmten Geschwindigkeit steigen lassen?
Code: Alles auswählen
wert = 1 # "wert" soll in einer bestimmten Zeit auf z.B. 10 gesteigert werden
Das ist viel zu unpräzise.
Welche Art von Steigung? Linear? Quadratisch? Exponentiell?
Annähernd stetig oder diskret und wenn ja in welchen Schritten?
Und: Soll das Programm in dieser Zeit noch etwas anderes machen (können)?
Verfasst: Samstag 21. März 2009, 09:57
von krisi12345
laufend
Verfasst: Samstag 21. März 2009, 10:11
von numerix
krisi12345 hat geschrieben:laufend
Du erwartest von anderen, dass sie sich mit deinem Problem auseinandersetzen und dir auf die Sprünge helfen, bist aber anscheinend nicht bereit, dir Zeit zu nehmen, dein Problem mit ausreichender Präzision zu schildern.
Verfasst: Samstag 21. März 2009, 11:57
von momo
Hi !
Wie wäre es mit der Systemzeit (time-Modul). Du kannst dir den Startwert merken und immer abziehen.
Gruß,
momo
Verfasst: Samstag 21. März 2009, 15:20
von snafu
Vieleicht so?
Code: Alles auswählen
import time
def increase(i, stop, pause=1):
while i <= stop:
print i
i += 1
time.sleep(pause)
Du müsstest ansonsten wirklich nochmal genauer sagen, was du vorhast.
Verfasst: Dienstag 24. März 2009, 12:06
von gkuhl
Verfasst: Dienstag 24. März 2009, 14:10
von yipyip
Oder so?
Code: Alles auswählen
#!/usr/bin/env python
import time as ti
import sys
def numgen(n=0):
while True:
yield n
n += 10
def print_timed(gen, delta=2, duration=20):
start_time = ti.time()
abs_time = 0
while abs_time <= duration:
sys.stdout.write('\r-> %s' % gen.next())
sys.stdout.flush()
ti.sleep(delta)
abs_time = ti.time() - start_time
if __name__ == '__main__':
print_timed(numgen())
sys.stdout.write('\n')
yipyip
Verfasst: Dienstag 24. März 2009, 14:11
von b.esser-wisser
Dann aber richtig
:
Code: Alles auswählen
import time
def get_rising_val(start, speed=100):
value = start
start_time = time.time()
yield value
while True:
value += (time.time() - start_time) * speed
yield value
Aber keine Liste davon bilden