为什么赢了';t python更新函数值?
我试图用python制作一个表格,要求用户输入多边形的边长,然后在多边形的边数在3-9之间时给出该多边形的面积。我的问题是,在报告函数中,我必须为每个边数不同的多边形指定一个不同的区域,但是当我运行它时,即使多边形的边数发生了变化,该区域也始终是相同的为什么赢了';t python更新函数值?,python,function,polygon,Python,Function,Polygon,我试图用python制作一个表格,要求用户输入多边形的边长,然后在多边形的边数在3-9之间时给出该多边形的面积。我的问题是,在报告函数中,我必须为每个边数不同的多边形指定一个不同的区域,但是当我运行它时,即使多边形的边数发生了变化,该区域也始终是相同的 import math def main(): side_length = get_side_length() report(side_length) def get_side_length(): length = i
import math
def main():
side_length = get_side_length()
report(side_length)
def get_side_length():
length = int(input('Enter a side length: '))
return length
def report(a):
num_sides = 2
each_area = polygon_area(a)
print('side length\t'+ 'number of sides\t'+ 'area')
while num_sides < 9:
num_sides += 1
print(a, num_sides, each_area, sep='\t\t', end='\n')
def polygon_area(sl):
for num_sides in range(3, 10):
area = (num_sides * sl * sl) / (4 * math.tan(math.pi / num_sides))
return area
main()
导入数学
def main():
侧边长度=获取侧边长度()
报告(边长)
def get_side_length():
长度=int(输入('输入边长:'))
返回长度
def报告(a):
边数=2
每个面积=多边形面积(a)
打印('边长\t'+'边数\t'+'面积')
当边数小于9时:
边数+=1
打印(a,数字侧,每个区域,sep='\t\t',end='\n')
def多边形面积(sl):
对于范围(3,10)中的num_边:
面积=(num_sides*sl*sl)/(4*math.tan(math.pi/num_sides))
返回区
main()
嗯,您的代码只调用多边形\u区域一次。如果您想要获得多个区域,那么应该多次调用该函数。它应该接受num_sides
作为参数也是合理的。将return
语句无条件地放在循环中是个坏主意,因为return
会导致函数立即终止。例如,范围(10)内的i的:return i
将返回0
,而不是[0,1,2…9]
。将多边形区域中的return
更改为屈服