一、Python简介
(1)发展史
Python是由创始人贵铎·范·罗萨姆(Guido van Rossum)在阿姆斯特丹于1989年圣诞节期间,为了打发圣诞节的无趣,开发的一个新的解释型脚本语言。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是BBC当时正在热播的喜剧连续剧“Monty Python”的爱好者。
Python的第一个公开发行版发行于1991年,它是纯粹的自由软件, 源代码和解释器(CPython)都遵循 GPL(GNU General Public License)协议。
(2)设计思想
Python被设计成是 “符合大脑思维习惯” 的,采用极简主义的设计理念,加以统一规范的交互模式。这使得Python易于学习、理解和记忆。Python 开发者的哲学是 “用一种方法,最好是只有一种方法来做一件事”。Python是完全面向对象的编程语言,函数、模块、数字、字符串等内置类型都是对象。它的类支持多态、操作符重载、和多重继承等高级OOP概念,并且Python特有的简洁的语法和类型使得OOP十分易于使用。当然OOP只是Python的一个选择而已,就像C++一样,Python既支持面向对象编程,也支持面向过程编程的模式。Python是一种解释型语言,目前Python的标准实现方式是将源代码的语句编译(转换)为字节码格式,然后通过解释器将字节码解释出来。Python没有将代码编译成底层的二进制代码,所以相较于C和C++等编译型语言,Python的执行速度会慢一些。但是Python的解释型语言特性提高了开发者开发速度,同时使它拥有解释型语言易于编写和调试等优点。Python本身被设计为可扩展的,并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C/C++语言来编写扩充模块。Python为我们提供了非常完善的基础代码库,覆盖了正则表达式、网络、多线程、GUI、数据库、等领域。除了内置的库外,Python还有大量的第三方库,供你直接使用。ython编译器本身也可以被集成到其它需要脚本语言的程序内,因此,很多人还把Python作为一种“胶水语言”(glue language)使用,使用Python将其他语言编写的程序进行集成和封装。2004 年,Python 已在Google 内部使用。Google Engine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。他们的目的是 “Python where we can, C++ where we must",在操控硬件的场合使用 C++,在快速开发时候使用 Python。
(3)特点
1.易于学习:Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。2.易于阅读:Python 代码定义的更清晰。3.易于维护:Python的 成功在于它的源代码是相当容易维护的。4.一个广泛的标准库:Python 的最大的优势之一是丰富的库,跨平台的,在 UNIX、Windows 和 Mac 兼容很好。5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片段。6.可移植:基于其开放源代码的特性,Python 已经被移植(也就是使其工作)到许多平台【跨平台】。7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用 C 或 C++ 完成那部分程序,然后从你的 Python 程序中调用。8.数据库:Python 提供所有主要的商业数据库的接口。9.GUI 编程:Python 支持 GUI 可以创建和移植到许多系统调用。10.可嵌入: 你可以将 Python 嵌入到 C/C++ 程序,让你的程序的用户获得"脚本化"的能力。
(4)优点
1、简单 -- Python 是一种代表简单主义思想的语言。阅读一个良好的 Python 程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python 的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
2、易学 -- 就如同你即将看到的一样,Python 极其容易上手。前面已经提到了,Python 有极其简单的语法。
3、免费、开源 -- Python 是 FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS 是基于一个团体分享知识的概念。这是为什么 Python 如此优秀的原因之一——它是由一群希望看到一个更加优秀的 Python 的人创造并经常改进着的。
4、高层语言 -- 当你用 Python 语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。
5、可移植性 -- 由于它的开源本质,Python 已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有 Python 程序无需修改就可以在下述任何平台上面运行。这些平台包括 Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、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 平台!
6、解释性 -- 这一点需要一些解释。一个用编译性语言比如 C 或 C++ 写的程序可以从源文件(即 C 或 C++ 语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而 Python 语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python 解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用 Python 更加简单。由于你只需要把你的 Python 程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的 Python 程序更加易于移植。
7、面向对象 -- Python 既支持面向过程的编程也支持面向对象的编程。在“面向过程”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如 C++ 和 Java 相比,Python 以一种非常强大又简单的方式实现面向对象编程。
8、可扩展性 -- 如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用 C 或 C++ 编写,然后在你的 Python 程序中使用它们。
9、丰富的库 -- Python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户界面)、Tk 和其他与系统有关的操作。记住,只要安装了 Python,所有这些功能都是可用的。这被称作 Python 的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如 wxPython、Twisted 和 Python 图像库等等。
10、规范的代码 -- Python 采用强制缩进的方式使得代码具有极佳的可读性。
11、Python是跨平台的。在各种不同的操作系统上(Linux、windows、MacOS、Unix等)都可以看到Python 的身影。因为Python 是用C 写的,又由于C 的可移植性,使得Python 可以运行在任何带有ANSI C 编译器的平台上。尽管有一些针对不同平台开发的特有模块,但是在任何一个平台上用Python 开发的通用软件都可以稍事修改或者原封不动的在其他平台上运行。这种可移植性既适用于不同的架构,也适用于不同的操作系统。
(5)缺点
1、运行速度,有速度要求的话,用 C++ 改写关键部分吧。
2、国内市场较小(国内以 Python 来做主要开发的,目前只有一些 web2.0 公司)。但时间推移,目前很多国内软件公司,尤其是游戏公司,也开始规模使用他。
3、中文资料匮乏(好的 Python 中文资料屈指可数,现在应该变多了)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。
4、构架选择太多(没有像 C# 这样的官方 .net 构架,也没有像 ruby 由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。
5、代码不能加密。如果要发布你的Python程序,实际上就是发布源代码。这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码发布出去。要从机器码完整反推出C代码是不可能的。
(6)开发方向与应用场景
1、Web网络开发:
Python提供丰富的模块支持sockets编程,多线程编程,能方便快速地开发网络服务程序。支持最新的XML技术,支持json语言,数据库编程,而且Python的ORM框架,使得操作数据库非常方便。
Python还有优秀的Django、Tornado、Flask等web开发框架,还用众多的开源插件的支持,足以适用各种不同的web开发需求。2、自动化运维:
Python对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件的理想工具。Python程序可以搜索文件和目录树,可以运行其他程序,可以使用进程和线程并行处理。3、网络爬虫:
在文本处理方面,python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。4、图形处理:
有PIL、Tkinter等图形库支持,能方便进行图形处理。 多媒体应用 ,Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二和三维图像处理。PyGame模块可用于编写游戏软件除此之外,Python还应用于游戏、人工智能、大数据分析、机器人等领域。
二、安装Anaconda
(1)简介
Anaconda指的是一个开源的Python发行版本,其包含了Conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda 的下载文件比较大,如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包Conda和Python)。
Anaconda利用工具/命令Conda来进行package和environment的管理,并且已经包含了Python和相关的配套工具。
这里先解释下Conda、Anaconda这些概念的差别。
Conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。包管理与pip的使用类似,环境管理则允许用户方便地安装不同版本的python并可以快速切换。
Conda的设计理念——Conda将几乎所有的工具、第三方包都当做package对待,甚至包括python和conda自身!因此,conda打破了包管理与环境管理的约束,能非常方便地安装各种版本python、各种package并方便地切换。
Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,所以也称为Python的一种发行版。其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。Anaconda是一个科学计算环境,当在电脑上安装好Anaconda3以后,就相当于安装好了Python,还有一些常用的库,如numpy,scrip,matplotlib等库。(如果你没有安装anaconda的话,直接安装了Python,装完Python想要使用这些库的话,还要在cmd中运行 pip install …;)。
Anaconda3对应的就是Python3.x的版本,Python3.x的默认编码方式是UTF-8,很少出现字符编码的各种问题。
如果计算机上已经安装了Python,安装不会对你有任何影响。实际上,脚本和程序使用的默认 Python是Anaconda附带的Python,所以安装完Anaconda已经自带安装好了Python,不需要你再安装Python了。
(2)特点
1、开源
2、安装过程简单
3、高性能使用Python和R语言
4、免费的社区支持
(3)下载安装程序
安装方法一:根据官网教程安装
https://www.anaconda.com/download/
安装方法二:关注微信公众号“软件管家”,在里面输入‘anaconda’,进行下载安装程序和教程,如下图所示:
(4)安装
首先解压文件:里面包含安装程序和步骤
进行安装,步骤如下:
以管理员身份运行Setup.exe文件,点击next
点击I Agree
点击next
根据自己需求修改安装地址,再点击next
根据自己需求修改安装地址,再点击next
点击Install
等待安装完,点击next
最后点击Finish就完成安装!
(5)安装结果
Anaconda Navigator是Anaconda发行版中的一个图形用户界面(GUI),用于管理和运行数据科学和机器学习项目。Anaconda是一个开源的Python发行版,包含了许多用于数据科学、机器学习和科学计算的工具和库。它提供了一个方便的方式来管理和使用Anaconda中的各种工具和环境,包括Jupyter笔记本、Spyder集成开发环境(IDE)、RStudio、Visual Studio Code等。用户可以通过Anaconda Navigator轻松地创建、管理和切换不同的Python环境,安装和卸载各种Python包和库,以及启动和管理各种数据科学项目。在Anaconda Navigator中,用户可以通过简单的图形界面来管理Anaconda中的各种工具和环境,而无需使用命令行。这使得数据科学从业者和研究人员可以更加方便地使用Anaconda提供的丰富工具和库,加快开发和实验的速度。总的来说,Anaconda Navigator是Anaconda发行版中一个非常实用的工具,为数据科学家和机器学习工程师提供了一个便捷的方式来管理和运行数据科学项目。Anaconda Powershell Prompt是Anaconda发行版中的另一种命令行工具,基于Windows Powershell。与Anaconda Prompt类似,Anaconda Powershell Prompt也提供了一个命令行界面,用于执行Python命令、管理Python环境和包等操作。Windows Powershell是Windows系统中的一种强大的脚本语言和命令行工具,Anaconda Powershell Prompt利用了Windows Powershell的功能来提供更多的命令行工具和功能。Anaconda Prompt是Anaconda发行版中的命令行工具,基于Windows命令提示符(cmd.exe)。通过Anaconda Prompt,用户可以方便地执行各种Python命令、创建和管理Python环境、安装和卸载Python包等操作。Anaconda Prompt通常用于在Windows系统上进行Python开发和数据科学工作。Jupyter Notebook是一个基于Web的交互式计算环境,可以让用户创建和共享文档,其中包含实时代码、可视化图像、解释性文本和数学方程等内容。Jupyter Notebook最初是作为IPython Notebook项目的一部分开发的,现在已经成为数据科学和机器学习领域中最流行的工具之一。在Jupyter Notebook中,用户可以编写和执行代码,查看代码执行结果,并在同一个界面中创建漂亮的文档。Jupyter Notebook支持多种编程语言,包括Python、R、Julia等,但最常用的是Python。用户可以在Jupyter Notebook中编写Python代码,运行代码并查看输出结果,同时还可以添加Markdown文本、数学公式、图像和其他多媒体内容,使得文档更加丰富和易于理解。Jupyter Notebook的一个重要特点是它的交互性和可视化性。用户可以在Notebook中逐步执行代码块,查看每个代码块的执行结果,以及可视化图表和图像。这种交互式的编程环境使得数据分析、探索性数据分析(EDA)、实验和可视化等工作变得更加方便和高效。另外,Jupyter Notebook还支持将Notebook导出为各种格式的文档,包括HTML、PDF、Markdown等,方便用户与他人共享和展示工作成果。总的来说,Jupyter Notebook是一个功能强大的交互式计算环境,广泛应用于数据科学、机器学习、教育和研究领域。它为用户提供了一个灵活、易用且可视化的工具,帮助他们更好地进行数据分析和编程工作。Spyder是一个开源的Python集成开发环境(IDE),旨在提供一个功能强大且易于使用的工具,用于数据科学、科学计算和大数据分析。Spyder的设计目标是为Python程序员和数据科学家提供一个集成的开发环境,方便他们进行数据分析、数据可视化和机器学习等工作。Spyder提供了许多有用的功能,包括代码编辑器、变量浏览器、文件浏览器、IPython控制台、集成的帮助文档和调试器等。用户可以在Spyder中编写Python代码,运行代码并查看输出结果,同时还可以查看变量的值、调试代码、进行代码补全和语法高亮等操作。Spyder还支持许多流行的Python库和工具,如NumPy、Pandas、Matplotlib、SciPy、Scikit-learn等,使得用户可以方便地进行数据处理、数据分析和机器学习等任务。此外,Spyder还支持Jupyter Notebook,用户可以在Spyder中打开和编辑Jupyter Notebook文件,并在同一个界面中进行代码编辑和交互式计算。
总的来说,Spyder是一个功能强大的Python集成开发环境,适用于数据科学家、科学计算专家和Python程序员等用户群体。它提供了丰富的功能和工具,帮助用户更好地进行数据分析、编程工作和科学计算。Spyder是一个流行的工具,被广泛用于数据科学和机器学习领域。
三、虚拟环境的操作
1、打开Anaconda Prompt创建虚拟环境
(1)方法一:默认情况下虚拟环境创建在Anaconda安装目录下的envs文件夹中
conda create --name env1 python==3.10 #env1是虚拟环境名称(自定义)
(2)方法二:如果想将虚拟环境创建在指定位置,使用–prefix参数即可
conda create --prefix D:\Envs\env1 python==3.10 #D:\Envs是自己自定创建的路径
2、查看所有的虚拟环境
conda env list
3、激活上面新建的虚拟环境
conda activate D:\Envs\env1
4、查看虚拟环境里面安装的包/库
conda list
5、复制现有的环境,创建新环境
conda create --prefix D:\Envs\env2 --clone D:\Envs\env1 #已有虚拟环境D:\Envs\env1,新建虚拟环境D:\Envs\env2
6、在虚拟环境里面安装包/库
(1)打法一:通过conda命令安装
conda install pandas
(2)打法二:通过pip命令安装
pip install regex
7、更新和删除包/库
(1)更新包/库
conda update package_name
(2)删除包/库
conda remove package_name
8、退出虚拟环境和删除虚拟环境
(1)退出虚拟环境
deactivate
(2)删除虚拟环境
conda env remove --name myenv
or
conda env remove --prefix D:\Envs\env2
9、搜索包和查看conda版本
(1)搜索包
conda search package_name
(2)查看conda版本
conda --version