""" 某公司,账户余额有1W元,给20名员工发工资。 员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元 领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位 如果工资发完了,结束发工资。
提示: continue用于跳过员工,break直接结束发工资 if判断余额,不要忘记发完工资后,余额减少1000哦 """
第一种:
"""
某公司,账户余额有1W元,给20名员工发工资。
员工编号从1到20,从编号1开始,依次领取工资,每人可领取1000元
领工资时,财务判断员工的绩效分(1-10)(随机生成),如果低于5,不发工资,换下一位
如果工资不够发,结束发工资。
提示:
continue用于跳过员工,break直接结束发工资
if判断余额,不要忘记发完工资后,余额减少1000哦
"""
import random
n = 10000 # 账户余额
for i in range(1, 21):
score = random.randint(1, 10) # 每次循环产生随机数
if score < 5:
print(f"员工{i},绩效分{score},低于5,不发工资,下一位。")
else:
if n > 0:
n -= 1000
print(f"向员工{i}发放工资1000元,账户余额还剩{n}元")
else:
print("工资发完了,下个月领取吧。")
break
# 这种写法存在一个问题 如果 0<n<1000是还是会继续发工资
# 这会导致n出现小于零的情况
第二种:
import random
n = 10000 # 账户余额
for i in range(1, 21):
score = random.randint(1, 10) # 每次循环产生随机数
if score < 5:
print(f"员工{i},绩效分{score},低于5,不发工资,下一位。")
continue # 到这里可以直接结束这次循环,开始下一次循环
if n >= 1000: # n>=1000 排除资金出现负数的概况
n -= 1000
print(f"向员工{i}发放工资1000元,账户余额还剩{n}元")
else:
print("工资发完了,下个月领取吧。")
break # 账户余额不足结束发放
""" 这种写法也也有个小问题: continue虽然可以提前结束本次循环,直接来是下次循环 但是,当一次循环结束后账户余额小于1000时, 若下个人的score依旧小于5,则会继续判断下一个人的score, 这便造成了不必要的循环,若不使用continue,则不会出现这种情况, 但是循环会出错。 所以我想到了第三种写法,先判断账户余额,再判断绩效,则不会出现这种问题 """
第三种:
import random
n = 10000 # 账户余额
for i in range(1, 21):
score = random.randint(1, 10) # 每次循环产生随机数
if n >= 1000: # n>=1000 排除资金出现负数的概况
if score < 5:
print(f"员工{i},绩效分{score},低于5,不发工资,下一位。")
continue # 到这里可以直接结束这次循环,开始下一次循环
else:
n -= 1000
print(f"向员工{i}发放工资1000元,账户余额还剩{n}元")
else:
print("工资发完了,下个月领取吧。")
break # 账户余额不足结束发放
个人见解,欢迎指正 :)
本文介绍了三种处理公司给20名员工发放工资的Python代码实现,优化了资金管理和绩效判断流程,避免了资金不足时不必要的循环。
(随机生成),若低于5不发,换下一位若不够发,结束发工资。&spm=1001.2101.3001.5002&articleId=135434221&d=1&t=3&u=f4dd92b5522841b5be5e3a12fec086b0)
988

被折叠的 条评论
为什么被折叠?



