我的奖金计算有误

2024-05-16 21:18:43 发布

您现在位置:Python中文网/ 问答频道 /正文

以下是我目前为止的代码:

# This program will determine the appropriate bonus to be given to both the store
# and the employess.

# Lab 3-4

# The main function
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(monthlySales) # Call to get the employee bonus
    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 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 empAmount bonus
def empBonus(salesIncrease):
    if salesIncrease >= .05:
        empAmount = 75
    elif salesIncrease >= .04:
        empAmount = 50
    elif salesIncrease >= .03:
        empAmount = 40
    else:
        empAmount = 0
    return empAmount

# This function prints the bonus information
def printBonus(storeAmount, empAmount):
    print('The store bonus is $', storeAmount)
    print('The employee bonus is $', empAmount)
    if storeAmount == 6000 and empAmount == 75:
        print('Congrats! You have reached the highest bonus amounts possible!')

# Calls main
main()

为了测试这段代码,我给出了以下场景:

1) monthlySales = 120500 salesIncrease = 5

2) monthlySales = 93400 salesIncrease = 5

3) monthlySales = 75000 salesIncrease = 1.5

4) monthlySales = 82000 salesIncrease = 3.6

5) monthlySales = 125000 salesIncrease = 4.5

现在一切都好到3:5。“员工奖金金额”不应该是75美元,不过,结果是这样的。有什么办法解决这个问题吗?有人看到我代码中我没看到的错误吗?在

*编辑:每个输入值的代码输出如下:

1)6000美元75美元

2)4000美元75美元

3)0美元0美元

4)3000美元40美元

5)6000美元50美元


Tags: theto代码maindeffunctioncallthis
1条回答
网友
1楼 · 发布于 2024-05-16 21:18:43

很难判断出你的问题是什么,因为你的问题并不能解释你想做什么,但我会冒险猜测你偏离了100倍:

def empBonus(salesIncrease):
    if salesIncrease >= 5:
        empAmount = 75
    elif salesIncrease >= 4:
        empAmount = 50
    elif salesIncrease >= 3:
        empAmount = 40
    else:
        empAmount = 0
    return empAmount

为了使用第三个示例,您检查了1.5 >= 0.05,这当然是True,所以empAmount被设置为75。在

相关问题 更多 >