Seite 1 von 1
kbhit mit timeout-funktion
Verfasst: Mittwoch 24. Februar 2010, 15:32
von Cookie
Hi Leute,
ich versuche gerade ein psychologisches Experiment in Psychopy (basierend auf Python) zu programmieren und habe in eurem Forum gelesen, dass kbhit eine timeout-Funktion hat. Allerdings meldet mir mein Programm immer wieder einen Fehler, wenn ich bspw kbhit(timeout=600) schreibe.
Könnt ihr mir da vielleicht helfen? Was mache ich falsch?
Verfasst: Mittwoch 24. Februar 2010, 15:41
von EyDu
Hallo und willkommen im Forum!
Es ist natürlich ganz hilfreich, wenn du uns den Fehler (inklusive des Tracebacks) verrätst und auch den genannten Thread hier verlinkst.
Sebastian
Re: kbhit mit timeout-funktion
Verfasst: Mittwoch 24. Februar 2010, 15:44
von /me
Cookie hat geschrieben:Hi Leute,
ich versuche gerade ein psychologisches Experiment in Psychopy (basierend auf Python) zu programmieren und habe in eurem Forum gelesen, dass kbhit eine timeout-Funktion hat. Allerdings meldet mir mein Programm immer wieder einen Fehler, wenn ich bspw kbhit(timeout=600) schreibe.
Könnt ihr mir da vielleicht helfen? Was mache ich falsch?
Was du falsch machst? Du überliest Dinge.
In dem von dir wahrscheinlich gelesenen
Beitrag steht "Die Posixvariante von kbhit() unterstützt auch ein timeout Argument ...". Nun verwendest du aber wahrscheinlich Windows und dort zeigt ein kurzes Experiment folgendes Ergebnis:
Code: Alles auswählen
>>> msvcrt.kbhit(timeout=5)
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
msvcrt.kbhit(timeout=5)
TypeError: kbhit() takes no keyword arguments
>>> msvcrt.kbhit(5)
Traceback (most recent call last):
File "<pyshell#21>", line 1, in <module>
msvcrt.kbhit(5)
TypeError: kbhit() takes exactly 0 arguments (1 given)
Verfasst: Mittwoch 24. Februar 2010, 15:47
von Cookie
okay, also hat kbhit in meinem Fall garkeine timeout-Funktion?
wo kriege ich eine timeout-Funktion her???
PS: Danke für die schnellen Antworten!!!
Verfasst: Donnerstag 25. Februar 2010, 00:26
von sma
Wie wäre es mit einem GUI-Programm statt einer Konsolenanwendung? Diese könnte man (auch plattformunabhängig) leichter mit der gewünschten Funktion versehen.
Stefan
Verfasst: Donnerstag 25. Februar 2010, 10:46
von Cookie
Ich habe das Problem mittlerweile gelöst. Vielen Dank für eure Hilfe!
Verfasst: Donnerstag 25. Februar 2010, 12:40
von Leonidas
Cookie hat geschrieben:Ich habe das Problem mittlerweile gelöst.
Also wenn du die Lösung dann auch noch posten würdest...
Verfasst: Donnerstag 25. Februar 2010, 14:34
von Cookie
ich habs so gemacht: (bitte nicht auslachen, bin absolute Anfängerin, kenne Python erst seit Montag...)
Startzeit=core.Clock()
Startzeit.reset()
while True:
Instruktion.draw()
mywin.update()
if Startzeit.getTime() > 1:
print 'zu langsam'
break
if len(event.getKeys('a'))>0:
print Startzeit.getTime()
break
event.clearEvents()
Verfasst: Donnerstag 25. Februar 2010, 14:43
von cofi
Nein hier wird nicht gelacht. Das ist zum Nutzen fuer die Nachwelt.
Aber du solltest dir mal PEP 8 anschauen und in Zukunft fuer Code [code=py][/code] verwenden.
Welches Toolkit das ist waere eventuell auch hilfreich

Verfasst: Donnerstag 25. Februar 2010, 15:06
von Cookie
also ich habe weder eine idee was PEP ist noch was du mit Code und Toolkit meinst...
Verfasst: Donnerstag 25. Februar 2010, 15:24
von Leonidas
Also mit den Code-Tags meint Cofi das:
Code: Alles auswählen
Startzeit=core.Clock()
Startzeit.reset()
while True:
Instruktion.draw()
mywin.update()
if Startzeit.getTime() > 1:
print 'zu langsam'
break
if len(event.getKeys('a'))>0:
print Startzeit.getTime()
break
event.clearEvents()
Und mit PEP8 meint Cofi den Python Styleguide - einfach mal danach googlen

Verfasst: Donnerstag 25. Februar 2010, 16:40
von cofi
Leonidas hat geschrieben:Und mit PEP8 meint Cofi den Python Styleguide - einfach mal danach googlen

Oder in meine Signatur schaun
Und mit Toolkit meinte ich die Bibliothek, die du zum darstellen verwendest (und von der du scheinbar auch die Eingaben bekommst).