Anaconda是最受欢迎的python数据科学和机器学习平台,用于大规模数据处理,预测分析和科学计算。Anaconda发行版附带了1,000多个数据包,conda命令行工具和Anaconda Navigator的桌面图形用户界面。通常而言,使用Anaconda比直接使用官方的python更好用。html
本教程将指导您完成在Ubuntu 18.04上下载和安装Anaconda Python Distribution。一般也适合多数其余Linux。java
https://www.anaconda.com/download/#linuxpython
在撰写本文时,Anaconda的最新稳定版本是5.3版本。linux
请选择64-Bit (x86) Installer 进行下载,尽可能不要用python2.7,不少库已经不提供python2.7支持。android
点击连接就会进行下载,同时会弹出信息收集框,直接关闭就好。c++
$ sudo sh Anaconda3-5.3.0-Linux-x86_64.sh [sudo] andrew 的密码: Welcome to Anaconda3 5.3.0 In order to continue the installation process, please review the license agreement. Please, press ENTER to continue >>> # 按下回车 ... # 屡次按空格读完license。 Do you accept the license terms? [yes|no] [no] >>> yes # 输入yes - Press ENTER to confirm the location - Press CTRL-C to abort the installation - Or specify a different location below ... [/home/andrew/anaconda3] >>> /usr/local/anaconda3 # 输入自定义目录 ... # 安装根据机器性能,一般须要持续几分钟。 # 讨论 钉钉群21745728 qq群144081101 567351477 # 本文地址:https://www.jianshu.com/p/9fe9ff999234 Do you wish to proceed with the installation of Microsoft VSCode? [yes|no] #选择no,通常来讲自带的spyder和专业IDE wingIDE更好用。 ... Do you wish the installer to initialize Anaconda3 in your /home/andrew/.bashrc ? [yes|no] [no] >>> # 选择yes Initializing Anaconda3 in /home/andrew/.bashrc A backup will be made to: /home/andrew/.bashrc-anaconda3.bak For this change to become active, you have to open a new terminal. Thank you for installing Anaconda3! =========================================================================== Anaconda is partnered with Microsoft! Microsoft VSCode is a streamlined code editor with support for development operations like debugging, task running and version control. To install Visual Studio Code, you will need: - Administrator Privileges - Internet connectivity Visual Studio Code License: https://code.visualstudio.com/license Do you wish to proceed with the installation of Microsoft VSCode? [yes|no] >>> no
添加“export PATH=/usr/local/anconda3/bin:$PATH“ 到/etc/profile,这样全部用户均可以使用Anaconda python3.7了。git
上面的.bashrc在刚才安装时添加了以下内容:程序员
# added by Anaconda3 5.3.0 installer # >>> conda init >>> # !! Contents within this block are managed by 'conda init' !! __conda_setup="$(CONDA_REPORT_ERRORS=false '/usr/local/anaconda3/bin/conda' shell.bash hook 2> /dev/null)" if [ $? -eq 0 ]; then \eval "$__conda_setup" else if [ -f "/usr/local/anaconda3/etc/profile.d/conda.sh" ]; then . "/usr/local/anaconda3/etc/profile.d/conda.sh" CONDA_CHANGEPS1=false conda activate base else \export PATH="/usr/local/anaconda3/bin:$PATH" fi fi unset __conda_setup~/.bashrc # <<< conda init <<<
经过从新登录或者执行'source ~/.bashrc"加载环境变量。github
$ conda info active environment : base active env location : /usr/local/anaconda3 shell level : 1 user config file : /home/andrew/.condarc populated config files : conda version : 4.5.11 conda-build version : 3.15.1 python version : 3.7.0.final.0 base environment : /usr/local/anaconda3 (read only) channel URLs : https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/free/linux-64 https://repo.anaconda.com/pkgs/free/noarch https://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch https://repo.anaconda.com/pkgs/pro/linux-64 https://repo.anaconda.com/pkgs/pro/noarch package cache : /usr/local/anaconda3/pkgs /home/andrew/.conda/pkgs envs directories : /home/andrew/.conda/envs /usr/local/anaconda3/envs platform : linux-64 user-agent : conda/4.5.11 requests/2.19.1 CPython/3.7.0 Linux/4.15.0-36-generic ubuntu/18.04 glibc/2.27 UID:GID : 1000:1000 netrc file : None offline mode : False $ python Python 3.7.0 (default, Jun 28 2018, 13:15:42) [GCC 7.2.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>>
至此,已经安装完毕。web
通常是有新版本发布时才须要使用。
$ conda update conda $ conda update anaconda
通常是有新版本发布时才须要使用。
$sudo rm -rf /usr/local/anaconda3 删除上面~/.bashrc和/etc/profile的修改 清空隐藏文件: rm -rf ~/.condarc ~/.conda ~/.continuum
下载,好比:https://repo.anaconda.com/archive/Anaconda3-5.3.0-Windows-x86_64.exe
执行:
上面红色的部分必定要选中,这样会帮你自动配置环境变量。
新开cmd,输入python
命令行输入spyder
wingide
MAC的安装和Windows相似。
$ python Python 3.7.0 (default, Jun 28 2018, 13:15:42) [GCC 7.2.0] :: Anaconda, Inc. on linux Type "help", "copyright", "credits" or "license" for more information. >>> print("Hello, https://china-testing.github.io/") Hello, https://china-testing.github.io/
$ ipython Python 3.7.0 (default, Jun 28 2018, 13:15:42) Type 'copyright', 'credits' or 'license' for more information IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help. In [1]: print("Hello, https://china-testing.github.io/") Hello, https://china-testing.github.io/
上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/2hello.py
当Python解释器读取源文件时,它将执行其中的全部代码。
当Python运行“源文件”做为主程序时,它将特殊变量( __name __)设置为具(“ __main __”)。
“if __name __ ==” __main __“容许您将Python文件做为可重用模块或独立程序运行。
与C同样,Python使用==进行比较,而使用=进行赋值。
上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/2main.py
Python变量是用于存储值的保留内存位置。 换句话说,python程序中的变量将数据提供给计算机进行处理。
Python中的每一个值都有数据类型。 Python中不一样的数据类型是数值,列表,元组,字符串,字典等。变量能够用任何名称声明,甚至能够用a,aa,abc等字母表来声明,命名规则和C语言的相似。字母或下划线开头,除第一位外能够包含数字。
上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/3var.py
若是要在程序或模块的其他部分使用相同的变量,可声明为全局变量;若是只在特定函数或方法中使用该变量,则使用局部变量。
让咱们经过如下程序理解本地变量和全局变量之间的差别。
全局变量f被赋予值101
函数中声明局部变量,赋值"I am learning Python."
上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/3local.py
关键字global,能够在函数内引用全局变量。
实际上局部找不到变量也会到全局去找。上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/3global.py
使用命令del“variable name”能够删除变量。
在下面的例子中,咱们删除了变量f,当咱们继续打印它时,获得错误“变量名未定义”,这意味着你已经删除了变量。
一般Python运行速度比Java程序慢点,但开发时间短不少。Python高级数据类型及其动态类型是比Java程序慢的主要缘由,可是python不少库好比numpy之类的是c或c++实现,实际执行效率有时比java还快。可是Java在android应用普遍,python则没有。如今第一语言的排名主要是Python和java的斗争。Python借人工智能和其余非IT专业业人士的数据分析等,有逐渐拉开与java距离的趋势。
虽然这两种语言在不少方面都被认为是类似的,但Perl支持常见的面向应用程序的任务,如报告生成,文件扫描等。而Python支持常见的编程方法,如数据结构设计和OOP编程,代码可读性更好,第三方库更丰富,与其余语言交互更方便,Perl是直接被Python超越并逐渐没落的。
Tcl数据结构很弱,执行代码的速度更慢,主要在一些通讯仪表中使用,是一个极其次要的语言。
Python可读性更好。
在Python中,类在标准库中普遍使用,而PHP具备彻底基于类的SPL。
Python支持结构化异常处理,而大多数PHP函数不使用异常来报告错误
Python中的开发功能由库提供,而在PHP中则是内置的
Python支持主要的GUI框架
PHP曾经是web后台开发的霸主语言,在其余地方基本上无用武之地,近年来PHP在web后台开发方面不敌Python,Java等语言,日渐衰落。
与Ruby相比,Python具备丰富的数据结构,内部函数,更好的命名空间处理以及模块和迭代器的使用
Python支持多重继承,而Ruby则不支持。Python更简洁。
RUBY在Web开发和函数式编程有必定市场,可是由于Python过于庞大的库,可读性等,后台主流脚本语言没有不由于Python扩张而衰落的。
Python代码比大多数其余编程语言(如C或C ++)短得多。
Python是一种动态类型语言,而C ++是一种静态类型语言。
Python的效率远不敌C或C ++,Python和C或C ++是黄金组合。
Python主要在服务器端。 JavaScript主要在客户端。
Python使用缩进和空格。 JavaScript使用大括号来指定代码块。
JavaScript是主流语言中惟一不受Python冲击的脚本语言。
Python是一种编程语言,包含对象,模块,线程,进程,异常和自动内存管理等。Python的好处在于它简单易用,可移植,可扩展,内置数据结构,而且开源。
PEP 8是一个编码约定,一组推荐,关于如何编写Python代码更具可读性,俗称编程风格指南。
Pickle模块接受任何Python对象并将其转换为字符串表示形式,并使用dump函数将其转储到文件中,此过程称为pickling。从存储的字符串表示中还原原始Python对象的过程称为unpickling。
Python语言是一种解释语言。 Python程序直接从源代码运行。它将程序员编写的源代码转换为中间语言,再转换为机器语言。
Python内存由Python私有堆空间管理。全部Python对象和数据结构都位于私有堆中。程序员无权访问此私有堆,解释器负责处理此私有堆。
Python对象的Python堆空间分配由Python内存管理器完成。核心API提供了一些程序员编写代码的工具。
Python还有一个内置的垃圾收集器,它能够回收全部未使用的内存并释放内存并使其可用于堆空间。
PyChecker是一个静态分析工具,能够检测Python源代码中的错误,并警告错误的风格和复杂性。 Pylint是另外一种验证模块是否符合编码标准的工具。
7)什么是Python装饰器?
Python装饰器是咱们在Python语法中进行的一项特定更改,能够轻松地更改函数。
8)list和tuple有什么区别?
列表和元组之间的区别在于列表是可变的而元组不是。元组能够被散列,例如做为词典的关键。
9)参数如何经过值或引用传递?
Python中的全部内容都是一个对象,全部变量都包含对象的引用。参考值根据功能;所以,您没法更改引用的值。可是,若是对象是可变的,则能够更改它们。
10)Dict和List理解是什么?
它们是语法结构,能够根据现有的iterable轻松建立Dictionary或List。
11)python提供的内置类型是什么?
有可变和不可变类型的Pythons以Mutable内置类型构建
名单 集 字典 不可变的内置类型
字符串 元组 数字 12)Python中的命名空间是什么?
在Python中,引入的每一个名称都有一个存在的地方,而且能够被挂钩。这称为命名空间。它就像一个框,其中变量名称映射到放置的对象。每当搜索到变量时,将搜索此框以获取相应的对象。
13)Python中的lambda是什么?
它是一个单独的表达式匿名函数,一般用做内联函数。
14)为何python中的lambda表单没有语句?
python中的lambda表单没有语句,由于它用于建立新的函数对象,而后在运行时返回它们。
15)什么是Python传递?
经过意味着,无操做的Python语句,或者换句话说,它是复合语句中的占位符,其中应该留有空白,没必要在那里写入任何内容。
16)在Python中什么是迭代器?
在Python中,迭代器用于迭代一组元素,如列表之类的容器。
17)什么是Python中的单元测试?
Python中的单元测试框架称为unittest。它支持共享设置,自动化测试,测试关闭代码,将测试聚合到集合等。
18)在Python中切片是什么?
从序列类型(如列表,元组,字符串等)中选择一系列项目的机制称为切片。
19)Python中的生成器是什么?
实现迭代器的方法称为生成器。这是一个正常的函数,除了它在函数中产生表达式。
20)Python中的docstring是什么?
Python文档字符串称为docstring,它是一种记录Python函数,模块和类的方法