我相信我在我的程序中没有正确调用/返回函数

时间:2017-04-12 07:19:50

标签: python-3.x return

我无法让它正常运行,我必须使用3个函数,其目的就是我将它们设置为的目的。

def lw():
    l = input("Enter the length of your rectangle: ")
    w = input("Now enter the width of your rectangle:")
    return l, w

def ap():
    l,w = lw()
    area = l * w
    perimeter = 2*1 + 2*w
    return area, perimeter

def main():
    area,perimeter = ap()
    print("With a length of", l ."and a width of", w)
    print("the area of your rectangle is", area)
    print("the perimeter of your rectangle is", perimeter)

if __name__ == "__main__":
    main()

2 个答案:

答案 0 :(得分:0)

这应该有效

def lw():
    l = input("Enter the length of your rectangle: ")
    w = input("Now enter the width of your rectangle:")
    return l, w

def ap():
    l,w = lw()
    area = l * w
    perimeter = 2*1 + 2*w
    return l, w, area, perimeter

def main():
    l,w,area,perimeter = ap()
    print("With a length of", l ,"and a width of", w)
    print("the area of your rectangle is", area)
    print("the perimeter of your rectangle is", perimeter)

if __name__ == "__main__":
    main()

我做了两处更改:在l函数中传递wap(),并在main()函数中访问它们。

答案 1 :(得分:0)

Heyo,

我可以看到您的代码存在许多问题:

  1. print函数中的第一个main语句似乎是调用在该函数范围内不存在的变量。除了lw之外,您还需要从ap()返回areaperimeter的值。此声明的参数中也有轻微的拼写错误(.应该是,
  2. 您的周长计算有点偏差。它将2乘以1而非2乘以l,导致l无效。
  3. 您的代码请求的输入仅返回string值,而不是数值。如果您希望能够计算任何内容,则需要将这些内容传递到int()float()并返回这些函数的结果。