想要做一个如果员工工作超过 40 小时,40小时之后的时间工资乘以1.5倍的公式,前40小时按正常工资结算,该怎么做,顺便能不能看下其他码有什么问题。谢谢
假设员工的每小时工资为w,工作的小时数为h
if h <= 40:
salary = w * h
else:
salary = w * 40 + w * 1.5 * (h - 40)
第一,这个 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)