为什么赢了';t python更新函数值?

为什么赢了';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

我试图用python制作一个表格,要求用户输入多边形的边长,然后在多边形的边数在3-9之间时给出该多边形的面积。我的问题是,在报告函数中,我必须为每个边数不同的多边形指定一个不同的区域,但是当我运行它时,即使多边形的边数发生了变化,该区域也始终是相同的

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
更改为
屈服