Python这几年很火,在这里我用问答的方式来总结一下使用python的一些常见问题,对自己是个总结,也希望对有同样问题的朋友有帮助。
 
Q:Python为什么流行?
A:Python是一个比较方便的跨平台脚本语言。对于像我这种从C#转型Java的程序员,我更希望用python在Linux写脚本,而不用shell script,因为shell script实在不好懂。Python近几年的流行要归功于numpy和pandas,以及大数据和数据分析的流行。这些库使python成为数据分析的不二选择。
 
Q:Python 2.7和Python 3+用哪个?
A:如果用python做些小项目,写些分析数据的脚本,其实2.7就够用了。而且主流Linux一般都有python2.7,属于拿来就用,其实挺好的。但是如果开发大型项目,那么最好还是python3,特么是需要使用coroutine的时候,用python3原生的方法更好。但是如果项目中会使用很多第三方库的话,最好预先检查一下这些库有没有python3的版本。一般主流的库现在都支持python3了。
 
Q:PyPy还是CPython?
A:先说一下PyPy是啥。PyPy是一个用python实现的python虚拟机。相比CPython,由于PyPy大量使用了JIT优化,所以运行速度比CPython要快很多。但是,一些重要的第三方库,像Pandas和numpy都不支持pypy,这也就严重限制了Pypy的实用性。同时在python中有个叫Global Interpreter Lock(GIL)的东西,这从本质上限制了python语言的高并发执行效率,所以如果追求性能的话,golang可能会比pypy更合适。
 
Q:Windows还是Linux?
A:开发python还是用Linux吧,在windows 下开发很别扭,conda啥的真的不是很好用。在windows下写脚本就更用不到python 了。Powershell这个微软推崇的东西更好用一点。
 
Q:Pydev还是Pycharm?
A: 这个看个人习惯。很多用python 的人都是Java程序员,用eclipse 的会觉得Pydev更好,用IntelliJ的会觉得Pycharm更好用。
 
Q:Pypi是啥?
A:Pypi是类似nuget和maven的东西。用于管理第三方库。注意pypi是没有org的概念的。所以如果你的库和上面已经有的库重名的话,那你就只能改名了。所以如果准备把自己的库发到pypi上的话,最好先查查名字有没有已经被使用。
 
Q:Python开发环境有什么不同?
A:相比开发Java或者C#这种静态语言,开发Python可以通过使用REPL大幅提高效率。通过交互式命令行,我们可以把调试需要的数据都预先读好,再通过shell来进行交互式的编程。这种编程方式节约了调试时启动程序的时间,可以大大提高编程效率。在这里强力推荐使用ipython。
 
Q:Python适合编程新手么?
A:现在很多学校把python作为学生的第一编程语言。这个我个人认为并不好。Python语言过于灵活,并不适合新手打好编程基础。没有很好编程习惯的程序员在面对几万行python的项目的时候会非常不知所措,他们写的代码也会很难维护。
 
Q:Jupyter ipython notebook要不要用?
A:现在很多cloud平台提供免费的noteobok来使用,个人只推荐进行简单的数据分析和demo的时候用。因为notebook的代码不好进行版本控制和单元测试。单元测试对于python来说太重要了。
 
Q:Python有哪些常用的库?
A:环境配置:virtualenv,pip
网页编程:Django,pyramid或者flask
数据库:sqlalchemy,alembic
数据分析:numpy,pandas,matplotlib,scikit-learn
单元测试:pytest,mock
 
这里先写10个,以后想起来啥再慢慢加。
 

