Eingaben innerhalb eines Zeitfensters erlauben + Listencheck
Verfasst: Samstag 29. März 2014, 13:27
Tach,
als Python-Neuling habe ich mir die letzte Nacht um die Ohren gehauen, um eine (höchstwahrscheinlich) simple Sache zu programmieren - hat aber leider nicht geklappt. Von daher wäre ich dankbar, wenn ihr helfen könntet.
Folgende Situation: Es kommen permanent Werte in einer Anwendung an - sei es durch inputs oder durch das Auslesen von Sensoren. Dies sind aber derart viele, dass nicht immer alle Werte verarbeitet werden sollen, sondern nur "global" operiert werden soll
- also: pro Sekunde kommt mindestens ein Wert an. Nach 5 Sekunden werden alle eingegangenen Werte verglichen. Sind 4 von 5 Werte (bzw. mind. 80%) größer als die Zahl x, soll die Operation 1 ausgeführt werden. Sind 4 von 5 Werten kleiner als die Zahl x, soll die Operation 2 ausgeführt werden. Sind höchstens 3 von 5 Werten größer/kleinert als die Zahl x, soll nix passieren.
Ich scheitere schon daran, die inputs eines Zeitfensters in einer Liste oder einer Datei zu erfassen (habe z.B. mit pickle experimentiert) und anschließend die Anzahl (mit len ??) der Werte ausgeben zu lassen.
Bisher sieht das bei mir so aus - wie ihr seht, seht ihr nicht viel....
Um das Ganze jetzt noch mit dem Zeitfenster 5 Sekunden zu verbinden, wollte ich für 5 Sekunden inputs zulassen - aber auch da ist der Wurm drin:
Danke im voraus
als Python-Neuling habe ich mir die letzte Nacht um die Ohren gehauen, um eine (höchstwahrscheinlich) simple Sache zu programmieren - hat aber leider nicht geklappt. Von daher wäre ich dankbar, wenn ihr helfen könntet.
Folgende Situation: Es kommen permanent Werte in einer Anwendung an - sei es durch inputs oder durch das Auslesen von Sensoren. Dies sind aber derart viele, dass nicht immer alle Werte verarbeitet werden sollen, sondern nur "global" operiert werden soll
Ich scheitere schon daran, die inputs eines Zeitfensters in einer Liste oder einer Datei zu erfassen (habe z.B. mit pickle experimentiert) und anschließend die Anzahl (mit len ??) der Werte ausgeben zu lassen.
Bisher sieht das bei mir so aus - wie ihr seht, seht ihr nicht viel....
Code: Alles auswählen
# -*- coding: utf-8 -*-
import pickle
## Nur Werte filtern, die größer als 0 sind.
def positiv(x):
return (x > 0)
## Generierung einer Liste mit 5 Werten - geht das nicht auch hübscher?
liste1=[input()]
liste2=[liste1, input()]
liste3=[liste2, input()]
liste4=[liste3, input()]
liste5=[liste4, input()]
## Speichern der Liste in data.pkl
output = open('data.pkl', 'w')
pickle.dump(liste5, output)
output.close()
## Öffnen der Liste
f = open("data.pkl")
ergebnisse = pickle.load(f)
print ergebnisse
## Ausgabe der positiven Zahlen
positive = filter(positiv, liste5)
print positive
## Anzahl der gezählten Werte
anzahlpositive = len(positive)
print anzahlpositive
Code: Alles auswählen
import time
## Hier der 5-Sekunden Countdown. Hier ist die Verknüpfung von time und input jedoch noch nicht richtig. Die Ausgabe "Zeit abgelaufen" erfolgt nur, wenn 5 Eingaben getätigt wurden.
Messintervall = 5
while Messintervall > 0:
time.sleep(1)
x = input()
Messintervall -=1
print("Zeit abgelaufen", x)