Python基础详解,让你一文走进Python


v2-fccb1cbf4b1198b14a6b9e1dcd761e2a_xs.jpg

什么是Python?

Python是一种灵活多用的计算机程序设计语言, 使用Python进行的编程语法特色更强,具有更高的可读性。Python对于初级程序员来说非常的友好,语法简单易懂,应用广泛,实用性强。Python是一种解释型语言,解释型语言指的是源代码先被翻译成中间代码,再由解释器对中间代码进行解释运行,这就意味着Python的跨平台性很好,所有支持Python语言的解释器都可以运行Python。Python是交互式语言,它可以直接在交互界面直接执行代码,大多数Linux系统都使用Python语言作为基本配置。Python是面向对象语言,这意味着Python支持面向对象的风格或代码封装在对象的编程技术。

image.png

image.png

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开发、游戏开发、单片机和嵌入式系统。
Pythonpython主要用于自动化运维、网站开发、数据分析、人工智能、云计算等技术领域,近年来势头强劲,备受开发者青睐
JavaJava可以用于网站后台开发,Android开发、PC软件开发、近年来涉足了大数据领域(这主要归功于Hadoop框架的流行)
PHPPHP主要用来开发网站后台程序
C#C#的实现机制和Java类似,目前主要用于Windows平台的软件开发,以及少量的网站后台开发
JavaScriptJavaScript最初只能用于网站前端开发,是前端开发的唯一语言。近年来由Node.js的流行,JavaScript在网站后台开发中也占有一席之地,并且在迅速增长

编译型语言和解释型语言的执行流程

image.png

编译型语言

对于编译型语言,开发完成以后需要将所有的源代码都转换成可执行程序,比如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++程序,让你的程序的用户获得"脚本化"的能力。

image.png

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 程序。

image.png

自动化运维

所谓自动化运维,实际上就是利用一些开源的自动化工具来管理服务器,比如业界流行的 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 开发的。

image.png 除此之外,Python 可以直接调用 Open GL 实现 3D 绘制,这是高性能游戏引擎的技术基础。事实上,有很多 Python 语言实现的游戏引擎,例如 Pygame、Pyglet 以及 Cocos 2d 等。

以上也仅是介绍了 Python 应用领域的“冰山一角”,其实,我们还可以用 PIL 和其他的一些工具进行图像处理;用 PyRo 工具包进行机器人控制编程等等。

pip的介绍

pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。

显示版本和路径
pip --version

image.png

列出已经安装的包
pip list
pip list -o #查看可升级的包

image.png

升级pip
pip install -U pip

#如果这个升级命令不能执行成功,可以使用以下命令
sudo easy_install --upgrade pip

image.png

安装包
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

image.png

image.png

总结

什么是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/

---------------------------END---------------------------

题外话

当下这个大数据时代不掌握一门编程语言怎么跟的上脚本呢?当下最火的编程语言Python前景一片光明!如果你也想跟上时代提升自己那么请看一下.

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉CSDN大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值