Переменная, определенная в функции, не вызывается другой функцией?Jython - PullRequest
0 голосов
/ 27 сентября 2018

Может кто-нибудь сказать мне, что не так с этим кодом.Я должен следовать рекомендациям для этого класса, чтобы они этого хотели, чтобы ваша недельная оплата рассчитывалась с помощью функции «calc_weekly_wages», а затем для «основной» функции вызывать другую и печатать ее в предложении, а не просто в виде числа.Я получаю сообщение об ошибке, что моя переменная "finalPay" не определена, кто-нибудь может помочь?

hoursWorked = requestInteger("Enter weekly hours worked")
hourlyWage = requestNumber("Enter your hourly wage")

def calc_weekly_wages():
  if hoursWorked <= 40:
    finalPay = hoursWorked * hourlyWage
    return (finalPay)
  elif hoursWorked > 40:
    finalPay = 40 * hourlyWage + (hoursWorked - 40)*(hourlyWage * 1.5)
    return finalPay

def main():
  calc_weekly_wages()
  print ("Wages for " + str(hoursWorked) + "at $" + str(hourlyWage) + "is " + str(finalPay))

main()

1 Ответ

0 голосов
/ 27 сентября 2018

Да, finalPay действительно находится вне области на линии, которая делает print.Локальные переменные функции недоступны вне этой функции.

К счастью, finalPay возвращается calc_weekly_wages().Таким образом, вы можете записать возвращаемое значение в переменную с тем же именем:

finalPay = calc_weekly_wages()

Это исправит ситуацию.Или вы можете заменить проблемную ссылку на finalPay вызовом вашей функции:

print ("Wages for " + str(hoursWorked) + "at $" + str(hourlyWage) + "is " + str(calc_weekly_wages()))

И это тоже сработает.

...