2015-11-11 83 views
-1

我的问题是我试图从其他函数区域调用函数代价以完成主函数调用的所有返回值。这是作业,我卡住了。如果我不必从区域函数中调用成本函数并仅执行我的计算,则问题对我来说很容易。从另一个函数调用函数进行计算(Python)

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() 
+0

家庭作业的问题通常不回答就到这里,除非你能证明你已经尝试自己解决问题,有一个特定的问题(不是“我卡”) – enigma

+0

“价格”不在区域功能中定义。当你打电话费用时,你尝试并使用它。 – tpdietz

+0

我不是要求解答。我只想为某件事或某些提示获取方向,因为我尝试了所有关于此问题的知识。我不知道为什么当我从区域函数调用成本函数时,它说形式参数没有被定义。你可能知道我是新手程序员。 –

回答

0

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

在area()函数中,我们有未定义的大小和价格。你从你的main()传递size变量,但是它被重命名为diameter,并且这个diameter变量没有被使用。

您还应该传递价格变量,因为您需要它进行计算。

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

此外,计算finalprice时(和你的成本函数)小心整数除法...这会导致你的计算错误。

+0

谢谢!我将价格包含在我的区域功能中,并且工作正常!我也做%划分而不是/。此外,直径变量是一个错字,我纠正它。它现在工作! –

1

你为什么要把这个区域分成两次?我猜你试图计算每个单位广场面积比萨的成本?

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() 
相关问题