我是编程新手,我从Python(版本3)开始。在那一刻我试图理解功能。我有一个简单的计算器来计算一个人的工资,包括随着时间的推移。该函数计算随着时间的推移。
def computeOvertime(h,r):
standardHrs = 40
overTimeRate = r * 1.5
overTimeHrs = h - standardHrs
overTimePay = overTimeHrs * overTimeRate
return overTimePay
h = float(input("Enter Hours:"))
rate = input("Enter Rate:")
r = float(rate)
basicPay = 40 * r
p = computeOvertime(h,r)
totalPay = overTimePay + basicPay
print(totalPay)
当我运行此操作时,出现错误,指出名称overTimePay
未定义。
我想当我从函数返回oveTimePay
时,我可以在函数外部使用它。
我希望有人可以给我一些建议。
答案 0 :(得分:2)
当你这样做时:
p = computeOvertime(h,r)
返回局部变量overTimePay(函数的本地变量)并将其赋值给变量p。尝试使用:
totalPay = p + basicPay
希望这就是你要找的......
答案 1 :(得分:0)
因为overTimePay
是computeOvertime
函数中的局部变量。因此,如果您想将其用作全局,您可以:
def computeOvertime(h,r):
standardHrs = 40
overTimeRate = r * 1.5
overTimeHrs = h - standardHrs
global overTimePay
overTimePay = overTimeHrs * overTimeRate
但在正常情况下,我通常喜欢这个
def computeOvertime(h,r):
standardHrs = 40
overTimeRate = r * 1.5
overTimeHrs = h - standardHrs
overTimePay = overTimeHrs * overTimeRate
return overTimePay
p = computeOvertime(h,r)
totalPay = p + basicPay
答案 2 :(得分:0)
还记得你将computeOvertime结果保存到P吗?使用它。
p = computeOvertime(h,r)
totalPay = p + basicPay
print(totalPay)
答案 3 :(得分:0)
如果您在'p'中收集返回的值,那么为什么必须使用'OverTimePay'。
只需使用if (isset($_POST['entryId'], $_POST['accept'])) {
$stmt = $connect->prepare('UPDATE withdraws SET confirmed = 1 WHERE id = ?');
$stmt->execute(new array($_POST['entryId'])); // or whatever API for prepared statements you are using...
$stmt->close();
}
或者使用关键字global将OverTimePay声明为全局变量。而以这种方式使用全局变量的另一件事并不是一件好事。因此,只需使用已存储返回结果的局部变量。