初识python

2.Python简介

  python的开创者为吉多·范罗苏姆(Guido van
Rossum)。1989年的圣诞节之内,吉多·范罗苏姆为了在布鲁塞尔打发时间,决心开发一个新的本子解释程序,作为ABC语言的一种持续。
 

  Python可以运用于广大领域,如:数据解析、组件集成、网络服务、图像处理、数值总结和科学统计等许多天地。近期业内大概拥有大中型互联网集团都在采纳Python,如:Youtube、Dropbox、BT、Quora(中国今日头条)、豆瓣、新浪、谷歌、Yahoo!、Facebook、NASA、百度、腾讯、小车之家、美团等。

时下Python紧要应用领域:

  • 云计算: 云计算最火的言语, 典型应用OpenStack
  • WEB开发: 众多上佳的WEB框架,众多特大型网站均为Python开发,Youtube,
    Dropbox, 豆瓣。。。, 典型WEB框架有Django
  • 是的运算、人工智能: 典型库NumPy, SciPy, Matplotlib, Enthought
    librarys,pandas
  • 系统运维: 运维人士必备语言
  • 金融:量化交易,金融分析,在经济工程领域,Python不但在用,且用的最多,而且重点日益增高。原因:作为动态语言的Python,语言结构清晰不难,库丰富,成熟稳定,科学计算和总结分析都很牛逼,生产效能远远高于c,c++,java,尤其擅长策略回测
  • 图形GUI: PyQT, WxPython,TkInter

Python在有的店家的行使: 

 

  • 谷歌:谷歌(Google) App Engine 、code.google.com 、谷歌(Google) earth
    、谷歌(谷歌(Google))爬虫、谷歌广告等连串都在大批量使用Python开发
  • CIA: 美利坚合作国中情局网站就是用Python开发的
  • NASA: 美利坚合营国航天局(NASA)多量运用Python进行数量解析和运算
  • YouTube:世界上最大的视频网站YouTube就是用Python开发的
  • Dropbox:美利坚合营国最大的在线云存储网站,全体用Python完毕,天天网站拍卖10亿个公文的上传和下载
  • Instagram:美利坚联邦合众国最大的图纸分享社交网站,每一天超越3千万张照片被分享,全体用python开发
  • 非死不可:大批量的基础库均经过Python已毕的
  • Redhat:
    世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
  • 豆子: 公司大概拥有的工作均是透过Python开发的
  • 天涯论坛: 国内最大的问答社区,通过Python开发(国外Quora)
  • 春雨医务卫生人员:国内赫赫有名的在线医疗网站是用Python开发的
  • 除上面之外,还有博客园、金山、腾讯、盛大、博客园、百度、阿里、淘宝、土豆、微博、果壳等店铺都在利用Python完结各个各个的职务。 

Python与任何语言相相比优势有何样?

C 和 Python、Java、C#等

    C语言: 代码编译得到 机器码
,机器码在电脑上直接执行,每一条指令控制CPU工作

此外语言: 代码编译获得 字节码
,虚拟机执行字节码并转换成机器码再后在微机上实施

Python和C Python那门语言是由C开发而来

  对于使用:Python的类库齐全并且选择简单,如若要促成均等的法力,Python
10行代码可以解决,C可能就需求100行仍然越来越多.
  对于速度:Python的运作速度相较与C,绝逼是慢了

Python 和 Java、C#等

  对于使用:Linux原装Python,其余语言没有;以上几门语言都有非凡丰富的类库支持
  对于速度:Python在进程上可能稍显逊色

故此,Python和其余语言没有怎么本质分歧,其他分裂在于:擅长某领域、人才丰盛、先入为主。

 

Python的种类

  • Cpython
       
    Python的合法版本,使用C语言达成,使用最为广泛,CPython已毕会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上。
  • Jyhton
       
    Python的Java完毕,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。
  • IronPython
       
    Python的C#心想事成,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)
  • PyPy(特殊)
        Python落成的Python,将Python的字节码字节码再编译成机器码。
  • RubyPython、Brython …

4.在python中数据类型十分要害,错误的数据类型可能引致程序运行错误

    如下程序:

#coding=utf-8
age = 24
i = 1
while i <= 3:
    guss =  raw_input("you guss:") 
    if guss > age:
        print("so big")
    elif guss < age:
        print("so small")
    else:
        print("you are wright")
        break
    i = i+1
    if i == 4:
        ask = raw_input("are you ok?y/n")
        if ask == 'y':
            i = 1
        else:
            exit()
    continue
else:
     exit()

   
这是一个猜年龄的小程序,那里存在一个问题,大家输入的guss实际上是一个字符串类型,我们把它与整型举行比较,那从逻辑上是不当的,python解释器从语法上判断是没错的,可是这实在是一个逻辑错误。所以我们须求对guss类型举办改进。

guss = int( raw_input("you guss:") )#将guss改为整型

  附加:python安装

  1.安装包下载

  2.设置:默许安装路径:C:\python27

  3.安插环境变量:【右键计算机】``-``-``》【属性】``-``-``》【高级系统设置】``-``-``》【高级】``-``-``》【环境变量】``-``-``》【在第二个内容框中找到 变量名为Path 的一行,双击】 ``-``-``> 【Python安装目录追加到变值值中,用 ; 分割】

  如:原来的值;C:\python27,切记前边有分集团

1.Hello World程序

     
短时间以来,编程界都有一个圣神的典礼,现在自我为友好加冕,那就是在屏幕上体现信息“hello
world!”程序,学习python的第三次就是那样一行代码。

