我是Python的新手,我正在尝试编写一个代码,可以随时接受用户输入(以按键的形式),并且根据用户按某些键时的条件,条件会发生变化。这就是我到目前为止所做的:
import Tkinter as tk
import time
timeout = time.time() + 30
def keypress(event):
global alive
if event.keysym == 'Escape':
alive = False
x = event.char
if x == "l":
print("hello")
elif x == "s":
print("no")
elif x == "r":
print("maybe")
elif x == "g":
print("bye")
else:
print(x)
root = tk.Tk()
print("Press a key (Escape key to exit):")
root.bind_all('<Key>', keypress)
global alive
alive = True
while alive:
start = time.time()
if time.time() > timeout:
print "Game Over"
break
# do stuff here, this is in my main loop where I am trying to put the 'if' statements
root.update()
此代码接受某些按键,并根据按键打印出相应的行。 while循环允许在“Game Over”之前发生一段时间。我正在尝试做的是使用按键作为输入在我的while循环中设置if语句。例如(某些内容):
if x == 'l' and sound == True:
print "bla blabla"
sound == False
elif x == 'l' and sound == False:
print "blahblahblah"
sound == True
问题是我不断收到一条错误消息,上面写着'x未定义',或者是这些行中的某些内容。请帮忙! 另外,我正在使用Mac。
答案 0 :(得分:0)
变量x
在keypress()
函数中定义,在该函数之外不可用。因此,您的if x == 1
语句引发了错误。