Python turtle模块获取输入遇AttributeError错误,求实现边长输入画正方形
问题解决:Turtle中AttributeError及正方形绘制修正
错误原因
textinput是turtle.Screen类的方法,并非Turtle实例的方法,你错误地尝试用Turtle对象调用该方法,导致了AttributeError。此外代码还存在两个额外问题:
textinput返回的是字符串类型,直接传给forward会报错,需要转为整数- 绘制正方形时,右转角度应该是90度(正方形内角为90度),而非边长数值
修正后的代码
import turtle as tu # 先创建屏幕对象,用于获取用户输入 screen = tu.Screen() # 获取输入并转为整数类型 square_len = int(screen.textinput("Square Length", "Length")) # 创建海龟实例 turtle = tu.Turtle() turtle.color("cyan1") turtle.shape("turtle") def draw_square(): # 正方形需要循环4次:前进+右转90度 for _ in range(4): turtle.forward(square_len) turtle.right(90) draw_square() screen.exitonclick()
关键修改点
- 提前创建
Screen对象,通过它调用textinput方法 - 将输入的字符串转为整数
int(),确保turtle能正确处理数值 - 重构
draw_square函数:用循环简化代码,每次右转90度(正方形的正确转向角度)
内容的提问来源于stack exchange,提问作者Shriram Dekhane
相关产品推荐
相关产品推荐

