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
Wird laufend erhöht:

Code: Alles auswählen

i = 0
while True:
    i += 1

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')
:wink:
yipyip

Verfasst: Dienstag 24. März 2009, 14:11
von b.esser-wisser
Dann aber richtig :lol: :

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 ;)