下面的程序允许我使用鼠标和键在一个生成的小盒子中创建形状。我无法理解下面代码中的两条语句。if,elif,else python语法
从下面的代码,当在第一个if语句中按下+键时,python如何更改大小(与下一个elif语句的 - 相同)?此外,如果连续按多次按钮,尺寸会如何增加。嵌套在下面语句中的if语句不应允许由于last_key!=“+”而改变大小:因为在按下“+”键之后,该值现在将被存储为last_key。一会儿,但似乎无法追赶上流动。
def main():
size = INITIAL_SIZE # current diameter of circle or length of square
set_fill_color(1, 0, 0) # shapes are initially red
last_key = "" # no key pressed yet
drawing_circle = False # are we drawing circles?
drawing_square = False # are we drawing squares?
mouse_was_down = False # was the mouse button most recently down?
while not window_closed():
if is_key_pressed("+"): # increase size?
if last_key != "+":
size = min(size + SIZE_CHANGE, MAX_SIZE)
last_key = "+"
elif is_key_pressed("-"): # decrease size?
if last_key != '-':
size = max(size - SIZE_CHANGE, MIN_SIZE)
last_key = '-'
elif is_key_pressed("r"): # draw in red?
set_fill_color(1, 0, 0)
last_key = "r"
elif is_key_pressed("g"): # draw in green?
set_fill_color(0, 1, 0)
last_key = "g"
elif is_key_pressed("b"): # draw in blue?
set_fill_color(0, 0, 1)
last_key = "b"
elif is_key_pressed("c"): # draw circles?
drawing_circle = True
drawing_square = False
last_key = "c"
elif is_key_pressed("s"): # draw squares?
drawing_circle = False
drawing_square = True
last_key = "s"
else:
last_key = "" # no key pressed
if mouse_down():
if not mouse_was_down: # beginning of a mouse click?
if drawing_circle:
draw_circle(mouse_x(), mouse_y(), size/2)
elif drawing_square:
draw_rectangle(mouse_x() - size/2, mouse_y() - size/2, size, size)
mouse_was_down = True
else:
mouse_was_down = False
request_redraw()
sleep(0.05)
start_graphics(主)
欢迎来到Stack Overflow。请尽快阅读[关于]页面。如您所知,Python缩进至关重要。 “while”循环意味着像所示的那样是独立的,或者是'main()'的一部分。那么没有缩进的'start_graphics(main)'怎么样?一般情况下,输入你想要的代码,不需要制表符,然后将'n'paste复制到编辑框中,然后选择它并使用编辑框上方的** {}'**按钮缩进它所有。 –
另外,你将'last_key'设置为''“'',这不等于'”+“',所以很有可能如果你按下”+“键,释放它,然后再按一次,大小将增加两次。 –
它看起来像嵌套的'if'是为了防止按住'+'键的大小增加。我这样说是因为,在任何**键按下0.05秒后,“last_key”被设置为空字符串。 – That1Guy