Python特点
2021-7-1
| 2023-8-6
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
Property
 
notion image
Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。
 

Python的优势

  • 开源、易于维护
  • 可移植
  • 易于使用、简单优雅
  • 广泛的标准库、功能强大
  • 可扩展、可嵌入
  • 对C/C++良好的交互支持
 
 

Python的缺点

  • 运行速度慢 Python是解释型语言,运行时翻译为机器码非常耗时,而C语言是运行前直接编译成CPU能执行的机器码。但是大量的应用程序不需要这么快的运行速度,因为用户根本感觉不出来
  • 代码不能加密 解释型语言发布程序就是发布源代码,而C语言只需要把编译后的机器码发布出去,从机器码反推出C代码是不可能的

解释器

编写Python代码时,得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件:
CPython
从Python官方网站下载并安装好Python 3.x后,就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,在命令行下运行python就是启动CPython解释器。
CPython是使用最广的Python解释器。
IPython
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
PyPy
PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。
绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。
Jython
Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。
IronPython
IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码
 

解释VS编译

不管是啥语言,都是要转换成计算机能识别出来的语言
不管是啥语言,都是要转换成计算机能识别出来的语言
编译型语言:
  1. 编译型语言最大的优势之一就是其执行速度。用C/C++编写的程序运行速度要比用Java编写的相同程序快30%-70%
  1. 编译型程序比解释型程序消耗的内存更少。
  1. 不利的一面——编译器比解释器要难写得多。
  1. 编译器在调试程序时提供不了多少帮助——有多少次在你的C语言代码中遇到一个“空指针异常”时,需要花费好几个小时来明确错误到底在代码中的什么位置。
  1. 可执行的编译型代码要比相同的解释型代码大许多。例如,C/C++的.exe文件要比同样功能的Java的.class文件大很多。
  1. 编译型程序是面向特定平台的因而是平台依赖的。
  1. 编译型程序不支持代码中实现安全性——例如,一个编译型的程序可以访问内存的任何区域,并且可以对你的PC做它想做的任何事情(大部分病毒是使用编译型语言编写的)
  1. 由于松散的安全性和平台依赖性,编译型语言不太适合开发因特网或者基于Web的应用。
 
解释型语言:
  1. 解释型语言提供了极佳的调试支持。一名Java程序员只需要几分钟就可以定位并修复一个“空指针异常”,因为Java运行环境不仅指明了异常的性质,而且给出了异常发生位置具体的行号和函数调用顺序(著名的堆栈跟踪信息)。这样的便利是编译型语言所无法提供的。
  1. 另一个优势是解释器比编译器容易实现
  1. 解释型语言最大的优势之一是其平台独立性
  1. 解释型语言也可以保证高度的安全性——这是互联网应用迫切需要的
  1. 中间语言代码的大小比编译型可执行代码小很多
  1. 平台独立性,以及严密的安全性是使解释型语言成为适合互联网和Web应用的理想语言的2个最重要的因素。
  1. 解释型语言存在一些严重的缺点。解释型应用占用更多的内存和CPU资源。这是由于,为了运行解释型语言编写的程序,相关的解释器必须首先运行。解释器是复杂的,智能的,大量消耗资源的程序并且它们会占用很多CPU周期和内存。
  1. 由于解释型应用的decode-fetch-execute(解码-抓取-执行)的周期,它们比编译型程序慢很多
  1. 解释器也会做很多代码优化,运行时安全性检查;这些额外的步骤占用了更多的资源并进一步降低了应用的运行速度。
notion image
 

命令行和交互模式

命令行模式
Windows开始菜单选择“命令提示符” (或者键盘按win+R,输入cmd),进入到命令行模式,它的提示符类似C:\>
命令行模式下:
  • 可以执行python进入Python交互式环境
  • 也可以执行python hello.py运行一个.py文件(执行一个.py文件只能在命令行模式执行)
notion image
在笔记(模块——argparse)里,详细记载了命令行参数用法
 
 
交互模式
在命令行模式下敲命令python,然后就进入到Python交互模式,它的提示符是>>>
在Python交互模式下输入exit()并回车,就退出了Python交互模式,并回到命令行模式
notion image
 
  • Python
  • C库变量与常量
    目录