为什么这只是打印我的数组而不是进行数学运算并打印出完成的数学运算?

时间:2019-08-29 21:59:06

标签: python arrays numpy math

我正在尝试从数组(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]

为什么这是结果,我该如何解决?

1 个答案:

答案 0 :(得分:0)

有两个问题:

1)三角函数使用弧度,即应使用

math.tan(math.pi/numOfSides)

2)您正切线相乘,因为缺少一对括号

area = newSideList[0] * newSideList[0] * numOfSides / (4 * math.tan(math.pi/numOfSides))