語言 優勢 缺點
機器語言 最底層,執行速度快 最複雜,開發效率最低
彙編語言 比較底層,執行速度較快 複雜,開發效率低
高級語言 編譯型:
執行速度快,不依賴語言環境運行 跨平臺差
解釋型:
跨平臺好,一份代碼,導出可用 執行速度慢,依賴解釋器才行
高級語言又分爲:編譯型和解釋型
編譯型:執行速度快,調試麻煩
解釋型:執行速度慢,調試方便
學習難度從高到低
執行效率從高到低
開發效率從低到高
最新排行見連接:https://www.tiobe.com/tiobe-index/html
下面是18年與17年的排行對比表python
咱們如今知道了Python是一門解釋型語言,代碼想運行,必須經過解釋器執行,Python的解釋器自己也能夠看做是個程序(翻譯官司是哪國人不重要),這個程序是什麼語言開發的呢? 答案是好幾種語言? what? 由於Python有好幾種解釋器,分別基於不一樣語言開發,每一個解釋器特色不一樣,但都能正常運行咱們的Python代碼,下面分別來看下: #CPython:CPython是使用最廣且被的Python解釋器。本教程以CPython爲準。 當咱們從Python官方網站下載並安裝好Python 2.7後,咱們就直接得到了一個官方版本的解釋器:CPython。這個解釋器是用C語言開發的,因此叫CPython。在命令行下運行python就是啓動CPython解釋器。 #IPython IPython是基於CPython之上的一個交互式解釋器,也就是說,IPython只是在交互方式上有所加強,可是執行Python代碼的功能和CPython是徹底同樣的。比如不少國產瀏覽器雖然外觀不一樣,但內核其實都是調用了IE。 CPython用>>>做爲提示符,而IPython用In [序號]:做爲提示符。 #PyPy PyPy是另外一個Python解釋器,它的目標是執行速度。PyPy採用JIT技術,對Python代碼進行動態編譯(注意不是解釋),因此能夠顯著提升Python代碼的執行速度。 絕大部分Python代碼均可以在PyPy下運行,可是PyPy和CPython有一些是不一樣的,這就致使相同的Python代碼在兩種解釋器下執行可能會有不一樣的結果。若是你的代碼要放到PyPy下執行,就須要瞭解PyPy和CPython的不一樣點。 #Jython Jython是運行在Java平臺上的Python解釋器,能夠直接把Python代碼編譯成Java字節碼執行。 #IronPython IronPython和Jython相似,只不過IronPython是運行在微軟.Net平臺上的Python解釋器,能夠直接把Python代碼編譯成.Net的字節碼。
序號程序員 |
優勢web |
缺點算法 |
1編程 |
簡單易懂,易於學習flask |
運行速度慢,可是在大多數狀況下已經徹底知足了對程序速度的需求,除非寫對速度要求極高的搜索引擎等windows |
2瀏覽器 |
開發效率高網絡 |
代碼不能加密——Python是解釋型語言,因此它的源碼是以明文形式存在的 |
3 |
高級語言——無需考慮底層細節 |
線程不能利用多CPU問題 |
4 |
可移植性——Python幾乎能夠移植到任何操做系統上運行 |
|
5 |
可擴展性——若想的一段代碼運行的更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。 |
|
6 |
可嵌入性——你能夠把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能 |
|
Python目前已支持全部主流操做系統,在Linux,Unix,Mac系統上自帶Python環境,在Windows系統上須要安裝一下,超簡單
打開官網 https://www.python.org/downloads/windows/ 下載中心
目前市場已開發軟件,大多數基於2.x版本,但2.x版本已經不作升級;因此3.x版本是將來應用的趨勢,因此須要安裝的這兩個版本,學習中瞭解之間差別所在,並能靈活運用
windows多版本並存,設置環境變量;並更改引用標識
設置環境變量
Python程序和script
不一樣版本並存
運行程序的方式: 1、交互性執行代碼文件(調試方便,不能永久保存 ) 2、建立程序保存到文件中(調試不方便,能夠永久保存),和文件後綴名無關 運行過程 1、打開Python程序,放到內存中 2、讀取磁盤文件內容到內存中 3、執行文件內容
變量即變化的量,核心是「變」與「量」,變即變化,量即衡量狀態
程序執行的本質就是一系列狀態的變化,變是程序執行的直接體現,因此須要一種機制可以 反應或者是保存下來程序執行狀態和狀態的變化。
變量名 賦值 變量值 內存(空間)地址經過ID標識 刪除內存空間(其餘語言須要寫代碼進行刪除操做,Python有本身內存管理機制,會自定刪除) ##方法1:從新定義變量名 ##方法2:刪除變量的綁定關係 del age #while 設定變量,改變一次變量,全部的生效
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
注意:一、變量名不要爲中文、拼音
二、變量名過長
三、變量名詞不達意
強調:一、id相同,意味着type和value一定相同
二、value相同,type確定相同,但id不必定相同
常量是指不變的量:如π,在程序運行過程當中不會變化的量
在Python中沒有一個專門的語法表明常量,程序員約定俗稱用變量名所有大寫表明常量 例如:AGE_OF_DOG = 10
http://www.javashuo.com/article/p-tbwnlmpq-q.html
更詳細:http://www.javashuo.com/article/p-zhpvrmid-d.html
#在python3中
input:用戶輸入任何值,都存成字符串類型
#在python2中
input:用戶輸入什麼類型,就存成什麼類型
raw_input:等於python3的input
#!/usr/bin/env python # -*- coding:utf-8 -*- # __author__ = "wzs" # Date: ${DATE}
定義:age=28 #age=int(28)的簡寫
用於標識:年齡,等級,個數等只能整數標識的東西
定義:salary=10000.33,#salary=float(10000.33)
用於標識:工資、身高、體重等
在python中,加了引號就是字符串累心,python並無字符類型
定義:name='wzs' #name=str('wzs')
用於標識:描述性的內容(單一屬性),如國籍,姓名,性別等等
單引號、雙引號、多引號有什麼區別 通常狀況使用單引號便可,但在所描述的內容有單引號時,外面須要用雙引號 msg = "I'm 20 years old!
多引號做用就是註釋多行字符串
1 msg = ''' 2 今天是2017年9月5日17:15:11 3 星期二 4 天氣:晴 5 ''' 6 print(msg)
字符串拼接:字符串只能進行相加和相乘運算(注意:字符串相加效率不高,並且只能是字符串相加,數據量小時,可使用)
字符串1+字符串2,並不會在字符串1的基礎上加字符串2,而是申請一個新的空間存放字符串1和字符串2,至關於字符串1和字符串2的空間被複制了一份
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 name = 'wzs' 4 age = '26' 5 nationality = '中國' 6 print(name+age+nationality) 7 print(name*3)
在[ ]內用逗號分隔,能夠是n個任意類型的值
定義:students = ['xiaoming','alex','egon','Dave']
用於標識:存儲多個值的狀況,一個組內有多個值
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 hobbies = ['play','read','run','music'] 4 print(type(hobbies)) 5 print(hobbies[0]) 6 print(hobbies[2]) 7 print(hobbies[-2]) 8 9 l = [1,'wzs',4,['a','b']] 10 print(l[3][1])
在{ }內用逗號分隔,能夠存放多個key:value的值,value能夠是任意類型的值
定義:info = {'name':'wzs','age':28,'height':170}
用於標識:存儲多個值的狀況,每一個值都是惟一一個對應的key,能夠更高效的取值
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 info = { 4 'name':'wzs', 5 'hobbies':['run','read'], 6 'company_info':{ 7 'name':'騰訊', 8 'type':'互聯網', 9 } 10 } 11 print(info['company_info']['type']) #取出人員所在公司的類型
邏輯判斷——布爾值有兩個:True和Flase
判斷一個條件成立時,返回True標識;判斷一個條件不知足時,返回Flase標識。
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 a = 3 4 b = 10 5 print(a > b) 6 print(a < b) 7 8 if a > b: 9 print('a is bigger than b') 10 else: 11 print('a is smaller than b')
重點:
一、可變類型(mutable):在id不變的狀況下,value能夠變,則稱爲可變類型,如列表、字典(可變類型不可hash)
二、不可變類型(unmutable):value一旦改變,id也改變,則稱爲不可變類型(id變,意味着建立了新的內存空間),例如:數字,字符串,元組
要求用戶輸入信息,而後打印成固定的格式
佔位符:%s %d數字
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/3 5 6 name = input("Name:") 7 age = input("Age:") 8 sex = input("Sex:") 9 job = input("Job:") 10 11 info1 = ''' 12 ----------------info of {0}--------------------- 13 Name :{0} 14 Age :{1} 15 Sex :{2} 16 Job :{3} 17 -----------------end---------------------------- 18 '''.format(name,name,age,sex,job) 19 20 # print(info1) 21 info2 = ''' 22 ----------------info of %s--------------------- 23 Name :%s 24 Age :%s 25 Sex :%s 26 Job :%s 27 -----------------end---------------------------- 28 '''%(name,name,age,sex,job) 29 print(info2)
計算機能夠進行的運算有不少種,可不僅加減乘除這麼簡單,運算按種類可分爲算數運算、比較運算、邏輯運算、賦值運算、成員運算、身份運算、位運算,今天咱們暫只學習算數運算、比較運算、邏輯運算、賦值運算
特色:沒有代碼塊標誌符,python的代碼特色是以縮進爲標誌
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/3 5 6 age = input('>>:') 7 age=int(age) 8 if age >= 18: 9 print('Please come in!') 10 else: 11 print('Do Not Enter!!!')
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/3 5 6 age = input('age>>:') 7 age=int(age) 8 sex = input('sex>>:') 9 card = input('card>>:') 10 if age >= 18 and sex == 'male' and card == '有': 11 print('Please come in!') 12 else: 13 print('Do Not Enter!!!')
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/3 5 6 age = input('age>>:') 7 age=int(age) 8 sex = input('sex>>:') 9 card = bool(input('card>>:')) 10 success = False 11 # success = True 12 if age >= 18 and sex == 'male' and card == True: 13 if success: 14 print('Please come in!') 15 else: 16 print('Please leave here!') 17 else: 18 print('Do Not Enter!!!')
if ..elif ..elif..else #能夠查看三次分數的等級
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 6 count = 0 7 while count < 3: 8 score = int(input("your score>>:")) 9 count += 1 10 if score >= 90: 11 print('優秀') 12 elif score >= 80: 13 print('良好') 14 elif score >= 70: 15 print('及格') 16 else: 17 print('太差了')
while 條件:
循環體
若是條件爲真,那麼循環體則執行,執行完畢後再次循環,從新判斷條件。。。
若是條件爲假,那麼循環體不執行,循環終止
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 count = 0 6 while True: 7 if count > 100: 8 break 9 print(count) 10 count +=1
從0到10,跳過7
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 count = 0 6 while count <= 10: 7 if count == 7: 8 count +=1 ##注意這個是必須的 9 continue 10 print(count) 11 count +=1
1 count = 0 2 while count <= 10: 3 # if count == 7: 4 # break 5 print(count) 6 count +=1 7 else: 8 print('while正常結束了,沒有被break打斷,纔會執行這裏的代碼')
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 import time 6 num = 0 7 while True: 8 print('count',num) 9 time.sleep(1) 10 num+=1
範例
1 tag=True 2 3 while tag: 4 5 ...... 6 7 while tag: 8 9 ........ 10 11 while tag: 12 13 tag=False
1 循環驗證用戶輸入的用戶名與密碼 2 認證經過後,運行用戶重複執行命令 3 當用戶輸入命令爲quit時,則退出整個程序
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 6 name = 'wzs' 7 password = 'wzs123' 8 9 while True: 10 Name = input('用戶名:') 11 Pwd = input('密碼:') 12 if Name == name and Pwd == password: 13 cmd = input('命令>>:') 14 if not cmd:continue 15 if cmd == 'quit': 16 break 17 print('run <%s>' %cmd) 18 else: 19 print('用戶名或密碼錯誤') 20 continue 21 break
使用tag的
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 # __author__ = "wzs" 4 # Date: 2017/9/5 5 6 name = 'wzs' 7 password = 'wzs123' 8 tag = True 9 while tag: 10 Name = input('用戶名:') 11 Pwd = input('密碼:') 12 if Name == name and Pwd == password: 13 while tag: 14 cmd = input('命令>>:') 15 if not cmd:continue 16 if cmd == 'quit': 17 break 18 print('run <%s>' %cmd) 19 else: 20 print('用戶名或密碼錯誤') 21 continue 22 break
for i in range(10): print(i)
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 for i in range(1,10): 4 for j in range(1,i+1): 5 print('%d * %d = %d'%(i,j,i*j),end='\t') 6 print('')