python - 函数中定义的变量不能被另一个函数调用?杰通
问题描述
谁能告诉我这段代码有什么问题。我必须遵循这个类的指导方针,所以他们想要它,所以你的每周工资是由一个“calc_weekly_wages”函数计算的,然后一个“main”函数调用另一个函数并在一个句子中打印它,而不仅仅是一个数字输出。我收到一个错误,我的“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()
解决方案
是的,finalPay
确实超出范围就行了print
。函数的局部变量在该函数之外是不可访问的。
幸运的是,finalPay
被calc_weekly_wages()
. 因此,您可以在同名变量中捕获返回值:
finalPay = calc_weekly_wages()
那会解决问题。或者您可以将有问题的引用替换为finalPay
对您的函数的调用:
print ("Wages for " + str(hoursWorked) + "at $" + str(hourlyWage) + "is " + str(calc_weekly_wages()))
那也行。