我的问题是我试图从其他功能区调用函数成本来执行主函数调用的所有值返回。这是一个家庭作业,我被困住了。如果我不必从区域函数调用成本函数并且只是进行计算,那么这个问题对我来说很容易。
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 :(得分: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()
答案 1 :(得分:0)
您正在尝试使用未在area()函数范围内定义的变量。
在area()函数中,我们有未定义的大小和价格。从main()传入size变量,然后将其重命名为diameter,并且不使用此直径变量。
您还应该传递价格变量,因为您需要它来进行计算。
def area(diameter, price):
radius = diameter / 2
area = (radius**2) * math.pi
finalprice = cost(price, area) / area
return finalprice
另外,在计算finalprice(以及成本函数)时要小心整数除法......这可能会导致计算错误。