2016-01-22 202 views
1

我刚刚开始学习python,任何人都可以帮助我。 例如,如果我有一个名为'速度'的变量,我只希望它达到100而不是0以上,而不是0以下。但是我还希望代码仍然运行,以便我可以将它设置得更低或更高,我的代码到目前为止:Python - 设置变量的限制

import tkinter as tk 
speed = 80 
def onKeyPress(event, value): 
    global speed 
    text.delete("%s-1c" % 'insert', 'insert') 
    text.insert('end', 'Current Speed: %s\n\n' % (speed,)) 
    speed += value 
    print(speed) 
    if speed >= 100: 
     text.insert('end', 'You have reached the speed limit') 


speed = 80 

root = tk.Tk() 
root.geometry('300x200') 
text = tk.Text(root, background='black', foreground='white', font=('Comic Sans MS', 12)) 
text.pack() 

# Individual key bindings 
root.bind('<KeyPress-w>', lambda e: onKeyPress(e, 1)) 
root.bind('<KeyPress-s>', lambda e: onKeyPress(e, -1)) # 

root.mainloop() 

我怎样才能得到'速度'变量停在100没有停止整个代码?

回答

5

不会立即改变speedspeed += value,请执行下列操作:

speed = min(max(speed+value, 0), 100) 

这首先产生speed+value0之间的较高值,所以如果它是消极的,它会停留在0。然后发送到min()找到它和100之间的较低值,所以如果它高于100,它将保持在100.

然后,您可以更改车ck到if speed == 100:,因为它不会更高。

+1

不知道为什么-1 ...这是一个很好的答案imho .. +1 –

3
if speed >= 100: 
    speed=100 
    text.insert('end', 'You have reached the speed limit')