python介绍、安装及相关语法、python运维、编译与解释

1.python介绍 python

  Python英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/)是一种普遍使用的解释型高级编程通用型编程语言,由吉多、范罗苏姆创造,初版发布于1991年。能够视之为一种改良(加入一些其余编程语言的优势,如面向对象)的lisp。Python的设计哲学强调代码的可读性和简洁的语法(尤为是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比于C++或Java,Python让开发者可以用更少的代码表达想法。无论是小型仍是大型程序,该语言都试图让程序的结构清晰明了。与Scheme、Ruby、Perl、Tcl等动态类型编程语言同样,Python拥有动态类型系统垃圾回收功能,可以自动管理内存使用,而且支持多种编程范式,包括面向对象、命令式、函数式和过程式编程。其自己拥有一个巨大而普遍的标准库。linux

2.python特色android

  优势c++

    简单:Python是一种表明简单主义思想的语言。阅读一个良好的Python程序就感受像是在读英语同样。它使你可以专一于解决问题而不是去搞明白语言自己。程序员

    易学:Python极其容易上手,由于Python有极其简单的说明文档  [7]  。
    速度快:Python 的底层是用 C 语言写的,不少标准库和第三方库也都是用 C 写的,运行速度很是快。  [4] 
    免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者能够自由地发布这个软件的拷贝、阅读它的源代码、对它作改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。
    高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
    可移植性:因为它的开源本质,Python已经被移植在许多平台上(通过改动使它可以工做在不一样平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/二、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。
    解释性:一个用编译性语言好比C或C++写的程序能够从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程经过编译器和不一样的标记、选项完成。运行程序的时候,链接/转载器软件把你的程序从硬盘复制到内存中而且运行。而Python语言写的程序不须要编译成二进制代码。你能够直接从源代码运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,而后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。
    面向对象:Python既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。
    可扩展性:若是须要一段关键代码运行得更快或者但愿某些算法不公开,能够部分程序用C或C++编写,而后在Python程序中使用它们。
    可嵌入性:能够把Python嵌入C/C++程序,从而向程序用户提供脚本功能。
     丰富的库:Python标准库确实很庞大。它能够帮助处理各类工做,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其余与系统有关的操做。这被称做Python的“功能齐全”理念。除了标准库之外,还有许多其余高质量的库,如wxPython、Twisted和Python图像库等等。
    规范的代码:Python采用强制缩进的方式使得代码具备较好可读性。而Python语言写的程序不须要编译成二进制代码。
     缺点
    单行语句和命令行输出问题:不少时候不能将程序连写成一行,如import sys;for i in sys.path:print i。而perl和awk就无此限制,能够较为方便的在shell下完成简单程序,不须要如Python同样,必须将程序写入一个.py文件。
    独特的语法:这也许不该该被称为局限,可是它用缩进来区分语句关系的方式仍是给不少初学者带来了困惑。即使是颇有经验的Python程序员,也可能陷入陷阱当中。
     运行速度慢:这里是指与C和C++相比。
3.windows下安装python相关环境
    python官网:https://www.python.org/
    进入官网,下载对应版本的python。下载好后,双击运行。

两种选择,第一种系统选择;第二种自动,将勾选添加环境变量,就后续不用继续添加。next。正则表达式

而后选择install安装。安装完成后先不要关闭,点击disable……赞成是。算法

    安装集成开发环境PyCharmshell

PyCharm 是由 JetBrains 打造的一款 Python IDE,支持 macOS、 Windows、 Linux 系统。PyCharm 功能 : 调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……数据库

PyCharm下载地址https://www.jetbrains.com/pycharm/download/#section=windows编程

选择社区版,进行下载。下载好后,直接运行安装。

选择相应的安装目录,next

 

finish。双击运行。在Complete Installation处选择Do not import settings,ok。至此安装完成。

4.linux下开发环境搭建

    上传并解压对应版本安装包:tar xvf Python-3.7.3.tar.xz

    安装python3

    yum install gcc gcc-c++ make zlib* -y

    yum install libffi-devel -y

    cd 进入解压后的Python所在的目录中

    ./configure --prefix=/usr/bin/local/python3

    make && make install

    配置执行文件路径

    cd /usr/bin

    mv /usr/bin/python /usr/bin/pythonbak

     ln -fs /usr/local/python3/bin/python3 /usr/bin/python3

     修改yum配置

     vim  /usr/bin/yum,在第一行后面的python后加上2

     vim /usr/libexec/urlgrabber-ext-down,同上

5.虚拟环境搭建

     什么是python虚拟环境?

    通俗的来说,虚拟环境就是从电脑独立开辟出来的环境,至关于一个副本或备份,在这个环境你能够安装私有包,并且不会影响系统中安装的全局Python解释器。

   为何要用虚拟环境?

     在实际项目开发中,咱们一般会根据本身的需求去下载各类相应的框架库,如Scrapy、Beautiful Soup等,可是可能每一个项目使用的框架库并不同,或使用框架的版本不同,这样须要咱们根据需求不断的更新或卸载相应的库。直接怼咱们的Python环境操做会让咱们的开发环境和项目形成不少没必要要的麻烦,管理也至关混乱。如如下场景:

   场景1:项目A须要某个框架1.0版本,项目B须要这个库的2.0版本。若是没有安装虚拟环境,那么当你使用这两个项目时,你就须要来回的卸载安装了,这样很容易就给你的项目带来莫名的错误;

   场景2:公司以前的项目须要python2.7环境下运行,而你接手的项目须要在python3环境中运行,想一想就应该知道,若是不使用虚拟环境,这这两个项目可能没法同时使用,使用python3则公司以前的项目可能没法运行,反正则新项目运行有麻烦。而若是虚拟环境能够分别为这两个项目配置不一样的运行环境,这样两个项目就能够同时运行。

       windows下安装

   运行cmd,输入pip install virtualenv。若是版本环境出现问题,尝试输入python -m pip install --upgrade pip。出现successful,表示成功。

   新建虚拟环境

   virtualenv scrapytest (没有报错,显示done成功,而后在c盘对应的文件下查看是否建立成功)

   virtualenv -p C:……(此处为安装python的位置,包含其启动执行文件) scrapytest(此为刚建立的虚拟环境的名字)

   运行为:cd 进入到以前建立的虚拟环境的目录下activate.bat,结束为deactivate.bat

       linux安装

   yum install python-virtualenv

   virtualenv py2

   virtualenv -p /usr/local/bin/python3 py3

   cd 进入建立的py2

   source activate

   deactivate

 6.基本语法

     控制语句
   if语句,当条件成立时运行语句块。常常与else, elif(至关于else if) 配合使用。
     for语句,遍历列表、字符串、字典、集合等 迭代器,依次处理迭代器中的每一个元素。
   while语句,当条件为真时,循环运行语句块。
   try语句,与except,finally配合使用处理在程序运行中出现的异常状况。
   class语句,用于定义 类型
   def语句,用于定义函数和类型的方法。
   pass语句,表示此行为空,不运行任何操做。
   assert语句,用于程序调试阶段时测试运行条件是否知足。
   with语句,Python2.6之后定义的语法,在一个场景中运行语句块。好比,运行语句块前加密,而后在语句块运行退出后解密。
   yield语句,在迭代器函数内使用,用于返回一个元素。自从Python 2.5版本之后。这个语句变成一个运算符。
   raise语句,制造一个错误。
   import语句,导入一个模块或包。
   from import语句,从包导入模块或从模块导入某个对象。
   import as语句,将导入的对象赋值给一个变量。
   in语句,判断一个对象是否在一个字符串/列表/元组里。
    表达式
   主要的算术运算符与C/C++相似。+, -, *, /, //, **, ~, %分别表示加法或者取正、减法或者取负、乘法、除法、整除、乘方、取补、取余。>>, <<表示右移和左移。&, |, ^表示二进制的AND, OR, XOR运算。>, <, ==, !=, <=, >=用于比较两个表达式的值,分别表示大于、小于、等于、不等于、小于等于、大于等于。在这些运算符里面,~, |, ^, &, <<, >>必须应用于整数。
      模块 
   概念
   python中的模块是什么?简而言之,在python中,一个文件(以“.py”为后缀名的文件)就叫作一个模块,每个模块在python里都被看作是一个独立的文件。模块能够被项目中的其余模块、一些脚本甚至是交互式的解析器所使用,它能够被其余程序引用,从而使用该模块里的函数等功能,使用Python中的标准库也是采用这种方法。
    分类

在Python中模块分为如下几种:

   系统内置模块,例如:sys、time、json模块等等;

   自定义模块,自定义模块是本身写的模块,对某段逻辑或某些函数进行封装后供其余函数调用。注意:自定义模块的命名必定不能和系统内置的模块重名了,不然将不能再导入系统的内置模块了。例如:自定义了一个sys.py模块后,再想使用系统的sys模块是不能使用的;

   第三方的开源模块:这部分模块能够经过pip install进行安装,有开源的代码;

   执行过程

   Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),而后再由Python Virtual Machine(Python虚拟机)来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不一样的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并非一般意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者能够这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,一般是.pyc格式。除此以外,Python还能够以交互模式运行,好比主流操做系统Unix/Linux、Mac、Windows均可以直接在命令模式下直接运行Python交互环境。直接下达操做指令便可实现交互操做。

   编译与解释的关系

   首先,咱们编程都是用的高级语言(写汇编和机器语言的大牛们除外),计算机不能直接理解高级语言,只能理解和运行机器语言,因此必需要把高级语言翻译成机器语言,计算机才能运行高级语言所编写的程序。翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不一样。

   编译型语言   写的程序执行以前,须要一个专门的编译过程,经过编译系统(不只仅只是经过编译器,编译器只是编译系统的一部分)把高级语言翻译成机器语言,把源高级程序编译成为机器语言文件。之后就能够直接运行而不须要编译了,由于翻译只作了一次,运行时不须要翻译,因此编译型语言的程序执行效率高,但也不能一律而论,部分解释型语言的解释器经过在运行时动态优化代码,甚至可以使解释型语言的性能超过编译型语言。

   解释型语言  写的程序不须要编译。解释型语言在运行的时候才翻译,好比VB语言,在执行的时候,专门有一个解释器可以将VB语言翻译成机器语言,每一个语句都是执行的时候才翻译。这样解释型语言每执行一次就要翻译一次,效率比较低。

   编译型与解释型,二者各有利弊 。前者因为程序执行速度快,同等条件下对系统要求较低,所以像开发操做系统、大型应用程序、数据库系统等时都采用它,像C/C++、Pascal/Object Pascal(Delphi)等都是编译语言,而一些网页脚本、服务器脚本及辅助开发接口这样的对速度要求不高、对不一样系统平台间的兼容性有必定要求的程序则一般使用解释性语言,如JavaScript、VBScript、Perl、Python、Ruby、MATLAB 等等。

相关文章
相关标签/搜索