一次做一点:尽管通配符导入通常是不受欢迎的,但它是更常用的语法from turtle import *
from math import *
import math
您说过要输入实数;在Python中,这样的数字属于float类,所以这段代码应该是
^{pr2}$
下一节似乎有点奇怪。首先,请注意在Python中a^2是位异或,这不是您想要的;求幂将使用a**2执行。更关键的是,这在数学上有缺陷。a**2 + b**2 == c**2只有当三角形是直角的并且c是斜边时才是正确的(这是毕达哥拉斯的定理)。相反,只有当a、b、和{}满足三角形不等式时,三角形才有效,即a + b >= c,b + c >= a,和{}。因此,本节应为(带标点符号更正):if (a + b >= c) and (b + c >= a) and (c + a >= b):
print("it's a triangle")
else:
print("it's not a triangle")
下一节似乎有点奇怪,我不知道它要做什么。废掉它。在
以下部分有几个问题:int(acos(...))将acos向下舍入为一个整数,当你在这一点上以弧度工作时,这将导致你失去大量的精度。在
(a)(b)不是Python中乘法的有效语法;相反,必须使用a*b。在
同样,^不是指数;应该使用**。在
由于某些原因,您将a^2 - b^2 - c^2 / -2(b)(c)放在引号中,这将把它转换成一个字符串;当您这样做时,它被存储为文本,而不是求值。在
你不必要地否定了分子和分母;这可以去掉,使公式更标准。在
通过设置a =覆盖长度测量值;标准的数学表示法是将大写A、B和{}为角度。在
本节代码应为:A = degrees(acos((b**2 + c**2 - a**2)/(2*b*c)))
B = degrees(acos((c**2 + a**2 - b**2)/(2*c*a)))
C = degrees(acos((a**2 + b**2 - c**2)/(2*a*b)))
此外,如果角度是无效三角形,则可能不希望计算角度。要实现这一点,只需将最后一节移到if语句中。因此,最终代码是:from turtle import *
from math import *
import math
a = float(input("enter the value for a: "))
b = float(input("enter the value for b: "))
c = float(input("enter the value for c: "))
if (a + b >= c) and (b + c >= a) and (c + a >= b):
print("it's a triangle")
A = degrees(acos((b**2 + c**2 - a**2)/(2*b*c)))
B = degrees(acos((c**2 + a**2 - b**2)/(2*c*a)))
C = degrees(acos((a**2 + b**2 - c**2)/(2*a*b)))
else:
print("it's not a triangle")
因此,可以从侧面计算角度。在
您还想知道如何使用turtle来绘制三角形;我建议您实际学习如何使用turtle,因为这看起来是一个家庭作业或类似的任务。Here is a simple tutorial.