Einen Wert langsam Steigen lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

Samstag 21. März 2009, 09:43

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
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Samstag 21. März 2009, 09:55

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)?
Benutzeravatar
krisi12345
User
Beiträge: 205
Registriert: Mittwoch 4. März 2009, 16:56
Wohnort: Das schöne München
Kontaktdaten:

Samstag 21. März 2009, 09:57

laufend
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Samstag 21. März 2009, 10:11

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.
momo
User
Beiträge: 9
Registriert: Donnerstag 19. März 2009, 17:52

Samstag 21. März 2009, 11:57

Hi !

Wie wäre es mit der Systemzeit (time-Modul). Du kannst dir den Startwert merken und immer abziehen.

Gruß,

momo
Benutzeravatar
snafu
User
Beiträge: 5440
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Samstag 21. März 2009, 15:20

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.
shcol (Repo | Doc | PyPi)
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Dienstag 24. März 2009, 12:06

Wird laufend erhöht:

Code: Alles auswählen

i = 0
while True:
    i += 1
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Dienstag 24. März 2009, 14:10

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
Benutzeravatar
b.esser-wisser
User
Beiträge: 272
Registriert: Freitag 20. Februar 2009, 14:21
Wohnort: Bundeshauptstadt B.

Dienstag 24. März 2009, 14:11

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