Python 誕生於191年(比java還早,而且一直是最流行的十門語言之一。Python 之父 吉多*範*羅素姆java
Python 能夠應用到許多計算環境下,以下所示:
* 命令行窗口
* 圖形用戶界面,包括 Web
* 客戶端和服務器端 Web
* 大型網站後端
* 雲
* 移動設備
* 嵌入式設備python
Python 是一門很是通用的高級語言有如下優勢:
1. 代碼可讀性強
2. 語法簡潔
3. 想對於其餘語言,較容易學習
4. 開源,免費
5. 開發速度快,效率高linux
6. 使用於多種平臺,如Linux、Mac、Windowssql
Python 不適用如下場景數據庫
1. 須要用大量時間進行運算時,建議用C或者C++ 編寫你的程序macos
2. Python 並不屬於某一個公司,因此它的發展更新會 相對更緩慢一些django
3. 假如你的項目要求很是高,不管如何努力,Python都沒法達到項目的要求。vim
那麼能夠去選擇其餘語言,如C、C++、JAVA,不過新的語言GO也是不錯的選擇,windows
由於它寫起來像Python的風格,性能卻像C後端
官方網站地址:
http://www.python.org
進入官網後,將鼠標指針放到 downloads 處,隨後會自動顯示對應的平臺,如Mac、windows、Linux,點擊相應的版本便可進入對應的下載頁面。
Linux 版本
Linux 下載地址:
https://www.python.org/downloads/source/
打開網址後,選擇相應版本的源碼壓縮包便可。下載後進行解壓,編譯安裝便可。編譯時會須要一些開發環境,請自行 Yum 安裝便可。
同時,請注意:在編譯安裝Python時,務必加上--enable-shared編譯參數,在有些系統下,操做系統不會建立分享庫,centos系統即是如此的,會報找不到模塊的錯誤。
好比你的環境可能會用到pytho 的共享庫,好比編譯安裝 postgressql 時,使用了 --with-python 選項,那麼在編譯安裝 python 時就必須使用 --enable-shared
可是這樣會致使編譯後 python 會沒法使用,緣由是須要手動設置一下 環境變量
不然會報錯:
python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
首先找到共享庫文件:
[root@ansible lib]# find / -name libpython2.7.so\* /usr/local/lib/libpython2.7.so.1.0 /usr/local/lib/libpython2.7.so /root/Python-2.7.8/libpython2.7.so.1.0 /root/Python-2.7.8/libpython2.7.so # 上面的 /usr/local/lib 路徑就是變量須要的值
設置環境變量:
在用戶的家目錄下 .bash_profile 文件中添加下面的代碼, 或者是系統的 /etc/profile 文件中添加,懶得在每一個用戶家目錄下改
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
# 使其生效
. .bash_profile
[root@localhost Python-3.6.0]# yum –y install openssl-devel zlib readline-devel sqlite-devel # sqlit-devel 用於 django 的自帶數據庫
[root@localhost a]# ls
Python-3.6.0.tgz
[root@localhost a]# tar -xf Python-3.6.0.tgz -C /usr/local/src/
[root@localhost a]# cd /usr/local/src/
[root@localhost src]# ls
Python-3.6.0
[root@localhost src]# cd Python-3.6.0/
[root@localhost Python-3.6.0]# sed -i 's/^#readline/readline/' Modules/Setup.dist
[root@localhost Python-3.6.0]# sed -ri 's/^#(_ssl)/\1/p' Modules/Setup.dist
[root@localhost Python-3.6.0]# sed -ri 's/^#([\t]*-DUSE)/\1/p' Modules/Setup.dist
[root@localhost Python-3.6.0]# sed -ri 's/^#([\t]*-L\$\(SSL\))/\1/p' Modules/Setup.dist
[root@localhost Python-3.6.0]# ./configure --enable-shared && make -j 4 && make install # -j 後面跟線程數,假如你是4核cpu ,建議 -j 4
Mac 版本
Windows 版本
1. 在交互式解釋器中運行
[root@x201 ~]# python3
Python 3.6.0 (default, Jan 12 2017, 21:20:19)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print('Hello world!!!')
Hello world!!!
>>> exit()
[root@x201 ~]#
在交互式解釋器中運行就是所輸幾所見,執行結果也是及時輸出到屏幕上的。符號 >>> 是 cpython 解釋器的提示符。固然好有其餘的解釋器,如Ipython等。
退出輸入 exit() 回車便可
2. 使用 Python 文件,執行 Python 程序
首先用文本編輯器(如:vi、vim、office軟件)編輯一個文件,寫入 Python 的代碼。以後再在命令行中執行相應的命令運行它
[root@x201 ~]# cat hello.py print('Hello world!!!') [root@x201 ~]# python3 hello.py Hello world!!! [root@x201 ~]#
每種語言都有本身的風格。在 Python 中內置了一些自由體詩歌,它們簡單明瞭的說明了 Python 的哲學。
在交互式解釋器中輸入 import this ,以後回車就是顯示它們。
1 >>> import this 2 The Zen of Python, by Tim Peters 3 4 Beautiful is better than ugly. 5 優美勝於醜陋 6 Explicit is better than implicit. 7 明瞭勝於隱晦 8 Simple is better than complex. 9 簡潔勝於複雜 10 Complex is better than complicated. 11 複雜勝於混亂 12 Flat is better than nested. 13 扁平勝於嵌套 14 Sparse is better than dense. 15 寬鬆勝於緊湊 16 Readability counts. 17 可讀性很重要 18 Special cases aren't special enough to break the rules. 19 即使是特例,也不可違背這些規則 20 Although practicality beats purity. 21 雖然現實不那麼完美 22 Errors should never pass silently. 23 可是不該該放過任何異常 24 Unless explicitly silenced. 25 除非你肯定須要如此 26 In the face of ambiguity, refuse the temptation to guess. 27 若是存在多種可能,不要猜想 28 There should be one-- and preferably only one --obvious way to do it. 29 確定有一種——一般也是惟一一種——最佳的解決方案 30 Although that way may not be obvious at first unless you're Dutch. 31 雖然這並不容易,由於你不是 Python 之父 32 Now is better than never. 33 動手比不動手要好 34 Although never is often better than *right* now. 35 但不假思索就動手,還不如不作 36 If the implementation is hard to explain, it's a bad idea. 37 若是你的方案很難懂,那確定不是一個好方案 38 If the implementation is easy to explain, it may be a good idea. 39 若是你的方案很好懂,那確定是一個好方案 40 Namespaces are one honking great idea -- let's do more of those! 41 命名空間很是有用,咱們應當多加利用 42 >>>
這些哲學思想,但願能伴隨你在 Python 之路上。