关于#python#的问题:想要做一个如果员工工作超过 40 小时,40小时之后的时间工资乘以1.5倍的公式,前40小时按正常工资结算

img

想要做一个如果员工工作超过 40 小时,40小时之后的时间工资乘以1.5倍的公式,前40小时按正常工资结算,该怎么做,顺便能不能看下其他码有什么问题。谢谢

假设员工的每小时工资为w,工作的小时数为h

if h <= 40:
    salary = w * h
else:
    salary = w * 40 + w * 1.5 * (h - 40)


img

第一,这个 if 'n' 的缩进有问题,放到 while 里去
第二,sum 放到 if 前边去,也在 while 里

对于超过40小时后的工资的计算,我认为是,把40小时的基本工资加上40小时后的1.5倍工资相加;

然后累加总工资,放在while循环内,需把每个人的工资都加到里面。

修改如下:

ynsalaries=input('Are there employees whose salaries are to be calculated?(y/n):')

sum=0
exhour=0  #超出40小时的工作时间
exsalaries=0  #超出40小时的工资 
                 

while ynsalaries=='y':

    
    wokersalaries=0  # 每个人的工资
    hoursalaries=int(input('Enter your salaries of per hour:'))  # 获取每小时的基本工资数
    workinghours=int(input('Enter your working hours:'))  #  获取工作时间

    if workinghours > 40:
        exhour=workinghours-40  # 计算超出40小时的工作时间
        exsalaries=hoursalaries*1.5  # 计算超出40小时后的每小时工资数
 # 超过40小时的工资,前40小时按基本工资hoursalaries算,40小时后的工资乘以基本工资的1.5倍算        
        wokersalaries=(hoursalaries*40)+(exhour*exsalaries)
    elif workinghours < 40:    # 小于40小时的工资,按基本工资hoursalaries乘以工作时间算
        wokersalaries=hoursalaries*workinghours
        
    sum+=wokersalaries  # 把每个人的工资累加到总工资
    print('The employee salary is:',wokersalaries)

    ynsalaries=input('\nWould you like to calculate another worker employees salary?(y/n):')


# 打印总工资
print('total emloyes salary is:',sum)

img