Python中的乘法函数

时间:2013-09-08 19:03:17

标签: python function definition multiplication

我正在为我的班级写一个简短的程序而且我被困在最后一部分。当我运行程序时,一切都正常运行,直到我到达代码的末尾,我试图将两个单独函数的成本相乘以定义另一个函数。我怎么能纠正这个?

以下是完整的代码:

def main():
    wall_space = float(input('Enter amount of wall space in square feet: '))
    gallon_price = float(input('Enter the cost of paint per gallon: '))
    rate_factor = wall_space / 115
    total_gallons(rate_factor, 1)
    total_labor_cost(rate_factor, 8)
    total_gal_cost(rate_factor, gallon_price)
    total_hourly_cost(rate_factor, 20)
    total_cost(total_hourly_cost, total_gal_cost)
    print()

def total_gallons(rate1, rate2):
    result = rate1 * rate2
    print('The number of gallons of required is: ', result)
    print()

def total_labor_cost(rate1, rate2):
    result = rate1 * rate2
    print('The hours of labor required are: ', result)
    print()

def total_gal_cost(rate1, rate2):
    result = rate1 * rate2
    print('The cost of the paint in total is: ', result)
    print()

def total_hourly_cost(rate1, rate2):
    result = rate1 * rate2
    print('The total labor charges are: ', result)
    print()

def total_cost(rate1, rate2):
    result = rate1 * rate2
    print('This is the total cost of the paint job: ', result)
    print()

main()

我在这里绝望!

4 个答案:

答案 0 :(得分:5)

最初的问题是,您将total_hourly_costtotal_gal_cost函数自己传递给total_costdef total_hourly_cost(rate1, rate2): result = rate1 * rate2 print('The total labor charges are: ', result) print() return result 期望数字作为参数,而不是函数。

真正的问题是你的功能只是打印,当你可能希望它们返回他们计算的值时。

input

调用函数时,将结果存储在变量中(就像使用per_hour = total_hourly_cost(rate_factor, 20) 一样)

total_cost(per_hour, per_gallon)

然后将结果传递给最终函数:

{{1}}

答案 1 :(得分:2)

不要在所有功能中使用print;让他们改为返回值:

def total_hourly_cost(rate1, rate2):
    result = rate1 * rate2
    return result

然后你可以从main()打印结果:

print('The total labor charges are: {}'.format(total_hourly_cost(rate_factor, 20)))

但是如果你看看你的函数,他们都在做同样的事情:乘以两个参数。您不需要多个功能都执行相同的工作。实际上,您根本不需要任何功能。 抛弃函数并使用变量:

total_hourly_cost = rate_factor * 20
print('The total labor charges are: {}'.format(total_hourly_cost))

答案 2 :(得分:0)

您应该看看如何从python中的函数返回值,将它们存储在变量中,然后将它们重用于其他计算。

http://docs.python.org/release/1.5.1p1/tut/functions.html

答案 3 :(得分:0)

我们可以通过以下方式将多个参数相乘:

>>> def mul(*args):
    multi = 1
    for i in args:
          multi *=i
    return multi
  
    
      

MUL(2,8)

    
  

16

  
    
      

MUL(2,8,3)       48