Python那些事的更多相关文章

  1. [Python] 糗事百科文本数据的抓取

    [Python] 糗事百科文本数据的抓取 源码 https://github.com/YouXianMing/QiuShiBaiKeText import sqlite3 import time im ...

  2. python 糗事百科实例

    爬取糗事百科段子,假设页面的URL是 http://www.qiushibaike.com/8hr/page/1 要求: 使用requests获取页面信息,用XPath / re 做数据提取 获取每个 ...

  3. 孤荷凌寒自学python那些事第二天

    孤荷凌寒自学python第二天 Python的变量声明 (完整学习过程屏幕记录视频在文末,手写笔记在文末) Python的变量声明不必要显式指定变量类型 甚至也不需要进行显式的声明 比javascri ...

  4. 孤荷凌寒自学python那些事第一天

    孤荷凌寒自学python第一天 初识python (学习过程的完整录像分享链接在文末,手写笔记图片在文末) 一种编程语言,首先是它的语言的基本架构,python总体让人耳目一新: 今天其实只接触到了它 ...

  5. python溴事百科爬虫

    import urllib.request import re # qianxiao996精心制作 #博客地址:https://blog.csdn.net/qq_36374896 def jokeCr ...

  6. Python/MOOC /翻Wall和互联网编程的那些事

    Python MOOC 翻Wall和互联网编程的那些事 声明: 1)本报告由博客园bitpeach撰写,版权所有,免费转载,请注明出处,并请勿作商业用途. 2)若本文档内有侵权文字或图片等内容,请联系 ...

  7. 关于Python编程的一些问答

    关于Python编程的一些问答 导语 大约1个月前,oschina.net和华章图书一起合作做了一个活动:OSC第51期高手问答--聊聊python那些事,来推广我参与撰写的书<编写高质量代码: ...

  8. python常见用法

    1.冒泡排序 a = [25,15,47,36,44,455,67,234,7,8,-47] def sortport(): for i in range(len(a)-1): for j in ra ...

  9. 神级程序员通过两句话带你完全掌握Python最难知识点——元类!

    千万不要被所谓"元类是99%的python程序员不会用到的特性"这类的说辞吓住.因为 每个中国人,都是天生的元类使用者 学懂元类,你只需要知道两句话: 道生一,一生二,二生三,三生 ...

随机推荐

  1. easyui 判断密码是否输入一致

    1.首先要扩展validatebox,添加验证两次密码功能 $.extend($.fn.validatebox.defaults.rules, { eqPassword:{ validator:fun ...

  2. jmeter正则表达式提取 引用

    jmeter正则表达式token提取 例: 添加正则 配置 token正则表达式:"token":"(.+?)" 模板:$1$ 添加信息头管理器进行配置 需要t ...

  3. Java线程池使用和源码分析

    1.为什么使用线程池 在多线程编程中一项很重要的功能就是执行任务,而执行任务的方式有很多种,为什么一定需要使用线程池呢?下面我们使用Socket编程处理请求的功能,分别对每种执行任务的方式进行分析. ...

  4. 所有 Python 程序员必须要学会的「日志」记录。

    本文字数:3840 字 阅读本文大概需要:10 分钟 写在之前 在我们的现实生活中,「日志记录」其实是一件非常重要的事情,比如银行的转账记录,汽车的行车记录仪记录行驶过程中的一切,如果出现了什么问题, ...

  5. AngularJs快速上手掌握

    一.前言 对于前端系列,自然少不了AngularJs的介绍了.在前面文章中,我们介绍了如何使用KnockoutJs来打造一个单页面程序,后面一篇文章将介绍如何使用AngularJs的开发一个单页面应用 ...

  6. android实现前置后置摄像头相互切换

    首先自定义一个继承自SurfaceView并且实现了SurfaceHolder.Callback接口的组件: public class CameraView extends SurfaceView i ...

  7. vs编译生成之后报错

    严重性 代码 说明 项目 文件行 禁止显示状态 错误 CS2001 Source file 'D:\Local\Apright_LW-Wiseb2b\Feekong.Model\obj\Release ...

  8. Linux系统基础优化总结

    请称呼我搬运工,哈哈 优化综合 https://www.cnblogs.com/yinshoucheng-golden/p/6149556.html (1)不用root管理,以普通用户的名义通过sud ...

  9. [HDU3516] Tree Construction [四边形不等式dp]

    题面: 传送门 思路: 这道题有个结论: 把两棵树$\left[i,k\right]$以及$\left[k+1,j\right]$连接起来的最小花费是$x\left[k+1\right]-x\left ...

  10. JMeter 性能测试进阶实战

    课程简介 本课程制作的主要目的是为了让大家快速上手 JMeter,期间穿插了大量主流项目中用到的技术,以及结合当今主流微服务技术提供了测试 Dubbo 接口.Java 工程技术具体实施方案,注重实践. ...