Python的基础学习

什么是Python

Python是一种灵敏多用的核算机程序规划言语, 运用Python进行的编程语法特色更强,具有更高的可读性。Python关于初级程序员来说十分的友好,语法简略易懂,运用广泛,实用性强。Python是一种解说型言语,解说型言语指的是源代码先被翻译成中间代码,再由解说器对中间代码进行解说运转,这就意味着Python的跨渠道性很好,一切支撑Python言语的解说器都能够运转Python。Python是交互式言语,它能够直接在交互界面直接履行代码,大多数Linux体系都运用Python言语作为根本装备。Python是面向目标言语,这意味着Python支撑面向目标的风格或代码封装在目标的编程技能。

Python的基础学习

Python的基础学习

Python 开展历史

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和核算机科学研讨所规划出来的。

Python 本身也是由许多其他言语开展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本言语等等。

像 Perl 言语相同,Python 源代码相同遵从 GPL(GNU General Public License)协议。

现在 Python 是由一个中心开发团队在保护,Guido van Rossum 依然占据着至关重要的效果,辅导其发展。

Python 2.7 被确定为最后一个 Python 2.x 版别,它除了支撑 Python 2.x 语法外,还支撑部分 Python 3.1 语法。

编程言语

编程言语 首要用途
C/C++ C++是在C言语的基础上开展起来的,C++包含了C言语的一切内容,C言语是C++的一个部分,它们往往混合在一起运用,一切体系为C/C++。C/C++首要用于PC软件开发、Linux开发、游戏开发、单片机和嵌入式体系。
Python python首要用于自动化运维、网站开发、数据剖析、人工智能、云核算等技能范畴,近年来气势强劲,备受开发者喜爱
Java Java能够用于网站后台开发,Android开发、PC软件开发、近年来进入了大数据范畴(这首要归功于Hadoop结构的盛行)
PHP PHP首要用来开发网站后台程序
C# C#的完结机制和Java类似,现在首要用于Windows渠道的软件开发,以及少数的网站后台开发
JavaScript JavaScript最初只能用于网站前端开发,是前端开发的唯一言语。近年来由Node.js的盛行,JavaScript在网站后台开发中也占有一席之地,而且在迅速增长

编译型言语和解说型言语的履行流程

Python的基础学习

编译型言语

关于编译型言语,开发完结以后需求将一切的源代码都转化成可履行程序,比方Windows下的.exe文件便是一个可履行程序,它里边包含的便是机器码,只需具有这个可履行程序,就能够随时运转,不需求再从头编译,也便是一“次编译,无限次运转”。 在运转的时候,咱们只需求编译生成的可履行程序,此时就不再需求源代码和编译器,所以编译型言语能够脱脱离发环境运转。 编译型言语通常是不能跨渠道的,也便是不能在不同的操作体系之间随意切换。 编译型言语通不能夸渠道表现在两个方面:

  1. 可履行程序不能夸渠道 可履行程序不能跨渠道简略了解,由于不同的操作体系对可履行文件的内部结构有着截然不同的需求,彼此之间不能兼容。不能跨渠道是天经地义,能跨渠道反而才是奇葩。 比方,比方,你不能将 Windows 下的可履行程序拿到 Linux 下运用,也不能将 Linux 下的可履行程序拿到 macOS下运用(虽然它们都是类 Unix 体系)。

留意:相同操作体系的不同版别之间也不一定兼容,比方不能将 x64 程序(Windows 64 位程序)拿到 x86 渠道上(Windows 32 位渠道)运转。但反之一般可行,由于 64 位 Windows 对 32 位程序做了很好的兼容性处理。

  1. 源代码不能夸渠道 不同渠道支撑的函数、类型、变量等都可能不同,根据某个渠道编写的源代码一般不能拿到另一个渠道直接运转。
  • 实列1

在C言语中,要想让程序暂停,咱们能够运用“睡眠”函数。在 Windows 渠道下该函数是 Sleep() ,并以毫秒为时间单位,而在 Linux 渠道下则是 sleep(), 以秒为单位。能够看出,首要两个函数的首字母大小写不同,再者 Sleep() 的参数是毫秒,而 sleep() 的参数是秒,单位也不相同。

