从一个函数到另一个函数使用局部变量

时间:2019-02-09 04:19:05

标签: python python-3.x function variables

编写一个程序,使用两个函数来计算员工的每周薪水。一个函数计算工资。其他功能将打印薪水。如果员工加班-他的加班工资应该是时间的一半。假设没有税。用代码编写适当的注释。不要使用全局变量。 这是我到目前为止的内容:

def payrate():
     hours = int(input('How many hours did you work?\n'))
     rate = int(input('What is your hourly rate?\n'))
     if hours <= 40:
         total = hours * rate
     else:
         total = 40 * rate + (hours - 40) * (1.5 * rate)

def salary():
     for total in payrate():
         print('Your weekly salary is $%d' %total)
         return payrate(total)
salary()

我知道这是不对的,但是我是一个初学者,正在学习中

3 个答案:

答案 0 :(得分:1)

这应该有效:

def payrate():
     hours = int(input('How many hours did you work?\n'))
     rate = int(input('What is your hourly rate?\n'))
     if hours <= 40:
         total = hours * rate
     else:
         total = 40 * rate + (hours - 40) * (1.5 * rate)
     return total

def salary():
     total = payrate()
     print('Your weekly salary is $%d' %total)
salary()

要在函数中使用“局部变量”,您必须像这样返回它(使用 return 关键字):

return local_variable

要从另一个函数接收它,可以在第二个函数中调用第一个函数,如下所示:

recieved_local_variable = first_function() 

答案 1 :(得分:1)

在Python中,您可以将参数传递给def ...()内部的函数:例如,您可以将变量rate和hours传递给函数payrate,以返回计算出的总数:

def payrate(rate, hours):
    ... 
    return total

如果您想要一个名为薪金的功能,只打印出payrate函数的结果,则可以执行以下操作:

def salary(hours, rate):
   print(payrate(hours, rate))

上面的函数调用payrate函数并打印返回值。

然后只需使用变量“ hours”和“ rate”调用薪水函数。

salary(hours, rate)

希望有帮助

答案 2 :(得分:0)

干得好,您非常亲密。您的薪水函数需要从payrate函数接收总薪水,而payrate函数需要将总薪水返回薪水,以便可以打印出来。这段代码对我来说很好:

    def payrate():

      hours = int(input('How many hours did you work?\n'))
      rate = int(input('What is your hourly rate?\n'))

      if hours <= 40 :
        total = hours * rate
      else :
        total = 40 * rate + (hours - 40) * (1.5 * rate)

      return total


    def salary():
      pay = payrate()
      print('Your weekly salary is $%d' % pay)


    salary()

我希望这对您有帮助