python学习随笔_简介

编译型:把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机可以直接以机器语言来运行此程序,速度很快;

解释型:只在执行程序时,才一条一条的解释成机器语言给计算机来执行,所以运行速度是不如编译后的程序运行的快。

2、编译型vs解释型

编译型
优点:编译器一般会有预编译的过程对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。可以脱离语言环境独立运行。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间移植就会有问题,需要根据运行的操作系统环境编译不同的可执行文件。

解释型
优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

3、动态语言和静态语言

通常我们所说的动态语言、静态语言是指动态类型语言和静态类型语言。

(1)动态类型语言:动态类型语言是指在运行期间才去做数据类型检查的语言,也就是说,在用动态类型的语言编程时,永远也不用给任何变量指定数据类型,该语言会在你第一次赋值给变量时,在内部将数据类型记录下来。Python和Ruby就是一种典型的动态类型语言,其他的各种脚本语言如VBScript也多少属于动态类型语言。

(2)静态类型语言:静态类型语言与动态类型语言刚好相反,它的数据类型是在编译其间检查的,也就是说在写程序时要声明所有变量的数据类型,C/C++是静态类型语言的典型代表,其他的静态类型语言还有C#、JAVA等。

4、强类型定义语言和弱类型定义语言

(1)强类型定义语言:强制数据类型定义的语言。也就是说,一旦一个变量被指定了某个数据类型,如果不经过强制转换,那么它就永远是这个数据类型了。

     举个例子:如果你定义了一个整型变量a,那么程序根本不可能将a当作字符串类型处理。

(2)弱类型定义语言:数据类型可以被忽略的语言。它与强类型定义语言相反, 一个变量可以赋不同数据类型的值。

强类型定义语言在速度上可能略逊色于弱类型定义语言,但是强类型定义语言带来的严谨性能够有效的避免许多错误。

三、Python的优缺点

1、优点

  1. Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
  2. 开发效率非常高,Python有非常强大的第三方库,基本上你想通过计算机实现任何功能,Python官方库里都有相应的模块进行支持,直接下载调用后,在基础库的基础上再进行开发,大大降低开发周期,避免重复造轮子。
  3. 高级语言:当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节
  4. 可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。
  5. 可扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python程序中使用它们。
  6. 可嵌入性:你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。

2、缺点

  1. 速度慢:Python 的运行速度相比C语言确实慢很多,跟JAVA相比也要慢一些,因此这也是很多所谓的大牛不屑于使用Python的主要原因,但其实这里所指的运行速度慢在大多数情况下用户是无法直接感知到的,必须借助测试工具才能体现出来。其实在大多数情况下Python已经完全可以满足你对程序速度的要求,除非你要写对速度要求极高的搜索引擎等,这种情况下,当然还是建议你用C去实现的。
  2. 代码不能加密:因为PYTHON是解释性语言,它的源码都是以名文形式存放的,不过我不认为这算是一个缺点,如果你的项目要求源代码必须是加密的,那你一开始就不应该用Python来去实现。
  3. 线程不能利用多CPU问题:这是Python被人诟病最多的一个缺点,GIL即全局解释器锁(Global Interpreter Lock),是计算机程序设计语言解释器用于同步线程的工具,使得任何时刻仅有一个线程在执行,Python的线程是操作系统的原生线程。在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的执行。一个python解释器进程内有一条主线程,以及多条用户程序的执行线程。即使在多核CPU平台上,由于GIL的存在,所以禁止多线程的并行执行。(这段作为小白的我不理解,后续学习理解后再补充。)

任何一门语言都不是完美的,都有擅长和不擅长做的事情,建议各位不要拿一个语言的劣势去跟另一个语言的优势来去比较,语言只是一个工具,是实现程序设计师思想的工具。

四、Python解释器

当我们编写Python代码时,我们得到的是一个包含Python代码的以.py为扩展名的文本文件。要运行代码,就需要Python解释器去执行.py文件。

1、CPython

当我们从Python官方网站下载并安装好Python 后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。