以上两个原因导致具有暂停功用的C言语程序不能跨渠道,除非在代码层面临渠道的兼容性做出处理,但这十分麻烦

  • 实列2

虽然不同渠道的C言语都支撑 long 类型,但不同渠道下 long 类型所占用的字节长度却不相同。例如 Windows 64 位渠道下的 long 占用 4 个字节,Linux 64 位渠道下的 long 却占用 8 个字节。

假如再 Linux 64 位渠道下编写代码时,将 8 字节的值赋值给 long 类型的变量,这是彻底没有问题的,但假如是在 Windows 渠道下就会导致数值溢出,让程序发生过错的运转成果。

解说型言语

关于解说型言语,每次履行程序都需求一边转化一边履行,用到哪些源代码就将哪些源代码转化成机器码,用不到的则不进行任何处理。

由于每次履行程序都需求从头转化源代码,所以解说型言语的履行功率天生就低于编译型言语,乃至是数量级的差距。因而核算机的一些底层功用,或者要害算法,一般都运用 C/C++ 完结,只需在运用层面(比方网站开发、批处理、小东西等)才会运用解说型言语。

在运转解说性言语的时候,咱们一直都需求源代码和解说器,所以说它无法脱脱离发环境。

例如,当咱们说“下载一个程序(软件)”时,不同类型的言语有不同的含义:

  • 关于编译型言语,咱们下载到的是可履行文件,源代码被作者保存,所以编译型言语的程序一般是闭源的;
  • 关于解说型言语,咱们下载到的是一切的源代码,由于作者不给源代码就没法运转,所以解说型言语的程序一般是开源的。

比较于编译型言语,解说型言语简直都能跨渠道,“一次编写,到处运转”是真实存在的,而且比比皆是。那么,为什么解说型言语就能跨渠道呢?

其实,这一切都要归功于解说器!

这儿所说的跨渠道,是指源代码跨渠道,而非解说器跨渠道。解说器用来将源代码转化成机器码,它本质上便是一个可履行程序,是绝对不能跨渠道的。

咱们以 Python 为例,Python 官方针对不同渠道(比方 Windows、macOS、Linux )开发了不同的解说器,这些解说器必需求恪守相同的语法,辨认相同的函数,完结相同的功用。只需这样,同一份代码才能在不同渠道上具有相同的履行成果。

你看,解说型言语之所以能够跨渠道,是由于有了解说器这个中间层。在不同的渠道下,解说器会将相同的源代码转化成不同的机器码,解说器协助咱们屏蔽了不同渠道之间的差异性。

关于Python

Python 属于典型的解说型言语,所以运转 Python程序需求解说器的支撑,只需你在不同的渠道装置了不同的解说器,你的代码就能够随时随地运转,不用忧虑任何兼容性问题,真实完结了“一次编写,到处运转”。

Python 简直支撑一切常见的渠道,比方 Linux、Windows、macOS、Android、FreeBSD、Solaris、PocketPC 等,咱们所写的 Python 代码无需修改就能直接在这些渠道上正确运转。也便是说,Python 的可移植性是很强的。

Python特色

  1. 易于学习

Python有相对较少的要害字,结构简略,和一个清晰界说的语法,学习起来愈加简略。

  1. 易于阅读

Python代码界说的更清晰。

  1. 易于保护

Python的成功在于它的源代码是适当简略保护的。

  1. 一个广泛的标准库

Python的最大的优势之一是丰厚的库,跨渠道的,在UNIX,Windows和Macintosh兼容很好。

  1. 互动方式

互动方式的支撑,您能够从终端输入履行代码并取得成果的言语,互动的测验和调试代码片段。

  1. 可移植

根据其开放源代码的特性,Python现已被移植(也便是使其作业)到许多渠道。

  1. 可扩展

假如你需求一段运转很快的要害代码,或者是想要编写一些不肯开放的算法,你能够运用C或C++完结那部分程序,然后从你的Python程序中调用。

  1. 数据库

