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"加載環境變量。

$ 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函數,模塊和類的方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章