【Python学习】python学习手册--第一章 问答环节

人们为什么使用python

  • 软件质量
    Python的设计侧重于代码的可读性,一致性和软件质量,这使得python与其他脚本语言区分开来。因Python强大的可读性,在维护性和重用性方面有很大的优势。Python也支持面向对象(OOP),使得程序的重用性大大提升。
  • 提高开发者的效率
    相对于一些静态编译语言,java,C++等,python的代码量往往只有他们的1/5~1/3,这种代码量就意味值python就更具维护性,更能提高开发者的效率。并且Python语言可以立即运行,不需要传统语言的编译和链接等步骤。进一步提高了程序员的效率。
  • 程序的可移植性
    Python程序可以在多个主流计算机平台运行,不需要修改代码。比如一些文件操作与管理等操作系统接口,在设计时,都考虑了程序的可移植性。
  • 标准库的支持
    Python有强大的标准库支持,这些标准库支持一系列的应用级编程任务。此外更多的还有很多python第三方支持工具,让Python有更强大的活力。
  • 组件集成
    python脚本可以灵活的与其他定制程序轻松地与应用程序的其他部分进行通信。这种集成可以让python成为名副其实的“胶水语言”,Python可以调用C,C++等程序,也可以被C,C++调用。
  • 享受乐趣
    应用级的编程享受,让开发者避免繁琐的编程工作,直接调用标准库或三方库,就能轻易完成自己的目标。

更多Python设计哲学可以执行import this,查看Python哲学理念:
【Python学习】python学习手册--第一章 问答环节

Python是脚本语言吗?

Python是一种多用途的编程语言,时常在扮演脚本语言的角色。一般来说,Python可定义为面向对象的脚本语言。实际上,往往人们从以下几个“角色”来使用Python:

  • shell工具
    这只用到了Python语言价值的其中一小部分,这里的python常常用来调用其他程序,或者当作一个脚本处理任务,比如处理文本等等
  • 控制语言
    Python的简洁,可以让他在各个场合充当一个控制角色,比如控制各个相关设备及程序之间的沟通和测试,或者是充当相关不同程序之间的“连接层”。
  • 使用快捷
    常常充当“脚本程序”的Python,就意味着它有脚本一样的快捷性,但是它的功能与能力远远超出脚本的范畴。它的灵活性和便捷能更快提高开发速度,更增加了探索研究与递增的开发编程模式的效率(这也是Python在机器学习上热门的原因)

Python的缺点是什么?

与C语言这类静态编译语言来说,Python的执行速度还不够快,目前的Python是将源码编译(或者说转化)为字节码,之后再将字节码解释出来,因为字节码是一种平台无关的格式,字节码就具有可移植性。python没有像C语言那样将代码编译成为二进制代码(可用于芯片的指令),所以Python没有静态编译语言的执行速度快。
Python在发展过程中,一直对执行速度再做改进,比如在解释器内部,一些需要执行速度的操作,往往是由c语言在执行,他们都有C语言的执行速度(Numpy就是一个双语言混编策略的一个重要例子)。总得来说,Python在开发过程中带来的收益比执行效率上的损失更为重要,尤其是在如今计算机的处理速度下。

如今谁在使用Python

【Python学习】python学习手册--第一章 问答环节

使用python能做些什么

  • 系统编程: 对操作系统服务的内置接口,使其成为编写可移植的系统管理的维护工具和组件的理想语言。
  • 用户图形接口:python快速,简洁的开发模式,十分适合GUI程序,一些内置的TKinter的标准面向对象接口,可以让python生成本地观感的GUI,并且可以通过可移植性,在任何操作平台上运行。
  • Internet脚本:python提供许多的网络接口和标准Internet模块,使得python在网络的服务器端或是客户端都能发挥巨大的作用。还有许多强大的第三方工具,让python在处理网络时有更多选择。
  • 组件集成:Python作为控制语言时,曾涉及它的组件集成的角色。Python可以通过C/C++系统进行扩展,并能够嵌套C/C++系统的特性,使其成为一种灵活的黏合语言。
  • 数据库编程:Python提供了对所有主流数据库系统的接口。
  • 数值计算和科学计算编程

Python有哪些技术上的优点

  • 面向对象:支持面向对象编程
  • 免费开源
  • 可移植:几乎在所有主流的操作系统上都能运行python
  • 功能强大
    • 动态类型
    • 自动内存管理:无需“垃圾回收”,Python能够代替你执行底层的内存管理
    • 大型程序支持
    • 内置对象类型
    • 内置工具和齐全的第三方库工具
    • 简单易用易学