Python都说是最容易学习的编程语言,但是为什么还是有很多的小白在学习的过程中学的云里雾里,一天到晚都是报错,异常,这也怪不得会有那么多人说,学Python是从入门到入土!

其实一门编程语言不像语文那样。靠死记硬背就行了的,他是需要结合实战加上自己所掌握的知识来实现一个程序,这样学起来才有成就感,才能感觉学习编程语言不会枯燥!

 

第一次接触 Python 是在一节编程入门课上。其实,在此之前了解过它,所以在上课之前我对它的语法已经很熟悉了,但在上课之前我没有用它做过真正的项目。

尽管对它没有太大兴趣,但我认为把它介绍给人们去学习编程还是很好的。我对它不是不喜欢,而是一种“无所谓”的态度。原因很简单:它里面有太多“魔法”。 C 和 Java 这些语言,对底层的行为描述的很清晰,Python 则完全相反。

另外,Python 结构松散:写大型复杂程序时,遇到规则严谨的程序结构体(比如每个文件一个公共类),比其他语言(比如 Java )要费些力气。但是,在这些方面 Python 给了你很大的自由。

我曾经和很多人做过很多项目,不同的人用不同的系统。就我而言,我经常在windows系统和Linux系统之间切换。

 

举一个实际的例子,有一个项目,我写了项目的自动测试脚本,结果发现只有我能用,因为是用  PowerShell 写的,而我是项目中唯一使用 Windows 的。当时同事们自然认为 bash 是最好的,我还向他们解释 PowerShell 遵循一种不同的模式并且有它的强项(例如,它提供了 .NET 框架接口),它是面向对象的脚本语言,和 bash 完全不一样。

毫无疑问,Python 确实有用很多的优点,每一个优点看起来都非常吸引人。但是,Python 并不是没有缺点的,最主要的缺点有以下几个:Python 的执行速度不够快。

当然,这也不是一个很严重的问题,一般情况下,我们不会拿 Python 语言与 C/C++ 这样的语言进行直接比较。在 Python 语言的执行速度上,一方面,网络或磁盘的延迟,会抵消掉部分 Python 本身消耗的时间;

另一方面,因为 Python 特别容易和 C 结合起来,因此,我们可以通过分离一部分需要优化速度的应用,将其转换为编译好的扩展,并在整个系统中使用 Python 脚本将这部分应用连接起来,以提高程序的整体效率。

Python 的 GIL 锁限制并发:Python 的另一个大问题是,对多处理器支持不好。

如果读者接触 Python 时间比较长,那么,一定听说过 GIL 这个词。

GIL 是指 Python 全局解释器锁(Global Interpreter Lock),当 Python 的默认解释器要执行字节码时,都需要先申请这个锁。这意味着,如果试图通过多线程扩展应用程序,将总是被这个全局解释器锁限制。

当然,我们可以使用多进程的架构来提高程序的并发,也可以选择不同的 Python 实现来运行我们的程序。

Python 2 与 Python 3 不兼容:如果一个普通的软件或者库,不能够做到后向兼容,那么,它会被用户无情的抛弃了。

 

在 Python 中,一个最大就槽点就是 Python 2 与 Python 3 不兼容。

因为 Python 没有向后兼容,给所有的 Python 工程师带来了无数的烦恼。

最新文章

  1. 身份证验证JS代码
  2. 项目安排(离散化+DP)
  3. Ajax制作智能提示搜索
  4. JQuery Datatables服务器端处理示例
  5. 【BZOJ 1911】【APIO 2010】特别行动队
  6. SDP协议译稿(Part 1)
  7. 浅谈Java的包装类
  8. Segment Tree with Lazy 分类: ACM TYPE 2014-08-29 11:28 134人阅读 评论(0) 收藏
  9. MAC OSX使用篇
  10. 使用DBUtils小框架
  11. Android应用程序请求SurfaceFlinger服务创建Surface的过程分析
  12. 反对抄袭 正解spring的@Autowired 不要相信网上的错误版本
  13. 如何从 0 开始学 Ruby on Rails
  14. 利用POI获取Excel中图片和图片位置
  15. 【Luogu1373】小a和uim之大逃离(动态规划)
  16. Jquery精妙的自定义事件
  17. 改变Tomcat在地址栏上显示的小猫图标
  18. sql总结-----数据表操作
  19. 阿里云 配置ssl 在nginx上
  20. JMeter 插件 Json Path 解析 HTTP 响应 JSON 数据(转)

热门文章

  1. Oracle学习(十五)PLSQL安装
  2. 深入研究Broker是如何持久化的
  3. Linux的MySQL安装方法
  4. 数据结构 - 堆(Heap)
  5. Centos-系统内存信息-free
  6. Python编程学习第三课之编程从Hello World开始
  7. C++中cout和cerr
  8. HTML & CSS & JavaScript 从一个表格到一个灰阶颜色表 03
  9. vue实现语音播报功能
  10. SHOI 2013 【扇形面积并】