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