zoukankan      html  css  js  c++  java
  • Python之路【第二篇】:Python简介、解释器与编码

    python的诞生

    python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  

    最新的TIOBE排行榜,Python赶超PHP占据第五!!!人生苦短,我用python,相信选择python这条路不会错,并且这条路也会走的很远!

    Python应用领域:

    • 数据分析
    • 组件集成
    • 网络服务
    • 图像处理
    • 数值计算
    • 科学计算
    • .............

    互联网公司目前使用Python做的事情主要有:

    • 自动化运维
    • 自动化测试
    • 大数据分析
    • 爬虫
    • Web开发
    • ...............

    使用Python的互联网公司:

    • Youtube
    • Dropbox
    • 中国知乎
    • 豆瓣
    • 谷歌
    • 雅虎
    • Facebook
    • NASA
    • 百度
    • 腾讯
    • 汽车之家
    • 美团
    • ..............

    为什么Python这么受青睐?

      Python的类库齐全并且使用简洁,如果要实现同样的功能,Python 10行代码可以解决,C可能就需要100行甚至更多.

      Linux原装Python,其他语言没有;

      但是就速度而言,python并没有优势,考虑速度的话,还是得考虑C语言,代码编译得到 机器码 ,机器码在处理器上直接执行,每一条指令控制CPU工作

      其他语言是代码首先编译成字节码,虚拟机执行字节码并转换成机器码后再在处理器上执行

    Python种类:

    • CPython:  Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
    • Jython:     Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
    • IronPython:   Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
    • PyPy:            Python实现的Python,将Python的字节码字节码再编译成机器码。
    • 此外还有RubyPython等其他python

    解释器:

    #!/usr/bin/env python 

    其实这句在linux里面有用,在windows里面没用,写上这句之后,用来指定python的解释器在什么地方,以后在linux终端执行python程序 时,就不用python name.py了,

    直接./name.py即可,在linux下,python位于/usr/bin这个目录下,而至于在代码里加上env,是为了兼容

    编码: 

    ASCII码(所有的英文,字符数字,都八位来表示)

    万国码unicode(最少用2个字节,对于中文的汉字,用三个字节来表示),但万国码最大的弊端是最少用两个字节,也就是说即使是英文字母,也要至少用两个字节,浪费了空间

    所以后来出现了对unicode的一个加工,utf-8编码

    utf-8,对于英文,数字,特殊字符等用1个字节表示,欧洲:2个字节,中文:3个字节,也就是说对unicode里面的字符进行了划分,就这样节省了空间

    GBK与utf-8类似,GBK用2个字节来表示中文

    GB2312与utf-8类似

    # -*- coding:utf-8 -*-

    这句话不加的话,就默认用ascii码了

    在python2.7代码中,在顶部加上这两行代码,一行是解释器的代码,一行是编码的代码

    在python3的代码中coding:utf-8这行代码就不需要加了,因为在2.7的时候还是默认ASCII码,到了3的时候就已经默认是utf-8编码了

    windows命令行下的编码是GBK的

    三样东西有助于缓解生命的疲劳:希望、睡眠和微笑。---康德
  • 相关阅读:
    报表自动化: 商业智能背后的秘密
    谈谈个人对 TDD (测试驱动开发) 的理解
    初识 Inception
    从软件生命周期看应用安全(网络安全)
    Spring JPA save 实现主键重复抛异常
    QMdiArea及QMdiSubWindow实现父子窗口及布局方法
    QTcpServer实现多客户端连接
    C++设计模式
    QTreeView/QTableView中利用QStandardItem实现复选框三种形态变化
    Qt富文本编辑器QTextDocument
  • 原文地址:https://www.cnblogs.com/ronghe/p/8278951.html
Copyright © 2011-2022 走看看