2018年StackOverflow上最受关注的10个Python问题

作为一个开发者,除了Github,你最应该上的网站就是StackOverflow(以下简称SO)- 编程领域的问答网站,在SO上可以找到最正确和最容易理解的答案。如果你是一个有经验的并且愿意分享的人,还可以通过回答问题或者其他用户的赞同而获得'声望值',现在基本互联网公司招聘时如果你的SO账号的声望值比较高是一个很正面的加分项。

新年伊始,我们来盘点下2018年StackOverflow上最受关注的10个Python问题,看看一年之后,Python开发者的关注点有没有改变:

What does the “yield” keyword do?

排名第一的还是它,关键词yield是用来做什么的?也是我早期学习Python时的不能理解的其中一点,该问题下的排名第一的回答非常有启发性

What are metaclasses in Python?

排名第二也没有变,元类是Python语言高级特性之一,是你学习Python绕不过去的学习点

Does Python have a ternary conditional operator?

现在看起来这个问题有点奇怪,因为它提出的太早了。在Python 2.5的时候就加了三元条件运算符: a if condition else b 。但是这个问题的关注很高,今年已经升到了第三位。

Does Python have a string ‘contains’ substring method?

新上榜的问题,其实就是用in

What does if __name__ == “__main__”: do?

这个问题关注度降了一些,这也是我早期很困惑的问题之一,直到在SO找个了答案。

Accessing the index in ‘for’ loops?

新上榜的问题,使用enumerate函数

Difference between append vs. extend list methods in Python

新上榜的问题,和上面的问题一样相对基础

How do I check whether a file exists without exceptions?

新上榜的问题,再延伸一点,可以引出EAFP(Easier to Ask Forgiveness than Permission,即不检查,出了问题由异常处理来处理) or LBYL(Look Before You Leap,即事先检查)这个问题

Iterating over dictionaries using 'for' loops

新上榜的问题,基础知识啦

How do I check if a list is empty?

还是原来的第10位,很初级的问题,答案是 `if not a`

总结

通过2017和2018年的So上最受关注的10个Python问题的变化,可以感受到

1. Python受关注程序越来越高

2. Pythoneer新人更多,更关注一些基础知识