起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 短期培训 > 编程语言 > 1024程序员节为何还要上班 加班是程序员的专长吗

1024程序员节为何还要上班 加班是程序员的专长吗

时间:2019-10-24 13:47:46来源:编程网 作者:IT培训网 已有: 名学员访问该课程

  快捷搜索:程序员

前言:今天是1024程序猿/媛的节日,本来听起来不错,可是想到明天项目转测,估计又不知道要加班到几点就觉得心塞….为什么明明是程序员的节日,自己却要加班!

为什么10.24程序员节,我却需要加班?难道程序员的节日不放假吗?

1024程序员节

1024程序员节为何还要上班 加班是程序员的专长吗_www.epx365.cn

10.24程序员节

今天是1024程序猿/媛的节日,本来听起来不错,可是想到明天项目转测,估计又不知道要加班到几点就觉得心塞….为什么明明是程序员的节日,自己却要加班!

是因为我没有穿格子衫?

1024程序员节为何还要上班 加班是程序员的专长吗_www.epx365.cn

程序员穿搭标配

或是我的发际线不达标?

1024程序员节为何还要上班 加班是程序员的专长吗_www.epx365.cn

程序员发际线

归根结底,还是自身技术不过关,顶多算是个搬砖的。

1024程序员节为何还要上班 加班是程序员的专长吗_www.epx365.cn

专业搬砖三十年

CTRL+C & CTRL+V

经常遇到来面试的人员,问到为什么从上家公司离职,回答的无外乎薪资问题、感觉在公司没有提升空间、想找个更好的发展平台,等等…但大家是否想过,每天CTRL+C & CTRL+V的工作心态与if else 的编程思路,是公司没有给你提升的空间,还是自己不想着自我提升呢?

1024程序员节为何还要上班 加班是程序员的专长吗_www.epx365.cn

细思恐极

一道简单习题引发的思考

今天无意间看到一道python习题,题目是这样的:

有一个长度在1-10000之间的数字列表,它们通过逗号分隔,其中涵盖了0-1000的重复数字,比如1,4,3,5,3,5,4,该列表中有且仅有一个数字出现了奇数次,请通过代码获得该列表中,那个出现奇数次的数字。

常规解法

打眼一看这道题,感觉很无脑,无非是列表转集合,然后for循环集合中的数字,通过count进行计算就OK了么,代码如下:

1# -*- coding: utf-8 -*-

2# @Author : 王翔

3# @WeChat : King_Uranus

4# @公众号 : 清风Python

5# @GitHub : https://github.com/BreezePython

6# @Date : 2019/10/24 0:01

7# @Software : PyCharm

8# @version :Python 3.7.3

9# @File : 常规解法.py

10

11def func():

12 case_list = input("请输入用例列表:").strip().split(',')

13 case_set = set(case_list)

14 for num in case_set:

15 if case_list.count(num) % 2:

16 print("找到符合要求的数字: {}".format(num))

17 break

18 else:

19 print("未找到符合要求的数字")

20

21if __name__ == '__main__':

22 func()

for else确实是python中比较特殊的一个语法结构,如果for循环正常执行结束,则执行else内的语句。但程序说的很清楚列表中有且仅有一个数字出现了奇数次,完全没有必要画蛇添足。

强行显摆解法

大家都知道,如果面试的时候,你能将题目通过多种方式实现,那么肯定会得到更高的认可对,然后有了下面的强行装13解法:1# -*- coding: utf-8 -*-

2# @Author : 王翔

3# @WeChat : King_Uranus

4# @公众号 : 清风Python

5# @GitHub : https://github.com/BreezePython

6# @Date : 2019/10/24 0:10

7# @Software : PyCharm

8# @version :Python 3.7.3

9# @File : 2.groupby函数.py

10

11from itertools import groupby

12

13def func():

14 case_list = input("请输入用例列表:").strip().split(',')

15 list_group = groupby(case_list)

16 for k, v in list_group:

17 if len(list(v)) % 2:

18 print("找到符合要求的数字: {}".format(k))

19 break

20

21if __name__ == '__main__':

22 func()

itertools的groupby在日常中使用的比较少。groupby聚合函数与日常使用的sql等聚合方式一致,最终生成key:value的键值对,value为迭代对象。

更为简洁的Counter

python中collections模块附带有一个Counter的函数,使用它能让我们装13时,显得没有上面那么僵硬:

1# -*- coding: utf-8 -*-

2# @Author : 王翔

3# @WeChat : King_Uranus

4# @公众号 : 清风Python

5# @GitHub : https://github.com/BreezePython

6# @Date : 2019/10/24 0:58

7# @Software : PyCharm

8# @version :Python 3.7.3

9# @File : 3.Counter函数.py

10

11from collections import Counter

12

13def func():

14 case_list = input("请输入用例列表:").strip().split(',')

15 print(Counter(case_list))

16 for k, v in Counter(case_list):

17 if v % 2:

18 print("找到符合要求的数字: {}".format(k))

19 break

20

21if __name__ == '__main__':

22 func()

装X翻车现场

本来这道题到这里该结束了,但仔细想想,还有什么方式可以用来统计元素数量的奇偶性呢?不管是python还是java等其他编程语言,都存在一个异或的操作,是否可以使用它来实现。

1^3^1 = 3

然后想当然的,我就写出了下面的代码:

1from functools import reduce

2

3def func():

4 case_list = map(int, input("请输入用例列表:").strip().split(','))

5 print(reduce(lambda x, y: x ^ y, case_list))

6

7if __name__ == '__main__':

8 func()

看上去没啥毛病,使用reduce进行逐一的异或比较,最终得到了结果,可真的是这样吗?不妨让我们来举个栗子:

1^2 =3 那么 1^2^3是多少?结果为0!

再写下去,还是可以使用一些其他的方式实现。说这么多只是想告诉大家,遇到问题,多主动思考,即便想的是错的,也能从错误中收获知识。

文章出自:http://qh.itpxw.cn/peixun/software/201957028.html

文章标题:1024程序员节为何还要上班 加班是程序员的专长吗



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:IT培训网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.itpxw.cn 注册时间:2016-07-18 11:07 最后登录:2024-02-20 13:02
推荐内容