本人最開始接觸python是在2013年接觸,寫過hello word!在此以前對開發類沒有多大興趣,不知道重要性,屬於渾渾噩噩,忙忙乎乎,跌跌撞撞的。隨後選擇了Linux運維做爲就業主攻方向。php
通過幾年的工做實際狀況,愈加以爲懂開發的運維是多麼的重要。通過再三思慮,決定重拾開發學習。看過php\lua\python;最終選定python做爲首選主攻對象。python
經過博客記錄python的學習之路。記錄這傳奇的一輩子。linux
python誕生c++
1989年的聖誕節期間,吉多·範羅蘇姆爲了在阿姆斯特丹打發時間,決心開發一個新的腳本解釋程序,做爲ABC語言的一種繼承。 就這麼一個不經意的打發時間,創造出了一個優秀的語言,python今後誕生。程序員
python地位shell
在編程語言排行榜中,python穩居第4位(2016),遠超php\C#。有趕超c++入圍前三甲之勢。編程
Python能夠應用於衆多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。目前業內幾乎全部大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。互聯網公司普遍使用Python來作的事通常有:自動化運維、自動化測試、大數據分析、爬蟲、Web 等。windows
爲何是Python而不是其餘語言?python3.x
C 和 Python、Java、C#等網絡
C語言: 代碼編譯獲得 機器碼 ,機器碼在處理器上直接執行,每一條指令控制CPU工做
其餘語言: 代碼編譯獲得 字節碼 ,虛擬機執行字節碼並轉換成機器碼再後在處理器上執行
Python 和 C Python這門語言是由C開發而來
對於使用:Python的類庫齊全而且使用簡潔,若是要實現一樣的功能,Python 10行代碼能夠解決,C可能就須要100行甚至更多.
對於速度:Python的運行速度相較與C,絕逼是慢了
Python 和 Java、C#等
對於使用:Linux原裝Python,其餘語言沒有;以上幾門語言都有很是豐富的類庫支持
對於速度:Python在速度上可能稍顯遜色
因此,Python和其餘語言沒有什麼本質區別,其餘區別在於:擅長某領域、人才豐富、先入爲主。
Python的種類
以上除PyPy以外,其餘的Python的對應關係和執行流程以下:
PyPy,在Python的基礎上對Python的字節碼進一步處理,從而提高執行速度!
python環境安裝
代碼編寫
一、入門第一神句
#!/usr/bin/env python # -*- coding:utf-8 -*-
print("Hello Word")
二、解釋器
#!/usr/bin/env python
指定解釋器位置,與shell腳本開端相似
三、內容編碼
# -*- coding:utf-8 -*-
python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),在2.x版本不能直接支持中文,須要添加指定字符編碼,在3.x版本能夠直接支持,能夠不用寫。但爲規範編程,沿用指定內容編碼。
四、註釋
單行註釋:行首#號。
多行註釋:行前與行尾以3引號(單雙都可)
如:
#!/usr/bin/env python # -*- coding:utf-8 -*-
print("Hello Word") #這是單個註釋,不信你試試 ''' 這是多個註釋! 不信你試試 ''' print("Hello Word")
五、模塊引用
Python有大量的模塊,從而使得開發Python程序很是簡潔。類庫有包括三中:
#!/usr/bin/env python # -*- coding:utf-8 -*- import os print(os.system('df -h')
import os
模塊引入語句
print(os.system('df -h')
模塊函數與方法使用。
六、變量
一、聲明變量
#!/usr/bin/env python # -*- coding:utf-8 -*- name="jason"
name是變量名;"jason"是變量值
變量的做用:暱稱,其代指內存裏某個地址中保存的內容
做變量定義的規則:
等價變量賦值
#!/usr/bin/env python # -*- coding: utf-8 -*- name1 = "wupeiqi" name2 = name1
七、交互輸入
python2.x
#!/usr/bin/env python # -*- coding: utf-8 -*- # 將用戶輸入的內容賦值給 name 變量 name = raw_input("請輸入用戶名:") # 打印輸入的內容 print name
python3.x
#!/usr/bin/env python # -*- coding: utf-8 -*- # 將用戶輸入的內容賦值給 name 變量 name = input("請輸入用戶名:") # 打印輸入的內容 print name
案例1:模擬終端用戶登錄
#!/usr/bin/env python # -*- coding:utf-8 -*- user = "jason" password = "jason" for t in range(3): in_user = input("用戶名:") in_passwd = input("密碼:") if in_user == user and password == in_passwd: print("登錄成功") break else: print("用戶名/密碼錯誤,請重試")
案例2:模擬終端用戶登錄,密碼不可見。
#!/usr/bin/env python # -*- coding:utf-8 -*-
import getpass user = "jason" password = "jason" for t in range(3): in_user = input("用戶名:") in_passwd = getpass.getpass("密碼:") if in_user == user and password == in_passwd: print("登錄成功") break else: print("用戶名/密碼錯誤,請重試")
#import getpass 密碼交互模塊
八、流程控制與代碼塊
代碼塊:python是一個強制縮進的編程語言。不一樣縮進的代碼格式代碼不一樣層級的代碼塊。
#!/usr/bin/env python # -*- coding:utf-8 -*- age = 20 if age > 20: print("age > 20") elif age < 20: print("age < 20") else: print("age = 20")
九、while/for循環與控制
(1)、while循環
while 條件:
循環代碼塊
(2)for循環
for 條件:
循環代碼塊
(3)、break 結束當前循環體
#!/usr/bin/env python # -*- coding:utf-8 -*- for i in range(1,5): if i = 2: break print(i)
(4)、continue 結束當次循環體
#!/usr/bin/env python # -*- coding:utf-8 -*- for i in range(1,5): if i = 2: continue print(i)