首先,请原谅我,因为我对这个Python事物非常陌生(我真的是一个HTML / CSS类型的人,但我正在尝试分支)。这可能是一个基本的问题,但我们都必须从某个地方开始,对吧?
我正在整理一个非常基本的Python程序,它将从一串字母中选择一个随机字母,并在每次有人点击任意键时将其打印出来。整个过程非常简单,并且当前返回一个随机字母,但不等待按键执行,并在完成函数运行一次后停止。
import random
letterlist = 'abcd'
def random_letter(letters):
print ('Press enter for a random letter...')
print random.choice(letters)
random_letter(letterlist)
输出应如下所示:
Press enter for a random letter.
'b'
Press enter for a random letter.
(依此类推......)
很明显,无论我需要做什么都应该落入random_letter的某个地方。我一直在谷歌搜索并发现了很多对raw_input和mvscrt的引用,但我不完全确定我需要什么。我完全有可能只是提出错误的问题。
我假设假设我需要某种循环来保持无限期运行。
提前致谢!
答案 0 :(得分:2)
对于初学者,你需要一个循环来继续提示用户。你还需要一些循环的退出条件。这个循环可以在函数内部如下:
def random_letter(letters):
while True:
x = raw_input('Press enter for a random letter...')
if x == 'done':
break
print random.choice(letters)
random_letter('abcdef')
请注意,在循环内部,我们使用raw_input
提示用户键入内容,任何内容,然后按Enter键。当用户输入done
并点击输入时,我们会使用break
突破循环。
另一种方法是将现有函数包装在循环中,并处理函数外的提示。
def random_letter(letters):
print random.choice(letters)
while True:
x = raw_input('Press enter for a random letter...')
if x == 'done':
break
random_letter('abcdef')
答案 1 :(得分:0)
如果您不必使用循环,并考虑捕获键盘事件,那么就没有跨平台的方法:Is there a cross-platform python low-level API to capture or generate keyboard events?
对于Windows,有 pyHook :http://pyhook.wiki.sourceforge.net/
您可以查看 pyKeyLogger 的代码:http://pykeylogger.wiki.sourceforge.net/
或者肮脏的方式,捕获中断:Capture keyboardinterrupt in Python without try-except