从另一个函数调用函数进行计算(Python)

从另一个函数调用函数进行计算(Python),python,function,Python,Function,我的问题是,我试图从另一个函数区域调用函数cost来执行主函数调用返回的所有值。这是作业,我被卡住了。如果我不必从面积函数调用成本函数,只需进行计算,那么这个问题对我来说就容易了 import math def cost(price, area): return price / area def area(size): radius = size / 2 area = (radius**2) * math.pi finalprice = cost(pri

我的问题是,我试图从另一个函数区域调用函数cost来执行主函数调用返回的所有值。这是作业,我被卡住了。如果我不必从面积函数调用成本函数,只需进行计算,那么这个问题对我来说就容易了

import math


def cost(price, area):

    return price / area

def area(size):

    radius = size / 2
    area = (radius**2) * math.pi
    finalprice = cost(price, area) / area
    return finalprice


def main():

    size = int(input("How big is your pizza?: "))
    price = float(input("How much does the whole pizza cost?: "))

    answer = area(size)
    print("${0:0.3f}".format(answer))

main()

您试图使用未在area()函数范围内定义的变量

在area()函数中,我们有未定义的大小和价格。您从main()传入了size变量,但随后将其重命名为diameter,并且不使用此diameter变量

您还应该传递price变量,因为您需要它来进行计算

def area(diameter, price):
    radius = diameter / 2
    area = (radius**2) * math.pi
    finalprice = cost(price, area) / area
    return finalprice

此外,在计算最终价格(以及在成本函数中)时,请注意整数除法。。。这可能会导致计算错误。

为什么要将面积除以两次?我猜你是在计算比萨饼每平方米的价格吧

def area(diameter, price):
    radius = diameter / 2
    area = (radius**2) * math.pi
    finalprice = cost(price, area) / area
    return finalprice
import math
def area(diameter , price):
    radius = diameter / 2
    area = (radius**2) * math.pi
    finalprice = price/ area
    return finalprice
def main():
    size = int(input("How big is your pizza?: "))
    price = float(input("How much does the whole pizza cost?: "))
    answer = area(size, price)
    print("${0:0.3f}".format(answer))

main()

家庭作业问题通常不会在这里回答,除非你能证明你已经尝试自己解决问题,并且有一个特定的问题(不是“我卡住了”)“价格”没有在区域函数中定义。当你打电话给cost时,你试着使用它。我不是在问答案。我只是想在一些事情上得到一个方向或者一些建议,因为我在这个问题上尽了全力。我不知道为什么当我从面积函数调用代价函数时,它表示形式参数没有定义。你可能知道我是一个程序员新手。谢谢!我把价格包括在我的区域功能中,它起作用了!我也做了%除法而不是/。另外,直径变量是一个输入错误,我纠正了它。它现在起作用了!