現在學習這個確實時間很緊,但是遲早得學,以后PYTHON自動化運維,PYTHON自動測試都需要用的到,甚至可以往數據分析方向發展,剛好最近有數據觀組織的python100天計划,就參加了,做好筆記,一個是用於記錄學習中遇到的問題,二是對自己起監督作用,希望能夠好好堅持下來,加油,老楊!
1、環境搭建
自己操作系統是windows10,使用anaconda 4.2.9、python3.5,還有pycharm。
全英文,看不太懂,而且第一次使用也蒙頭蒙腦的整不太清楚,先暫時隨便總結一下
參考文章:
1.1 anaconda簡介
Anaconda是一個用於科學計算的Python發行版,支持 Linux, Mac, Windows系統,提供了包管理與環境管理的功能,可以很方便地解決多版本python並存、切換以及各種第三方包安裝問題。Anaconda利用工具/命令conda來進行package和environment的管理,並且已經包含了Python和相關的配套工具。
這里先解釋下conda、anaconda這些概念的差別。conda可以理解為一個工具,也是一個可執行命令,其核心功能是包管理與環境管理。包管理與pip的使用類似,環境管理則允許用戶方便地安裝不同版本的python並可以快速切換。Anaconda則是一個打包的集合,里面預裝好了conda、某個版本的python、眾多packages、科學計算工具等等,所以也稱為Python的一種發行版。其實還有Miniconda,顧名思義,它只包含最基本的內容——python與conda,以及相關的必須依賴項,對於空間要求嚴格的用戶,Miniconda是一種選擇。
進入下文之前,說明一下conda的設計理念——conda將幾乎所有的工具、第三方包都當做package對待,甚至包括python和conda自身!因此,conda打破了包管理與環境管理的約束,能非常方便地安裝各種版本python、各種package並方便地切換。
1.2 anaconda安裝
Anaconda的下載頁參見官網下載,Linux、Mac、Windows均支持。
安裝時,會發現有兩個不同版本的Anaconda,分別對應Python 2.7和Python 3.7,兩個版本其實除了這點區別外其他都一樣。后面我們會看到,安裝哪個版本並不本質,因為通過環境管理,我們可以很方便地切換運行時的Python版本。(建議下載3.7版本)
按照安裝程序提示一步步安裝就好了, 安裝完成之后會多幾個應用
-
Anaconda Navigtor :用於管理工具包和環境的圖形用戶界面,后續涉及的眾多管理命令也可以在 Navigator 中手工實現。
-
Jupyter notebook :基於web的交互式計算環境,可以編輯易於人們閱讀的文檔,用於展示數據分析的過程。
-
qtconsole :一個可執行 IPython 的仿終端圖形界面程序,相比 Python Shell 界面,qtconsole 可以直接顯示代碼生成的圖形,實現多行代碼輸入執行,以及內置許多有用的功能和函數。
-
spyder :一個使用Python語言、跨平台的、科學運算集成開發環境。
1.3 配置環境變量
如果是windows的話需要去 控制面板\系統和安全\系統\高級系統設置\環境變量\用戶變量\PATH 中添加 anaconda的安裝目錄的Scripts文件夾, 比如我的路徑是D:\Software\Anaconda\Scripts, 看個人安裝路徑不同需要自己調整.
之后就可以打開命令行(最好用管理員模式打開) 輸入 conda --version
如果輸出conda 4.4.11之類的就說明環境變量設置成功了.
為了避免可能發生的錯誤, 我們在命令行輸入conda upgrade --all 先把所有工具包進行升級
1.4 創建自己的虛擬環境
創建一個名稱為learn的虛擬環境並指定python版本為3(這里conda會自動找3中最新的版本下載)
conda create -n learn python=3
於是我們就有了一個learn的虛擬環境, 接下來我們切換到這個環境, 一樣還是用activae命令 后面加上要切換的環境名稱
1.5 切換環境
activate learn
1.6 一些簡單的命令
activate // 切換到base環境
activate learn // 切換到learn環境
conda create -n learn python=3 // 創建一個名為learn的環境並指定python版本為3(的最新版本)
conda env list // 列出conda管理的所有環境
conda list // 列出當前環境的所有包
conda install requests 安裝requests包
conda remove requests 卸載requets包
conda remove -n learn --all // 刪除learn環境及下屬所有包
conda update requests 更新requests包
conda env export > environment.yaml // 導出當前環境的包信息
conda env create -f environment.yaml // 用配置文件創建新的虛擬環境
1.7 與pycharm連接
打開pycharm,在Setting => Project => Project Interpreter 里面修改 Project Interpreter , 點擊齒輪標志再點擊Add Local為你某個環境的python.exe解釋器就行了
2、python初接觸
2.1 hello world!
print('hello, world!')
2.2 python代碼中的注釋
單行注釋:以#和空格開頭的部分
多行注釋:三個引號開頭,三個引號結尾
"""
第一個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')
3、練習
3.1 在Python交互環境中查看下面的代碼結果,並將內容翻譯成中文
import this
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!
結果如下:
3.2 在python中使用turtle繪制矩形
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()
結果如下:
3.3 在python中使用turtle繪制正六邊形
import turtle
turtle.pensize(8)
turtle.pencolor('green')
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.right(60)
turtle.forward(200)
turtle.mainloop()
結果如下所示:
2019-5-9 1:19:10