如何实现按回车键基于次数调用不同turtle绘图函数?
实现Python Turtle按回车键依次绘制不同图形的计数器方案
核心思路是用一个计数器记录回车键的按下次数,每次触发时根据次数调用对应的绘图函数。以下是修改并完善后的代码:
import turtle # 初始化计数器,记录回车键按下次数 press_count = 0 def draw_triangle(): turtle.color('black') draw_line_turn() draw_line_turn() draw_line_turn() def draw_line_turn(): turtle.down() turtle.forward(30) turtle.left(120) turtle.up() # 第一个绘图序列:三角形 def triangle_sequence1(): turtle.clear() draw_triangle() # 占位:第二个绘图序列(后续补充具体绘制逻辑) def sequence2(): turtle.clear() turtle.write("图形2", align="center", font=("Arial", 16, "normal")) # 占位:第三个绘图序列(后续补充具体绘制逻辑) def sequence3(): turtle.clear() turtle.write("图形3", align="center", font=("Arial", 16, "normal")) # 占位:第四个绘图序列(后续补充具体绘制逻辑) def sequence4(): turtle.clear() turtle.write("图形4", align="center", font=("Arial", 16, "normal")) # 占位:第五个绘图序列(后续补充具体绘制逻辑) def sequence5(): turtle.clear() turtle.write("图形5", align="center", font=("Arial", 16, "normal")) # 回车键触发的统一处理函数 def handle_return(): global press_count press_count += 1 # 按次数取模,循环切换5种图形 current = press_count % 5 if current == 1: triangle_sequence1() elif current == 2: sequence2() elif current == 3: sequence3() elif current == 4: sequence4() else: # 余数0对应第5次按键,触发第五个图形 sequence5() def setup_listener(): turtle.listen() turtle.onkey(handle_return, "Return") setup_listener() turtle.done()
关键说明:
- 使用全局变量
press_count追踪按键次数,每次按下回车键自动递增 - 通过
press_count % 5实现5种图形的循环切换,避免次数无限增长 - 所有绘图逻辑统一由
handle_return函数分发,只需绑定这一个函数到回车键事件 - 已保留你完成的三角形绘制代码,其余4个序列留了占位,后续直接替换为对应图形的绘制逻辑即可
内容的提问来源于stack exchange,提问作者Jose Diaz
相关产品推荐
相关产品推荐

