我正在尝试从数组(newSideList)中获取相同的数字并将它们相乘,从而对它们进行平方运算,因为我要使用的总和是s ^ 2 * n /(4 * tan(180 / n))。但是,当我运行代码时,它似乎在数组中做了一些数学运算,我不知道是什么或为什么。请有人解释。
上半部分的其余部分可以正常运行,因为我没有此数学部分就运行了它,似乎只是无法正确执行此计算。
import math
import numpy as np
sideList = []
numOfSides = int(input("How many sides does your shape have? "))
for i in range(0,numOfSides):
lengths = str(input("Please input the length of each side individually: "))
sideList.append(lengths)
processSideList = np.array([sideList])
newSideList = processSideList.astype(np.float)
def areaCalcReg():
area = newSideList[0] * newSideList[0] * numOfSides / 4 * math.tan(180/numOfSides)
print(area)
#def areaCalcIrreg():
#def perimCalc():
decision = str(input("Is this a regular or irregular shape?\nType an R for regular or I for irregular: "))
if decision == "R" or decision == "r":
areaCalcReg()
#elif decision == "I" or decision == "i":
#areaCalcIrreg()
#else:
#if decision != "R" and decision !="r" and decision != "I" and decision != "i":
#print("Please pick either an R for regular or an I for irregular.\n")
#return()
忽略#out部分,它们是一个进行中的工作,只想在继续执行程序的其余部分之前将其排序。
我希望程序将执行求和并给出1个数字的输出,这将是用户已输入的形状区域。这是程序的输入和输出:
输入:
您的形状有几边? 4 请分别输入每边的长度:2.2 请分别输入每边的长度:3.3 请分别输入每边的长度:4.4 请分别输入每边的长度:5 这是规则形状还是不规则形状? 为常规键入R或为不规则键入I:r
输出:
[7.83971192 17.63935183 31.35884769 40.49437976]
为什么这是结果,我该如何解决?
答案 0 :(得分:0)
有两个问题:
1)三角函数使用弧度,即应使用
math.tan(math.pi/numOfSides)
2)您正切线相乘,因为缺少一对括号
area = newSideList[0] * newSideList[0] * numOfSides / (4 * math.tan(math.pi/numOfSides))