>>> print("hello world!")
hello world!

在编辑器中运行hello_world.py;

#!/bin/python

print("hello world!")

[root@localhost /]# python3 /dj/hello_world.py 
hello world!

 3.认识python中的变量与简便的数据类型

     变量的命名规则:1.变量名只好分包字母数字下划线,且不可以以数字伊始;

                               
2.变量名中不可能包罗空格,一般大家应用下划线来分隔其中的单词;

                               
3.记住不可将python中的函数名与根本字用作变量名(python保留用于特殊用途的单词);

                                4.变量名应听从简短不过拥有描述性;

                                5.慎用小写l与大写O不难被误以为是1和0。

     变量的利用方法:

message = "hello python world!"
_age = 18
print(message)
print(_age)

    注:每个变量都存储一个值(与变量相关联的音讯)。

   
字符串:字符串就是一层层字符。在python中,用引号括起来的都是字符串,其中的引号可以是单引号也足以是双引号。

print("this is a string")
print('this is also a string')

    字符串的拼接:

    我们可以动用加号来

print('hello\t'+'world')

    在python中,大家得以应用方法对数码进行操作。注释用井号标识。

print('\nhello world\r'.strip())#去除空白
print('hello world'.title())#首字母大写
print('hello world'.upper())#全部大写
print('hello world'.lower())#全部小写

 5.pyc是什么

  Python是一门解释型语言?

 

  我初学Python时,听到的有关Python的率先句话就是,Python是一门解释性语言,我就像是此直白相信下去,直到发现了*.pyc文件的存在。如果是解释型语言,那么生成的*.pyc文件是什么样啊?c应该是compiled的缩写才对啊!

  为了预防其余学习Python的人也被那句话误解,那么大家就在文中来正本清源下这一个问题,并且把一部分基础概念给理清。

  

   解释型语言和编译型语言 

  统计机是不可以分辨高级语言的,所以当大家运行一个高档语言程序的时候,就要求一个“翻译机”来致力把高档语言转变成总结机能读懂的机器语言的进程。这些进度分成两类,第一种是编译,第三种是演讲。

  编译型语言在程序执行往日,先会通过编译器对程序执行一个编译的经过,把程序转变成机器语言。运行时就不必要翻译,而直白执行就可以了。最典型的例子就是C语言。

  解释型语言就从未有过那一个编译的长河,而是在程序运行的时候,通过解释器对程序逐行作出解释,然后径直运行,最良好的例子是Ruby。

  通过上述的例子,我们得以来总括一下解释型语言和编译型语言的得失,因为编译型语言在程序运行以前就已经对先后做出了“翻译”,所以在运行时就少掉了“翻译”的进程,所以作用相比较高。不过大家也无法不分轩轾,一些解释型语言也得以因此解释器的优化来在对先后做出翻译时对总体程序做出优化,从而在功效上当先编译型语言。

  其余,随着Java等按照虚拟机的言语的勃兴,大家又不可以把语言纯粹地分为解释型和编译型那三种。

  用Java来比喻,Java首先是由此编译器编译成字节码文件,然后在运作时通过解释器给解释成机器文件。所以我们说Java是一种先编译后解释的语言。

 

   Python到底是怎么样 

  其实Python和Java/C#同样,也是一门基于虚拟机的言语,我们先来从表面上粗略地打听一下Python程序的运行进程吧。

  当大家在命令行中输入python
hello.py时,其实是激活了Python的“解释器”,告诉“解释器”:你要从头工作了。不过在“解释”之前,其实执行的首先项工作和Java一样,是编译。

  熟练Java的同班可以想转手大家在指令行中怎样履行一个Java的次序:

  javac hello.java

  java hello

 图片 1

 

  只是大家在用Eclipse之类的IDE时,将那两部给融合成了一部而已。其实Python也同等,当大家举行python
hello.py时,他也一如既往进行了如此一个历程,所以大家理应那样来讲述Python,Python是一门先编译后解释的言语。

   简述Python的运转进程

  在说那一个问题从前,大家先来说七个概念,PyCodeObject和pyc文件。

  我们在硬盘上来看的pyc自然不用多说,而事实上PyCodeObject则是Python编译器真正编译成的结果。大家先不难明了就足以了,继续向下看。

  当python程序运行时,编译的结果则是保存在位于内存中的PyCodeObject中,当Python程序运行为止时,Python解释器则将PyCodeObject写回到pyc文件中。

  当python程序第二次运行时,首先程序会在硬盘中搜寻pyc文件,即使找到,则一贯载入,否则就再次上边的进度。

  所以大家应该那样来恒定PyCodeObject和pyc文件,大家说pyc文件其实是PyCodeObject的一种持久化保存方法。

   pyc文件在py2和py3的区别

  python 字节码文件
  python3 会创建一个__pycache__目录,存放
  python2 在地面转移一个pyc文件

  手动执行不可能生成pyc文件,只有该py文件被此外py文件调用时,才会变动而且实施前会相比较py和pyc
文件的小运戳,如若不均等则另行编译。

  python的源码进行编译成pyc格局的字节码,然后那一个字节码在python虚拟机中举办一个循环,其本质就是迭代整个pyc文件的字节码,所以python的虚拟机实际上做的就是python解释器的政工。

  注:那里不可不要先做注脚,python因为其本质为动态语言,那代表她很难直接被编译成机器码。