python 3.7极速入门教程1安装:Linux(Ubuntu 18.04)及Windows上安装Anaconda

安装

Linux安装

Anaconda是最受欢迎的python数据科学和机器学习平台,用于大规模数据处理,预测分析和科学计算。Anaconda发行版附带了1,000多个数据包,conda命令行工具和Anaconda Navigator的桌面图形用户界面。一般而言,使用Anaconda比直接使用官方的python更好用。

本教程将指导您完成在Ubuntu 18.04上下载和安装Anaconda Python Distribution。通常也适合多数其他Linux。

下载Anaconda

https://www.anaconda.com/download/#linux

在撰写本文时,Anaconda的最新稳定版本是5.3版本。

图片.png

请选择64-Bit (x86) Installer 进行下载,尽量不要用python2.7,很多库已经不提供python2.7支持。

点击链接就会进行下载,同时会弹出信息收集框,直接关闭就好。

图片.png

安装Anaconda


$ 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了。

上面的.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"加载环境变量。

扫描二维码关注公众号,回复: 4450503 查看本文章
$ 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.
>>> 

至此,已经安装完毕。

更新Anaconda

一般是有新版本发布时才需要使用。

$ conda update conda
$ conda update anaconda

删除Anaconda

一般是有新版本发布时才需要使用。

$sudo rm -rf /usr/local/anaconda3
删除上面~/.bashrc和/etc/profile的修改
清空隐藏文件: rm -rf ~/.condarc ~/.conda ~/.continuum

参考资料

Windows安装

下载,比如:https://repo.anaconda.com/archive/Anaconda3-5.3.0-Windows-x86_64.exe

执行:

图片.png

图片.png

图片.png

图片.png

图片.png

上面红色的部分一定要选中,这样会帮你自动配置环境变量。

图片.png

图片.png

图片.png

图片.png

新开cmd,输入python

图片.png

命令行输入spyder 图片.png

wingide

图片.png

MAC安装

MAC的安装和Windows类似。

Hello

命令行方式

$ 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方式

$ 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/

IDE方式

图片.png

文件方式

图片.png

图片.png

图片.png

上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/2hello.py

__main__

当Python解释器读取源文件时,它将执行其中的所有代码。

当Python运行“源文件”作为主程序时,它将特殊变量( __name __)设置为具(“ __main __”)。

“if __name __ ==” __main __“允许您将Python文件作为可重用模块或独立程序运行。

与C一样,Python使用==进行比较,而使用=进行赋值。

图片.png

上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/2main.py

变量

Python变量是用于存储值的保留内存位置。 换句话说,python程序中的变量将数据提供给计算机进行处理。

Python中的每个值都有数据类型。 Python中不同的数据类型是数值,列表,元组,字符串,字典等。变量可以用任何名称声明,甚至可以用a,aa,abc等字母表来声明,命名规则和C语言的类似。字母或下划线开头,除第一位外可以包含数字。

图片.png

上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/3var.py

作用域

如果要在程序或模块的其余部分使用相同的变量,可声明为全局变量;如果只在特定函数或方法中使用该变量,则使用局部变量。

让我们通过以下程序理解本地变量和全局变量之间的差异。

全局变量f被赋予值101

函数中声明局部变量,赋值"I am learning Python."

图片.png

上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/3local.py

关键字global,可以在函数内引用全局变量。

图片.png

实际上局部找不到变量也会到全局去找。上面代码地址:https://github.com/china-testing/python-api-tesing/blob/master/python3.7quick/3global.py

使用命令del“variable name”可以删除变量。

在下面的例子中,我们删除了变量f,当我们继续打印它时,得到错误“变量名未定义”,这意味着你已经删除了变量。

图片.png

python和其他语言比较

  • Java

通常Python运行速度比Java程序慢点,但开发时间短很多。Python高级数据类型及其动态类型是比Java程序慢的主要原因,但是python很多库比如numpy之类的是c或c++实现,实际执行效率有时比java还快。但是Java在android应用广泛,python则没有。现在第一语言的排名主要是Python和java的斗争。Python借人工智能和其他非IT专业业人士的数据分析等,有逐渐拉开与java距离的趋势。

  • Perl

虽然这两种语言在很多方面都被认为是相似的,但Perl支持常见的面向应用程序的任务,如报告生成,文件扫描等。而Python支持常见的编程方法,如数据结构设计和OOP编程,代码可读性更好,第三方库更丰富,与其他语言交互更方便,Perl是直接被Python超越并逐渐没落的。

  • TCL

Tcl数据结构很弱,执行代码的速度更慢,主要在一些通信仪表中使用,是一个极其次要的语言。

  • PHP

Python可读性更好。

在Python中,类在标准库中广泛使用,而PHP具有完全基于类的SPL。

Python支持结构化异常处理,而大多数PHP函数不使用异常来报告错误

Python中的开发功能由库提供,而在PHP中则是内置的

Python支持主要的GUI框架

PHP曾经是web后台开发的霸主语言,在其他地方基本上无用武之地,近年来PHP在web后台开发方面不敌Python,Java等语言,日渐衰落。

  • Ruby

与Ruby相比,Python具有丰富的数据结构,内部函数,更好的命名空间处理以及模块和迭代器的使用

Python支持多重继承,而Ruby则不支持。Python更简洁。

RUBY在Web开发和函数式编程有一定市场,但是因为Python过于庞大的库,可读性等,后台主流脚本语言没有不因为Python扩张而衰落的。

  • C ++

Python代码比大多数其他编程语言(如C或C ++)短得多。

Python是一种动态类型语言,而C ++是一种静态类型语言。

Python的效率远不敌C或C ++,Python和C或C ++是黄金组合。

  • JavaScript

Python主要在服务器端。 JavaScript主要在客户端。

Python使用缩进和空格。 JavaScript使用大括号来指定代码块。

JavaScript是主流语言中唯一不受Python冲击的脚本语言。

常见面试问题与解答

  • 什么是Python?使用Python有什么好处?

Python是一种编程语言,包含对象,模块,线程,进程,异常和自动内存管理等。Python的好处在于它简单易用,可移植,可扩展,内置数据结构,并且开源。

  • 什么是PEP 8?

PEP 8是一个编码约定,一组推荐,关于如何编写Python代码更具可读性,俗称编程风格指南。

  • 什么是pickling和unpickling?

Pickle模块接受任何Python对象并将其转换为字符串表示形式,并使用dump函数将其转储到文件中,此过程称为pickling。从存储的字符串表示中还原原始Python对象的过程称为unpickling。

  • Python如何解释?

Python语言是一种解释语言。 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函数,模块和类的方法

猜你喜欢

转载自my.oschina.net/u/1433482/blog/2454960