我知道错误是getSales在赋值之前被引用了,但我不明白该如何修复它。我是进入编程课的第一学期,所以我读了其他问题,同样的错误,但我不能理解它如何影响我的代码的概念。很抱歉,这是一个重复的问题
def main():
monthlySales = getSales() #call to get sales
salesIncrease = getIncrease() #call to get sales increase
storeAmount = storeBonus(monthlySales) #call to get the store bonus
empAmount = empBonus(salesIncrease) #call to get the employee bonus
printBonus = printBonus(storeAmount, empAmount) #call to print amounts
#This function gets the monthly sales
def getSales():
monthlySales = input('Enter the monthly sales $')
monthlySales = float(monthlySales)
return monthlySales
#This function gets the percent of increase in sales
def getIncrease():
salesIncrease = input('Enter percent of sales increase. For Example 4% should be entered as 4: ')
salesIncrease = float(salesIncrease)
salesIncrease = salesIncrease / 100
return salesIncrease
#This function determines the storeAmount bonus
def storeBonus(monthlySales):
if monthlySales >=110000:
storeAmount = 6000
elif monthlySales >=100000:
storeAmount = 5000
elif monthlySales >=90000:
storeAmount = 4000
elif monthlySales >= 80000:
storeAmount = 3000
else:
storeAmount = 0
return storeAmount
#This function determines the empAmount bonus
def empBonus(salesIncrease):
if salesIncrease >= 5:
empAmount = 75
if salesIncrease >= 4:
empAmount = 50
if salesIncrease >= 3:
empAmount = 40
return empAmount
#This function prints the bonus information
def printBonus(storeAmount, empAmount):
print 'The store bonus amount is $', storeAmount
print 'The employee bonus amount is $', empAmount
if storeAmount == 6000 and empAmount == 75:
print 'Congrats! You have reached the highest bonus amounts possible!'
#calls main
main()
我以前也遇到过同样的问题,您只需添加一个问题:全局var 例如,在代码中:
如果要在外部创建的函数中使用变量,则必须使用它。 如果你在每个函数中为你使用的每个变量加上这个,你就可以了
如评论中所述,缩进已关闭。但是,我知道您现在已经解决了这个问题,但是您得到了一个错误,即在赋值之前引用了
printBonus
问题在于:
这里的问题是您有一个名为
printBonus
的局部变量和一个名为printBonus
的函数。在main
函数中,局部变量优先,因此每当函数引用printBonus
时,它都会引用局部变量在上面的一行中,在Python将值赋给
printBonus
之前,它首先必须弄清楚该值是什么。然而,这似乎是通过“调用”相同的printBonus
东西来实现的,这是一个尚未赋值的变量最简单的解决方法是不将任何局部变量赋给调用
printBonus
的结果,因为它不return
任何内容:没有名为
printBonus
的局部变量意味着在main
函数中,printBonus
将按预期引用函数printBonus()
你还说你“修复了一些
elif
”。我看不出您做了哪些更改,但是您可能需要检查empBonus
函数是否处理salesIncrease
小于3的情况相关问题 更多 >
编程相关推荐