在命令行下运行python就是启动CPython解释器,是使用最广的Python解释器。

2、IPython

IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。

CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。

3、PyPy

PyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),所以可以显著提高Python代码的执行速度。

绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。

如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点

4、Jpython

Jython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。

5、IronPython

IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

个人表示,最后两个不知道是基于什么样的理由。。。

原文地址:https://www.cnblogs.com/104cz/p/9537489.html

时间: 2024-10-29 02:45:53

python学习随笔_简介的相关文章

Python学习笔记一简介及安装配置

Python学习笔记一 参考教程:廖雪峰官网https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000 一.Python简介 Python是著名的"龟叔"Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言.龟叔给Python的定位是"优雅"."明确"."简单". Python

python学习随笔(三)_字符串

字符串***    是由一个个字符组成的有序的序列,是字符的集合    使用单引号,双向引号,三引号引住的字符序列    #三引号中可以放sql语句    字符串是不可变对象 字符串元素访问    字符串支持使用索引访问    有序列的字符集合,字符序列    字符串可以是个容器,可以被一个个迭代出来,因为它是有顺序的 字符串join连接*    "string".join(iterable) -> str        将可迭代对象连接起来,使用string作为分隔符     

python学习随笔(七)_函数

函数    #作用:封装和复用    数学定义:y=f(x) ,y是x的函数,x是自变量.y=f(x0, x1, ..., xn)    Python函数        由若干语句组成的语句块.函数名称.参数列表构成,它是组织代码的最小单元        完成一定的功能 函数的作用        *结构化编程对代码的最基本的封装*,一般按照功能组织一段代码        封装的目的为了复用*,减少冗余代码        代码更加简洁美观.可读易懂    函数的分类        内建函数,如ma

Python 自动化开发_简介

一.python  介绍 Python  简介[前世今生]: python的创始人是吉多·范罗苏姆(Guido van Rossum).于1989年的圣诞节期间开发的一个新脚本程序.作为ABC语言的一种继承. 为什么要学习python呢: 我的理解不是为什么要去学python.而是学习python能给你带来什么乐趣.每个人的求知欲不一样.所以看个人理解.简单点说对于运维的同学来说,学了python后不止自己的收入可以变得客观,也会使自己的工作变得很轻松.当然某些人可能会说我会shell编程就够了

Python学习笔记_零零一:Python基本介绍

Python介绍 Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言.Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构.Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节.类似于PHP和Perl语言.Python 是交互式语言: 这意味着,您可以在一个Python提示符,直接互动执行写你的程序.Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装

Python学习摘要_ 列表

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 18.0px Helvetica; min-height: 22.0px } span.s1 { font: 18.0px "Heiti SC Light" } ctrl+p 上一行指令 ctrl+n 下一行指令 tab  补齐代码/联想 ' "good&q

python学习随笔(细节总结)

1.十六进制用0x前缀和0-9,a-f表示eg:0xff00 2.字符串是以''或""括起来的任意文本eg:'abc',"xyz" 3.在python中,变量名必须是大小写英文.数字和下划线(_)的组合,且不能用数字开头 4.定义字符串时,如果字符串中本身包含既包含  '  又包含  "  时, 字符串中包含  ' 时,可以用 " " 括起来  eg:I'm OK  ====>  "I'm OK" 字符串中包含

Python学习随笔_2_基础:列表、元组

一.列表 列表是Python 最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作. 1.定义列表 1 names = ["Cz","Cao","Zhang","Hui","Yang"] 2 print(names) 2.元素访问:通过下标 1 >>> names = ["Cz","Cao","Zhang",&qu

python学习随笔(二)

今天主要是用户输入输出,字符拼接. 在python中,多行注释是3个单引号或双引号 单行注释是#号开头,如下. ''' name = "xiaoming" print(name) ''' # name = "xiaoming". 在python中单双引号作用一样,除非是一个语句中怕单引号或双引号太多,字符不清,才回采用单双引号,如下. print("i'm xiaoming")    %s 是字符串 ,%d 是数字, %f 是浮点数,如下: