试图将变量赋给值会导致“无法赋给运算符”

2024-09-30 02:31:53 发布

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

    def main():
    bonus()
def bonus():
    #Dollars from sales are input, then time worked,
    #then the salary and possible bonus is added
    #to the calculated commission based on the earned commission rate
    monthlySales=int(input('How much money did your employee make in sales?',))
    if monthlySales<10000:
        commRate=0
    elif monthlySales>=10000 and monthlySales<100000:
        commRate=0.02
    elif monthlySales>=100001 and monthlySales<500000:
        commRate=0.15 and monthlyBonus=1000
    elif monthlySales>=500001 and monthlySales<1000000:
        commRate=0.28 and monthlyBonus=5000
    elif monthlySales>1000000:
        commRate=0.35 and monthlyBonus=100000
    yearsWorked=int(input('How many years has your employee worked here? Round down to the nearest year.',))
    if yearsWorked>=5 and monthlySales>=100000:
        extraBonus+1000
    elif yearsWorked<1:
        monthsWorked=int(input('How many full months has your employee worked here?',))
        if monthsWorked<3:
            print('Your employee has not worked here long enough to qualify for a bonus.')            
main()

我想做的是做一个程序,预先确定的佣金率是基于一个员工的销售额被输入程序的多少。你知道吗

我在上遇到“无法分配给操作员”错误

commRate=0.35 and monthlyBonus=100000

,它告诉我在if嵌套中直接赋值的其余变量上会得到相同的错误。你知道吗

我到底做错什么了?你知道吗


Tags: andthetoinputyourifemployeehow
3条回答

将值赋给变量时,不需要使用and运算符。但是您可以使用来检查是否满足了elif的条件(所有条件)陈述。试试看以下内容:

elif monthlySales>=100001 and monthlySales<500000:
    commRate=0.15
    monthlyBonus=1000
elif monthlySales>=500001 and monthlySales<1000000:
    commRate=0.28
    monthlyBonus=5000
elif monthlySales>1000000:
    commRate=0.35
    monthlyBonus=100000 
elif monthlySales>=100001 and monthlySales<500000:
    commRate=0.35 ; monthlyBonus=100000

或者

elif monthlySales>=100001 and monthlySales<500000:
    commRate=0.35
    monthlyBonus=100000

在Python中,赋值不能出现在与C不同的表达式中,所以这就是错误的原因。这是为了防止在进行比较时出现意外的赋值。请阅读第5.7节最后一段:

https://docs.python.org/2/tutorial/datastructures.html

相关问题 更多 >

    热门问题