'Turtle' 对象没有属性 'done' 以及代码冻结
'Turtle' object has no attribute 'done' as well as code freezes
我遇到了一个练习,但我不知道该怎么做。
练习:
编写一个名为 Triangle1 的函数,它接受三个整数作为输入变量,并打印“是”或“否”,具体取决于您是否可以从具有给定长度的边形成三角形。此外,我需要“使用python海龟形成三角形,海龟根据给定的边创建角度”。
这是我目前尝试过的方法。但是,我经常收到与未以某种方式定义的 turtle 的一部分有关的错误:
AttributeError: 'Turtle' object has no attribute 'done'
或让进程以退出代码 0 结束。
我认为这可能与使用特定程序有关,但我似乎无法弄清楚如何解决这个问题。
from math import *
import turtle
def draw_triangle(board, angles, sides):
A, B, C = angles
a, b, c = sides
# draw side a
board.forward(a)
# Change direction and draw side b
board.left(180-C)
board.forward(b)
# Change direction and draw side c
board.left(180-A)
board.forward(c)
board.done()
def main():
board = turtle.Turtle()
a = (int(input("Enter a value for a:")))
b = (int(input("Enter a value for b:")))
c = (int(input("Enter a value for c:")))
if a+b > c and b+c > a and a + c > b:
print("Those ARE valid sides of a triangle")
else:
print("Those ARE NOT valid sides of a triangle")
A = degrees(acos((a**2+b**2-c**2)/(2.0*a*b)))
B = degrees(acos((b**2+c**2-a**2)/(2.0*b*c)))
C = degrees(acos((c**2+a**2-b**2)/(2.0*a*c)))
draw_triangle(board, [A, B, C], [a, b, c])
main()
我希望代码的输出绘制一个根据用户输入的边长改变角度的三角形。
此代码修订版应修复 OP 所述问题以及三角函数问题(即三角形应该闭合。)它还将使用以前未使用的角度 B 将 return 海龟光标恢复到原来的状态标题:
from math import pi, acos
from turtle import Turtle, mainloop
def draw_triangle(board, angles, sides):
A, B, C = angles
a, b, c = sides
# draw side a
board.forward(a)
# Change direction and draw side b
board.left(pi - C)
board.forward(b)
# Change direction and draw side c
board.left(pi - A)
board.forward(c)
# If all's correct, return to starting angle
board.left(pi - B)
def main():
a = int(input("Enter a value for a: "))
b = int(input("Enter a value for b: "))
c = int(input("Enter a value for c: "))
if a + b > c and b + c > a and a + c > b:
print("Those ARE valid sides of a triangle")
else:
print("Those ARE NOT valid sides of a triangle")
A = acos((b**2 + c**2 - a**2) / (2.0 * b * c))
B = acos((c**2 + a**2 - b**2) / (2.0 * c * a))
C = acos((a**2 + b**2 - c**2) / (2.0 * a * b))
board = Turtle()
board.radians()
draw_triangle(board, [A, B, C], [a, b, c])
mainloop()
main()
board.done()
无效,因为 board
是乌龟,done()
是屏蔽方法。三角函数问题是三个角度计算赋值错误
最后,我将海龟切换为 弧度 ,这样所有的数学运算都可以在不转换为度数的情况下完成。
我遇到了一个练习,但我不知道该怎么做。
练习:
编写一个名为 Triangle1 的函数,它接受三个整数作为输入变量,并打印“是”或“否”,具体取决于您是否可以从具有给定长度的边形成三角形。此外,我需要“使用python海龟形成三角形,海龟根据给定的边创建角度”。
这是我目前尝试过的方法。但是,我经常收到与未以某种方式定义的 turtle 的一部分有关的错误:
AttributeError: 'Turtle' object has no attribute 'done'
或让进程以退出代码 0 结束。 我认为这可能与使用特定程序有关,但我似乎无法弄清楚如何解决这个问题。
from math import *
import turtle
def draw_triangle(board, angles, sides):
A, B, C = angles
a, b, c = sides
# draw side a
board.forward(a)
# Change direction and draw side b
board.left(180-C)
board.forward(b)
# Change direction and draw side c
board.left(180-A)
board.forward(c)
board.done()
def main():
board = turtle.Turtle()
a = (int(input("Enter a value for a:")))
b = (int(input("Enter a value for b:")))
c = (int(input("Enter a value for c:")))
if a+b > c and b+c > a and a + c > b:
print("Those ARE valid sides of a triangle")
else:
print("Those ARE NOT valid sides of a triangle")
A = degrees(acos((a**2+b**2-c**2)/(2.0*a*b)))
B = degrees(acos((b**2+c**2-a**2)/(2.0*b*c)))
C = degrees(acos((c**2+a**2-b**2)/(2.0*a*c)))
draw_triangle(board, [A, B, C], [a, b, c])
main()
我希望代码的输出绘制一个根据用户输入的边长改变角度的三角形。
此代码修订版应修复 OP 所述问题以及三角函数问题(即三角形应该闭合。)它还将使用以前未使用的角度 B 将 return 海龟光标恢复到原来的状态标题:
from math import pi, acos
from turtle import Turtle, mainloop
def draw_triangle(board, angles, sides):
A, B, C = angles
a, b, c = sides
# draw side a
board.forward(a)
# Change direction and draw side b
board.left(pi - C)
board.forward(b)
# Change direction and draw side c
board.left(pi - A)
board.forward(c)
# If all's correct, return to starting angle
board.left(pi - B)
def main():
a = int(input("Enter a value for a: "))
b = int(input("Enter a value for b: "))
c = int(input("Enter a value for c: "))
if a + b > c and b + c > a and a + c > b:
print("Those ARE valid sides of a triangle")
else:
print("Those ARE NOT valid sides of a triangle")
A = acos((b**2 + c**2 - a**2) / (2.0 * b * c))
B = acos((c**2 + a**2 - b**2) / (2.0 * c * a))
C = acos((a**2 + b**2 - c**2) / (2.0 * a * b))
board = Turtle()
board.radians()
draw_triangle(board, [A, B, C], [a, b, c])
mainloop()
main()
board.done()
无效,因为 board
是乌龟,done()
是屏蔽方法。三角函数问题是三个角度计算赋值错误
最后,我将海龟切换为 弧度 ,这样所有的数学运算都可以在不转换为度数的情况下完成。