当前位置:   article > 正文

【241】Python判断员工出勤是否能获得出勤奖

编写判断员工是否获得全勤奖金的代码逻辑,输出结果包括以下两种情况: “全勤,获得
 
 

4775d49f0cdf2e07cd8307cec431b0a8.gif

题目部分(原文见公众号:python宝)

python宝

https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MzU5NjIyOTE4OQ==&scene=123#wechat_redirect

小麦苗DB宝

https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzIzOTA2NjEzNQ==&scene=1&album_id=1407409723808366593&count=3#wechat_redirect

小麦苗个人博客:https://www.xmmup.com/

一、题目

  1. 公司用一个字符串来标识员工的出勤信息
  2. absent: 缺勤
  3. late: 迟到
  4. leaveearly:早退
  5. present: 正常上班
  6. 现需根据员工出勤信息,判断本次是否能获得出勤奖,
  7. 能获得出勤奖的条件如下:
  8. 1.缺勤不超过1次
  9. 2.没有连续的迟到/早退
  10. 3.任意连续7次考勤 缺勤/迟到/早退 不超过3次
  11. 用户的考勤数据字符串,记录条数》=1;输入字符串长度<10000;不存在非法输入
  12. 示例1如:
  13. 2
  14. present
  15. present absent present present leaveearly present absent
  16. 输出描述:
  17. 根据考勤数据字符串
  18. 如果能得到考勤奖输出true否则输出false
  19. 对于输出示例的结果应为
  20. true false
  21. 示例2如:
  22. 2
  23. present
  24. present present
  25. 输出true true

二、代码展示一

  1. kq_list=[]
  2. for i in range(int(input())):
  3. kq_list.append(input().split())
  4. l=[]
  5. for kq in kq_list:
  6. # 1.缺勤不能超过1次
  7. if kq.count('absent') > 1:
  8. l.append('false')
  9. continue
  10. # 2.没有连续的迟到/早退
  11. for i in range(len(kq)-1):
  12. a=kq[i]
  13. b=kq[i+1]
  14. if a in ['late','leaveearly'] and b in ['late','leaveearly']:
  15. l.append('false')
  16. break
  17. else:
  18. # 3.任意连续7次考勤 缺勤/迟到/早退 不超过3次
  19. for i in range(len(kq)-6):
  20. temp_list=kq[i:i+7]
  21. d,e,f=0,0,0
  22. for j in temp_list:
  23. if j == 'absent':
  24. d += 1
  25. elif j == 'late':
  26. e +=1
  27. elif j == 'leaveearly':
  28. f += 1
  29. if d+e+f > 3:
  30. l.append('false')
  31. break
  32. else:
  33. l.append('true')
  34. for i in l:
  35. print(i, end = " ")

代码展示二

  1. res = []
  2. num = int(input())
  3. for i in range(num):
  4. person = input().split()
  5. for j in range(len(person)):
  6. if person[j] == "absent" and person.count(person[j]) > 1:
  7. res.append("false")
  8. break
  9. elif (person[j] == "late" and person[j+1] == "late") or (person[j] == "leaveearly" and person[j+1] == "leaveearly"):
  10. res.append("false")
  11. break
  12. else:
  13. for i in range(len(person) -6):
  14. ll = person[i:i+7]
  15. if ll.count("late") + ll.count("absent") + ll.count("leaveearly"):
  16. res.append("false")
  17. break
  18. else:
  19. res.append("true")
  20. for i in res:
  21. print(i, end=" ")

答案

欢迎大家提供跟多的其它示例

2761e428aa6d9533f92564e17b3ac523.jpeg

About Me:小麦粒

● 本文作者:小麦粒,专注于python、数据分析、数据挖掘、机器学习相关技术,也注重技术的运用

● 作者博客地址:https://blog.csdn.net/u010986753

● 本系列题目来源于作者的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

● 个人微信号:pythonbao 联系我加微信群

● 个人QQ:87605025

● QQ交流群py_data :483766429

● 公众号:python宝 或 DB宝

● 提供OCP、OCM和高可用最实用的技能培训

● 题目解答若有不当之处,还望各位朋友批评指正,共同进步

310c582d18a1c8fff6db742436953cc5.gif

如果你觉得到文章对您有帮助,点击下方我的头像,赞赏我哦!

有您的支持,小麦粒一定会越来越好!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/431766
推荐阅读
相关标签
  

闽ICP备14008679号