Python - 设置变量限制

时间:2016-01-22 23:12:46

标签: python tkinter

我刚刚开始学习python,任何人都可以帮助我。 例如,如果我有一个名为' speed'我只希望它转到100而不是上面,而不是低于0.但是我还希望代码仍然运行,所以我可以设置它更低或更高,到目前为止我的代码:

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()

我如何获得速度&#39;变量停止在100而不停止整个代码?

2 个答案:

答案 0 :(得分:5)

不要立即使用speed更改speed += value,请执行以下操作:

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

这首先在speed+value0之间产生较高的值,因此如果它为负,则它将保持为0.然后将其发送到min()以找到它与100之间的值较低,因此如果它高于100,则会保持为100。

然后,您可以将支票更改为if speed == 100:,因为它不会更高。

答案 1 :(得分:3)

if speed >= 100:
    speed=100
    text.insert('end', 'You have reached the speed limit')
相关问题