Python供给一切首要的商业数据库的接口。

  1. GUI编程

Python支撑GUI能够创建和移植到许多体系调用。

  1. 可嵌入

你能够将Python嵌入到C/C++程序,让你的程序的用户取得”脚本化”的才能。

Python的基础学习

Python的缺陷

  1. Python 速度慢。 比较于 C C++ 等编译性言语,Python是解说性言语。因而,关于很多数据的处理来说,运用Python会糟蹋很大一部分的功用于言语解说而不是运算。
  2. Python的交互式shell不支撑shell方式的指令输入。该Interactive shell强迫用户以函数调用的方式输入指令,而不是想一个真实的shell相同直接输入没有括号的指令。举例:正常shell:exitPython Interactive Shell: exit()假如用户没有输入括号,解说器会提示过错。
  3. Python强制缩进
  4. Python是无需分号;的言语,因而其不能也不可能支撑一行代码运用多行内容。
  5. Python的begin end 标识符不便利核算,也没有C言语中的大标识符清楚,清晰,便利核算:cat program.c|grep -o ‘{‘|wc -l.
  6. Python不支撑指针与高档内存办理,而这关于编写一些杂乱/高功用程序时很有必要。

Python的运用范畴

[Python]作为一种功用强大的编程言语,因其简略易学而遭到许多开发者的喜爱。那么,Python 的运用范畴有哪些呢?

Python 有着非广泛的运用,简直一切大中型互联网公司都在运用 Python,例如国外的 Google、Youtube、Dropbox,国内的百度、新浪、搜狐、腾讯、阿里、网易、淘宝、知乎、豆瓣、汽车之家、美团等等,Python 协助它们完结了各种各样的任务。

web运用开发

在 Web 开发范畴,Python 绝对是一颗冉冉升起的新星。尽管[PHP]、JS 现在依然是 Web 开发的主流言语,但 Python 上升气势十分猛劲。尤其随着 Python 的 Web 开发结构逐步老练(比方 Django、Flask、Tornado、Web2py 等等),程序员能够更轻松地开发、办理杂乱的 Web 程序。

Python的基础学习

自动化运维

所谓自动化运维,实际上便是运用一些开源的自动化东西来办理服务器,比方业界盛行的 Ansible(根据Python开发),它能协助运维工程师处理重复性的作业。

Python 作为一种脚本言语,供给了许多便利与服务器交互的软件包,比方 Python 标准库中包含了多个可用来调用操作体系功用的库。

例如,经过 pywin32 这个软件包,咱们能拜访 Windows 的 COM 服务以及其他 Windows API;运用 IronPython,咱们能够直接调用 .Net Framework。

一般来说,Python 编写的体系办理脚本,无论是可读性,功用、仍是代码重度和扩展性等方面,都要优于 shell 言语编写的脚本。

人工智能范畴

人工智能是当前十分火的一个研讨方向,假如要评选当前最抢手、工资最高的 IT 职位,那么一定非人工智范畴的工程师莫属。

人工智能的中心是机器学习,机器学习的研讨可分为传统机器学习和深度学习,它们两者被广泛的运用于图画辨认、智能驾驭、智能推荐、自然言语处理等运用方向。

在众多编程言语中 Python 绝对是人工智能的首选言语,这是由于 Python 在机器学习和深度学习方面有着十分拔尖的优势。能够这么说,人工智能现已无法脱离 Python 的支撑,总结原因大致有以下几点:

  • 现在世界上优异的人工智能学习结构,比方 Google 的 TransorFlow(神经网络结构)、FaceBook 的 PyTorch(神经网络结构)以及开源社区的 Karas 神经网络库等,都是用 Python 完结的;
  • 微软的 CNTK(认知东西包)也彻底支撑 Python,而且该公司开发的 VS Code,也现已把 Python 作为榜首级言语进行支撑;
  • Python 擅长进行科学核算和数据剖析,支撑各种数学运算,能够制作出更高质量的 2D 和 3D 图画。

VS Code 是微软推出的一款代码修改东西(IDE),有关它的下载、装置和运用,后续章节会做具体介绍。

总之,AI 时代的来临,使得 Python 锋芒毕露,Python 作为 AI 时代头牌言语的位置,根本无人可撼动!

网络爬虫

Python 言语很早就用来编写网络爬虫。Google 等查找引擎公司很多地运用 Python 言语编写网络爬虫。

从技能层面上讲,Python 供给有许多服务于编写网络爬虫的东西,例如 urllib、Selenium 和 BeautifulSoup 等,还供给了一个网络爬虫结构 Scrapy。

科学核算

自 1997 年,NASA 就很多运用 Python 进行各种杂乱的科学运算。

而且,和其它解说型言语(如 Shell、JS、PHP)比较,Python 在数据剖析、可视化方面有适当完善和优异的库,例如 NumPy、SciPy、Matplotlib、pandas 等,这能够满足 Python 程序员编写科学核算程序的需求。

游戏开发

许多游戏运用C++编写图形显现等高功用模块,而运用 Python 或 Lua 编写游戏的逻辑。与 Python 比较,Lua 的功用更简略,体积更小;而 Python 则支撑更多的特性和数据类型。

比方说,较为知名的游戏 Sid Meier’s Civilization和 EVE(星战前夜)便是运用 Python 开发的。

Python的基础学习
除此之外,Python 能够直接调用 Open GL 完结 3D 制作,这是高功用游戏引擎的技能基础。事实上,有许多 Python 言语完结的游戏引擎,例如 Pygame、Pyglet 以及 Cocos 2d 等。

以上也仅是介绍了 Python 运用范畴的“冰山一角”,其实,咱们还能够用 PIL 和其他的一些东西进行图画处理;用 PyRo 东西包进行机器人控制编程等等。

pip的介绍

pip 是 Python 包办理东西,该东西供给了对Python 包的查找、下载、装置、卸载的功用。

显现版别和途径

pip --version

Python的基础学习

列出现已装置的包

pip list
pip list -o #检查可晋级的包

Python的基础学习

晋级pip

pip install -U pip
#假如这个晋级指令不能履行成功,能够运用以下指令
sudo easy_install --upgrade pip

Python的基础学习

装置包

pip install SomePackage  #最新版别
pip install SomePackage==1.0.1  #指定版别
pip install 'SomePackage>=1.0.1' #最小版别

晋级包

pip install --upgrade SomePackage

卸载包

pip unintsall SomePackage

查找包

pip search SomePackage

检查指定包的具体信息

pip show -f SomePackage

Python的基础学习

Python的基础学习

总结

什么是Python

Python是一种解说型言语、交互式言语、面向目标言语

Python的特色

易学、易阅读、易保护、广泛的标准库、互动方式、可移植、可扩展、数据库、GUI编程、可嵌入

编译型言语和解说型言语的差异

类型 原理 长处 缺陷
编译型言语 经过专门的编译器,将一切源代码一次性转化成特定渠道(Windows、Linux、macOS等)的机器码(以可履行文件的方式存在)。 编译一次后脱离了修改器也能运转,而且运转功率高 可移植性差,不够灵敏。
解说型言语 经过专门的解说器,根据需求能够将部分或者全部代码转化成特定渠道(Windows、Linux、macOS等)的机器码。 跨渠道性好,经过不同的解说器,将相同的源代码解说成不同渠道下的机器码。 一边履行一边转化,功率较低。

Python运用范畴

  • web运用开发
  • 自动化运维
  • 人工智能范畴
  • 网络爬虫
  • 科学核算
  • 游戏开发

Python (pip指令)

显现版别和途径

pip –version

列出现已装置的包

pip list

pip list -o #检查可晋级的包

晋级pip

pip install -U pip

#假如这个晋级指令不能履行成功,能够运用以下指令

sudo easy_install –upgrade pip

装置包

pip install –upgrade SomePackage

卸载包

pip unintsall SomePackage

查找包

pip search SomePackage

检查指定包的具体信息

pip show -f SomePackage

贴士

编程答疑解惑网站:stackoverflow.com/