【Python 100天重新手到大師】初識Python

初識Python

Python簡介

Python的歷史

  1. 1989年聖誕節:Guido von Rossum開始寫Python語言的編譯器。
  2. 1991年2月:第一個Python編譯器(同時也是解釋器)誕生,它是用C語言實現的(後面又出現了Java和C#實現的版本Jython和IronPython,以及PyPy、Brython、Pyston等其餘實現),能夠調用C語言的庫函數。在最先的版本中,Python已經提供了對「類」,「函數」,「異常處理」等構造塊的支持,同時提供了「列表」和「字典」等核心數據類型,同時支持以模塊爲基礎來構造應用程序。
  3. 1994年1月:Python 1.0正式發佈。
  4. 2000年10月16日:Python 2.0發佈,增長了實現完整的垃圾回收,提供了對Unicode的支持。與此同時,Python的整個開發過程更加透明,社區對開發進度的影響逐漸擴大,生態圈開始慢慢造成。
  5. 2008年12月3日:Python 3.0發佈,它並不徹底兼容以前的Python代碼,不過由於目前還有很多公司在項目和運維中使用Python 2.x版本,因此Python 3.x的不少新特性後來也被移植到Python 2.6/2.7版本中。

目前咱們使用的Python 3.7.x的版本是在2018年發佈的,Python的版本號分爲三段,形如A.B.C。其中A表示大版本號,通常當總體重寫,或出現不向後兼容的改變時,增長A;B表示功能更新,出現新功能時增長B;C表示小的改動(如修復了某個Bug),只要有修改就增長C。若是對Python的歷史感興趣,能夠查看一篇名爲《Python簡史》的博文。html

Python的優缺點

Python的優勢不少,簡單的能夠總結爲如下幾點。前端

  1. 簡單和明確,作一件事只有一種方法。
  2. 學習曲線低,跟其餘不少語言相比,Python更容易上手。
  3. 開放源代碼,擁有強大的社區和生態圈。
  4. 解釋型語言,天生具備平臺可移植性。
  5. 支持兩種主流的編程範式(面向對象編程和函數式編程)都提供了支持。
  6. 可擴展性和可嵌入性,能夠調用C/C++代碼,也能夠在C/C++中調用Python。
  7. 代碼規範程度高,可讀性強,適合有代碼潔癖和強迫症的人羣。

Python的缺點主要集中在如下幾點。python

  1. 執行效率稍低,所以計算密集型任務能夠由C/C++編寫。
  2. 代碼沒法加密,可是如今不少公司都不銷售賣軟件而是銷售服務,這個問題會被淡化。
  3. 在開發時能夠選擇的框架太多(如Web框架就有100多個),有選擇的地方就有錯誤。

Python的應用領域

目前Python在Web應用開發、雲基礎設施、DevOps、網絡爬蟲開發、數據分析挖掘、機器學習等領域都有着普遍的應用,所以也產生了Web後端開發、數據接口開發、自動化運維、自動化測試、科學計算和可視化、數據分析、量化交易、機器人開發、圖像識別和處理等一系列的職位。sql

搭建編程環境

Windows環境

能夠在Python官方網站下載到Python的Windows安裝程序(exe文件),須要注意的是若是在Windows 7環境下安裝Python 3.x,須要先安裝Service Pack 1補丁包(能夠經過一些工具軟件自動安裝系統補丁的功能來安裝),安裝過程建議勾選「Add Python 3.6 to PATH」(將Python 3.6添加到PATH環境變量)並選擇自定義安裝,在設置「Optional Features」界面最好將「pip」、「tcl/tk」、「Python test suite」等項所有勾選上。強烈建議使用自定義的安裝路徑並保證路徑中沒有中文。安裝完成會看到「Setup was successful」的提示。若是稍後運行Python程序時,出現由於缺失一些動態連接庫文件而致使Python解釋器沒法工做的問題,能夠按照後面說的方法加以解決。若是系統顯示api-ms-win-crt*.dll文件缺失,能夠參照《api-ms-win-crt*.dll缺失緣由分析和解決方法》一文講解的方法進行處理或者直接在微軟官網下載Visual C++ Redistributable for Visual Studio 2015文件進行修復;若是是由於更新Windows的DirectX以後致使某些動態連接庫文件缺失問題,能夠下載一個DirectX修復工具進行修復。編程

Linux環境

Linux環境自帶了Python 2.x版本,可是若是要更新到3.x的版本,能夠在Python的官方網站下載Python的源代碼並經過源代碼構建安裝的方式進行安裝,具體的步驟以下所示。vim

安裝依賴庫(由於沒有這些依賴庫可能在源代碼構件安裝時由於缺失底層依賴庫而失敗)。後端

yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
複製代碼

下載Python源代碼並解壓縮到指定目錄。api

wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
xz -d Python-3.7.3.tar.xz
tar -xvf Python-3.7.3.tar
複製代碼

切換至Python源代碼目錄並執行下面的命令進行配置和安裝。瀏覽器

cd Python-3.7.3
./configure --prefix=/usr/local/python37 --enable-optimizations
make && make install
複製代碼

修改用戶主目錄下名爲.bash_profile的文件,配置PATH環境變量並使其生效。bash

cd ~
vim .bash_profile
複製代碼
# ... 此處省略上面的代碼 ...

export PATH=$PATH:/usr/local/python37/bin
 # ... 此處省略下面的代碼 ...
複製代碼
source .bash_profile
複製代碼

macOS環境

macOS也自帶了Python 2.x版本,能夠經過Python的官方網站提供的安裝文件(pkg文件)安裝Python 3.x的版本。默認安裝完成後,能夠經過在終端執行python命令來啓動2.x版本的Python解釋器,能夠經過執行python3命令來啓動3.x版本的Python解釋器。

從終端運行Python程序

確認Python的版本

能夠Windows的命令行提示符中鍵入下面的命令。

python --version
複製代碼

或者是在Linux或macOS系統的終端中鍵入下面的命令。

python3 --version
複製代碼

固然也能夠先輸入python或python3進入交互式環境,再執行如下的代碼檢查Python的版本。

import sys

print(sys.version_info)
print(sys.version)
複製代碼

編寫Python源代碼

能夠用文本編輯工具(推薦使用Sublime、TextMate、Visual Studio Code等高級文本編輯工具)編寫Python源代碼並用py做爲後綴名保存該文件,代碼內容以下所示。

print('hello, world!')
複製代碼

運行程序

切換到源代碼所在的目錄並執行下面的命令,看看屏幕上是否輸出了"hello, world!"。

python hello.py
複製代碼

python3 hello.py
複製代碼

代碼中的註釋

註釋是編程語言的一個重要組成部分,用於在源代碼中解釋代碼的做用從而加強程序的可讀性和可維護性,固然也能夠將源代碼中不須要參與運行的代碼段經過註釋來去掉,這一點在調試程序的時候常常用到。註釋在隨源代碼進入預處理器或編譯時會被移除,不會在目標代碼中保留也不會影響程序的執行結果。

  1. 單行註釋 - 以#和空格開頭的部分
  2. 多行註釋 - 三個引號開頭,三個引號結尾
""" 第一個Python程序 - hello, world! 向偉大的Dennis M. Ritchie先生致敬 Version: 0.1 Author: 駱昊 """

print('hello, world!')
# print("你好,世界!")
print('你好', '世界')
print('hello', 'world', sep=', ', end='!')
print('goodbye, world', end='!\n')
複製代碼

其餘工具介紹

IDLE - 自帶的集成開發工具

IDLE是安裝Python環境時自帶的集成開發工具,以下圖所示。可是因爲IDLE的用戶體驗並非那麼好因此不多在實際開發中被採用。

IPython - 更好的交互式編程工具

IPython是一種基於Python的交互式解釋器。相較於原生的Python交互式環境,IPython提供了更爲強大的編輯和交互功能。能夠經過Python的包管理工具pip安裝IPython和Jupyter,具體的操做以下所示。

pip install ipython
複製代碼

pip3 install ipython
複製代碼

安裝成功後,能夠經過下面的ipython命令啓動IPython,以下圖所示。

固然,咱們也能夠經過安裝Jupyter工具並運行名爲notebook的程序在瀏覽器窗口中進行交互式代碼編寫操做。

pip install jupyter
複製代碼

pip3 intall jupyter
複製代碼

而後執行下面的命令:

jupyter notebook
複製代碼

Sublime - 文本編輯神器

  • 首先能夠經過官方網站下載安裝程序安裝Sublime 3或Sublime 2。

  • 安裝包管理工具。

    1. 經過快捷鍵Ctrl+`或者在View菜單中選擇Show Console打開控制檯,輸入下面的代碼。
    • Sublime 3
    import  urllib.request,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
    複製代碼
    • Sublime 2
    import  urllib2,os;pf='Package Control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('Please restart Sublime Text to finish installation')
    複製代碼
    1. 手動安裝瀏覽器輸入 sublime.wbond.net/Package Con… 下載這個文件 下載好之後,打開sublime text,選擇菜單Preferences->Browse Packages... 打開安裝目錄 此時會進入到一個叫作Packages的目錄下,點擊進入上一層目錄Sublime Text3,在此目錄下有一個文件夾叫作Installed Packages,把剛纔下載的文件放到這裏就能夠了。而後重啓sublime text3,觀察Preferences菜單最下邊是否有Package Settings 和Package Control兩個選項,若是有,則表明安裝成功了。
  • 安裝插件。經過Preference菜單的Package Control或快捷鍵Ctrl+Shift+P打開命令面板,在面板中輸入Install Package就能夠找到安裝插件的工具,而後再查找須要的插件。咱們推薦你們安裝如下幾個插件:

    • SublimeCodeIntel - 代碼自動補全工具插件。
    • Emmet - 前端開發代碼模板插件。
    • Git - 版本控制工具插件。
    • Python PEP8 Autoformat - PEP8規範自動格式化插件。
    • ConvertToUTF8 - 將本地編碼轉換爲UTF-8。

說明:事實上Visual Studio Code多是更好的選擇,它不用花錢並提供了更爲完整和強大的功能。

PyCharm - Python開發神器

PyCharm的安裝、配置和使用在《玩轉PyCharm》進行了介紹,有興趣的讀者能夠選擇閱讀。

練習

  1. 在Python交互環境中查看下面的代碼結果,並試着將這些內容翻譯成中文。

    import this
    複製代碼

    說明:當前鍵入上面的命令後會在交互式環境中看到以下所示的輸出,這段內容被稱爲「Python之禪」,裏面講述的道理不只僅適用於Python,也適用於其餘編程語言。

    Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those!

  2. 學習使用turtle在屏幕上繪製圖形。

    說明:turtle是Python內置的一個很是有趣的模塊,特別適用於讓小朋友體會什麼是編程,它最先是Logo語言的一部分,Logo語言是Wally Feurzig和Seymour Papert在1966發明的編程語言.

    import turtle
    
    turtle.pensize(4)
    turtle.pencolor('red')
    turtle.forward(100)
    turtle.right(90)
    turtle.forward(100)
    turtle.right(90)
    turtle.forward(100)
    turtle.right(90)
    turtle.forward(100)
    turtle.mainloop()
    複製代碼

好書推薦、視頻分享,公衆號讀書ReadBook與您一塊兒進步

Python大禮包請回復 python0426便可獲取

相關文章
相關標籤/搜索