2022年9月26日星期一

Python-100 天/Day01 初識Python

  申明本站飛宇網 https://feiyetopro.blogspot.com/自網路收集整理之書籍文章影音僅供預覽交流學習研究,其[書籍、文章、影音]情節內容, 評論屬其個人行為, 與本網站無關。版權歸原作者和出版社所有,請在下載 24 小時內刪除,不得用作商業用途;如果您喜歡其作品,請支持訂閱購買[正版]謝謝!



Python-100 天

Day01 初識Python

Python簡介

蟒蛇的歷史

  1. 1989年開始編譯:Guido von Rossum 寫Python語言的器。
  2. 1 月 2 日:第一個 Python 編譯器(同時也是用器解釋)誕生,它是 C 語言的實現(後面),可以調用語言的庫函數。在 C 語言的庫函數中提供了 991 年對中的版本,Python 已經“類”,“函數”,“異常處理”等構造塊的支持,還有對列表、搜索等核心數據類型,同時支持以模塊為基礎來構造應用程序。
  3. 1994年1月:Python 1.0正式發布。
  4. 2000 年 16 日:Python 2.0,增加了完整的垃圾回收,提供了對Unicode的支持。與此同時,Python 的整個開發過程更加透明,社區對開發進度的影響越來越大,生態圈開始慢慢形成
  5. 2008 年 1 月 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表示大版本號,一般當整體重寫,或出現不向後相容的改變時,增加AB表示功能更新,出現新功能時增加BC表示小的改動(例如:修復了某個Bug),只要有修改就增加C。如果對Python的歷史感興趣,可以閱讀名為[Python簡史》](http://www.cnblogs.com/vamei/archive/2013/02/06/2892628.html)的網路文章。

Python的優缺點

Python的優點很多,簡單的可以總結為以下幾點

  1. 簡單明瞭,學習曲線低,比很多程式設計語言都容易上手。
  2. 開放原始程式碼,擁有強大的社區和生態圈,尤其是在資料分析和機器學習領域。
  3. 解釋型語言,天生具有平臺可攜性,代碼可以工作於不同的作業系統。
  4. 對兩種主流的程式設計範式(物件導向程式設計和函數式程式設計)都提供了支援。
  5. 代碼規範程度高,可讀性強,適合有代碼潔癖和強迫症的人群。

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

  1. 執行效率稍低對執行效率要求高的部分可以由其他語言(如:CC++)編
  2. 代碼無法加密,但是現在很多公司都不銷售賣軟體而是銷售服務,這個問題會被弱化
  3. 在開發時可以選擇的框架太多(如Web框架就有100多個),有選擇的地方就有錯誤

Python的應用領域

目前PythonWeb應用後端開發、雲基礎設施建設、DevOps、網路資料獲取(爬蟲)、自動化測試、資料分析、機器學習等領域都有著廣泛的應用

安裝Python解釋器

想要開始Python程式設計之旅,首先得在自己使用的電腦上安裝Python解譯器環境,下面將以安裝官方的Python解譯器為例,講解如何在不同的作業系統上安裝Python環境。官方的Python解譯器是用C語言實現的,也是使用最為廣泛的Python解譯器,通常稱之為CPython。除此之外,Python解譯器還有Java語言實現的JythonC#語言實現的IronPython以及PyPyBrythonPyston等版本,有興趣的讀者可以自行瞭解

Windows環境

可以在[Python官方網站]下載到PythonWindows安裝程式(exe檔),需要注意的是如果在Windows 7環境下安裝Python 3.x,需要先安裝Service Pack 1補丁包(可以通過一些工具軟體自動安裝系統補丁的功能來安裝),安裝過程建議勾選“Add Python 3.x to PATH”(將Python 3.x添加到PATH環境變數)並選擇自訂安裝,在設置“Optional Features”介面最好將“pip”“tcl/tk”“Python test suite”等項全部勾選上。強烈建議選擇自訂的安裝路徑並保證路徑中沒有中文。安裝完成會看到“Setup was successful”的提示。如果稍後運行Python程式時,出現因為缺失一些動態連結程式庫檔而導致Python解譯器無法工作的問題,可以按照下面的方法加以解決

如果系統顯示api-ms-win-crt\*.dll檔缺失,可以參照[《api-ms-win-crt*.dll缺失原因分析和解決方法》](<https://zhuanlan.zhihu.com/p/32087135>)一文講解的方法進行處理或者直接在[微軟官網](https://www.microsoft.com/zh-cn/download/details.aspx?id=48145)下載Visual C++ Redistributable for Visual Studio 2015檔進行修復;如果是因為更新WindowsDirectX之後導致某些動態連結程式庫檔缺失問題,可以下載一個[DirectX 修復工具](<https://dl.pconline.com.cn/download/360074-1.html>)進行修復

Linux環境

Linux環境自帶了Python 2.x的版本,但是如果要更新到3.x的版本,可以在Python的官方網站下載Python的源代碼並通過源代碼構建安裝的方式進行安裝,具體的步驟如下所示(以CentOS為例)

  1. 安裝依賴庫(因為沒有這些依賴庫可能在源代碼構件安裝時因為缺失底層依賴庫而失敗)

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
  1. 下載Python源代碼並解壓縮到指定目錄。
wget https://www.python.org/ftp/python/3.7.6/Python-3.7.6.tar.xz
xz -d Python-3.7.6.tar.xz
tar -xvf Python-3.7.6.tar
  1. 切換到 Python 源代碼目錄並執行下面的命令進行配置和安裝。
cd Python-3.7.6
./configure --prefix=/usr/local/python37 --enable-optimizations
make && make install
  1. 修改用戶主目錄下名為.bash_profile的文件,配置PATH環境變量並成功。
cd ~
vim .bash_profile
# ... 此处省略上面的代码 ...

export PATH=$PATH:/usr/local/python37/bin

# ... 此处省略下面的代码 ...
  1. 激活環境變量。
source .bash_profile

macOS 環境

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

運行Python程序

Python確認的版本

可以 Windows 的語音提示符中鍵入下面的命令。

python --version

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

python3 --version

也可以先輸入pythonpython3進入自然代碼檢查環境,再執行以下 Python 的版本。

import sys

print(sys.version_info)
print(sys.version)

編寫Python源代碼

可以用文本編輯工具(推薦使用該工具Visual Studio Code等高級文本編輯工具py)編寫Python後文件源代碼並用作為綴名保存的代碼,內容顯示。

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("你好, 世界!")

Python開發工具

IDLE - 自帶的集成開發工具

IDLE是安裝Python環境時自帶的集成開發工具,如下圖所示。但是由於IDLE的用戶體驗並不是那麼好所以很少在實際開發中被採用

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

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

pip install ipython

或者

pip3 install ipython

安裝成功後,可以通過下面的ipython命令啟動IPython,如下圖所示。

Sublime Text - 高級文本編輯器

  • 首先可以通過官方網站下載安裝程序安裝 Sublime Text 3 或 Sublime Text 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. 在瀏覽器中輸入 https://sublime.wbond.net/Package%20Control.sublime-package下載包管理工具的安裝包,並安裝Sublime目錄下一個名為“Installed Packages”的目錄,把剛才下載的文件把這個文件加下,然後重新啟動 Sublime Text 就搞定了。
  • 安裝插件:

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

說明:選擇Visual Studio Code可能是更好的選擇,它不用花錢並提供了更為完整和強大的功能,有興趣的讀者可以自行研究

PyCharm - Python開發神器

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

練習

  1. 在將Python代互動式環境中輸入下面的代碼並查看結果,請嘗試將看到的內容翻譯成中文

    import this
    **說明**輸入上面的代碼:Python的互動式環境中可以看Tim Peter選寫的“Python之禪”裡面講述的道理不僅僅適用於Python,也適用於其他程式設計語言。
  2. 學習使用turtle在屏幕上繪製圖形。

    **說明**turtlePython內置的一個非常有趣的模組,特別適合對電腦程式設計進行初體驗的小夥伴,它最早是Logo語言的一部分,Logo語言是Wally FeurzigSeymour Papert1966發明的程式設計語言

    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()

    > **提示**:本章提供的代碼中還有畫國旗和畫小豬佩奇的代碼,有興趣的讀者請自行研究


0 留言:

發佈留言