为什么这只是打印我的数组,而不是做数学和打印出完成的数学?

2024-10-06 06:52:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让它从一个数组(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部分,它们是正在进行的工作,只想在继续程序的其余部分之前对其进行排序

我希望该程序将执行的总和,并给出一个数字,这将是由用户输入的形状面积输出。以下是程序的输入和输出:

输入:

你的形状有几边?4 请分别输入每边的长度:2.2 请分别输入每边的长度:3.3 请分别输入每边的长度:4.4 请分别输入每边的长度:5 这是规则形状还是不规则形状? 键入R表示规则,键入I表示不规则:R

输出:

[7.83971192 17.63935183 31.35884769 40.49437976]

为什么会出现这样的结果?我该如何修复它


Tags: orand程序anforinputdefnp
1条回答
网友
1楼 · 发布于 2024-10-06 06:52:56

有两个问题:

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

math.tan(math.pi/numOfSides)

2)因为缺少一对圆括号,所以要乘以切线

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

相关问题 更多 >