账户余额有1W元,给20名员工发工资。编号从1到20,从编号1开始,依次领取工资,每人可领1000元领工资时,财务判断员工的绩效分(1-10)(随机生成),若低于5不发,换下一位若不够发,结束发工资。
2024-01-08 14:20:47
?
" " "
某公司,账户余额有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 # 账户余额不足结束发放
个人见解,欢迎指正 :)
?
文章来源:https://blog.csdn.net/m0_59399997/article/details/135434336
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!