http://www.cnblogs.com/alex3714/articles/5465198.html Python趕超PHP佔據第五, Python崇尚優美、清晰、簡單,是一個優秀並普遍使用的語言 Python能夠應用於衆多領域,如:數據分析、組件集成、網絡服務、圖像處理、數值計算和科學計算等衆多領域。 目前業內幾乎全部大中型互聯網企業都在使用Python,如:Youtube、Dropbox、BT、Quora(中國知乎)、豆瓣、知乎、Google、 Yahoo!、Facebook、NASA、百度、騰訊、汽車之家、美團等。 1.目前Python主要應用領域: 雲計算: 雲計算最火的語言, 典型應用OpenStack WEB開發: 衆多優秀的WEB框架,衆多大型網站均爲Python開發,Youtube, Dropbox, 豆瓣。。。, 典型WEB框架有Django 科學運算、人工智能: 典型庫NumPy, SciPy, Matplotlib, Enthought librarys,pandas 系統運維: 運維人員必備語言 金融:量化交易,金融分析,在金融工程領域,Python不但在用,且用的最多,並且重要性逐年提升。緣由:做爲動態語言的Python,語言結構清晰簡單,庫豐富,成熟穩定,科學計算和統計分析都很牛逼,生產效率遠遠高於c,c++,java,尤爲擅長策略回測 圖形GUI: PyQT, WxPython,TkInter 2.優勢和缺點 優勢: 1)Python的定位是「優雅」、「明確」、「簡單」,因此Python程序看上去老是簡單易懂,初學者學Python,不但入門容易,並且未來深刻下去,能夠編寫那些很是很是複雜的程序。 2)開發效率很是高,Python有很是強大的第三方庫,基本上你想經過計算機實現任何功能,Python官方庫裏都有相應的模塊進行支持,直接下載調用後,在基礎庫的基礎上再進行開發,大大下降開發週期,避免重複造輪子。 3)高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內存一類的底層細節 4)可移植性————因爲它的開源本質,Python已經被移植在許多平臺上(通過改動使它可以工 做在不一樣平臺上)。若是你當心地避免使用依賴於系統的特性,那麼你的全部Python程序無需修改就幾乎能夠在市場上全部的系統平臺上運行 5)可擴展性————若是你須要你的一段關鍵代碼運行得更快或者但願某些算法不公開,你能夠把你的部分程序用C或C++編寫,而後在你的Python程序中使用它們。 6)可嵌入性————你能夠把Python嵌入你的C/C++程序,從而向你的程序用戶提供腳本功能。 缺點: 1)速度慢,Python 的運行速度相比C語言確實慢不少,跟JAVA相比也要慢一些,所以這也是不少所謂的大牛不屑於使用Python的主要緣由,但其實這裏所指的運行速度慢在大多數狀況下用戶是沒法直接感知到的,必須藉助測試工具才能體現出來,好比你用C運一個程序花了0.01s,用Python是0.1s,這樣C語言直接比Python快了10倍,算是很是誇張了,可是你是沒法直接經過肉眼感知的,由於一個正常人所能感知的時間最小單位是0.15-0.4s左右,哈哈。其實在大多數狀況下Python已經徹底能夠知足你對程序速度的要求,除非你要寫對速度要求極高的搜索引擎等,這種狀況下,固然仍是建議你用C去實現的。 2)代碼不能加密,由於PYTHON是解釋性語言,它的源碼都是以名文形式存放的,不過我不認爲這算是一個缺點,若是你的項目要求源代碼必須是加密的,那你一開始就不該該用Python來去實現。 3)線程不能利用多CPU問題,這是Python被人詬病最多的一個缺點,GIL即全局解釋器鎖(Global Interpreter Lock),是計算機程序設計語言解釋器用於同步線程的工具,使得任什麼時候刻僅有一個線程在執行,Python的線程是操做系統的原生線程。在Linux上爲pthread,在Windows上爲Win thread,徹底由操做系統調度線程的執行。一個python解釋器進程內有一條主線程,以及多條用戶程序的執行線程。即便在多核CPU平臺上,因爲GIL的存在,因此禁止多線程的並行執行。關於這個問題的折衷解決方法,咱們在之後線程和進程章節裏再進行詳細探討。 3.編碼問題 python2 和python3 最大去區別 python3 默認支持 utf-8編碼 python2 默認支持 ascii 編碼,若是須要支持中文,則 須要 在文件開頭增長一句 設置文件的編碼格式 #_*_coding:utf-8_*_ 4.數據類型 1)數字 2 是一個整數的例子。 長整數 不過是大一些的整數。 3.23和52.3E-4是浮點數的例子。E標記表示10的冪。在這裏,52.3E-4表示52.3 * 10-4。 (-5+4j)和(2.3-4.6j)是複數的例子,其中-5,4爲實數,j爲虛數,數學中表示覆數是什麼?。 int(整型) 在32位機器上,整數的位數爲32位,取值範圍爲-2**31~2**31-1,即-2147483648~2147483647 在64位系統上,整數的位數爲64位,取值範圍爲-2**63~2**63-1,即-9223372036854775808~9223372036854775807 long(長整型) 跟C語言不一樣,Python的長整數沒有指定位寬,即:Python沒有限制長整數數值的大小,但實際上因爲機器內存有限,咱們使用的長整數數值不可能無限大。 注意,自從Python2.2起,若是整數發生溢出,Python會自動將整數數據轉換爲長整數,因此現在在長整數數據後面不加字母L也不會致使嚴重後果了。 float(浮點型) 先掃盲 http://www.cnblogs.com/alex3714/articles/5895848.html 浮點數用來處理實數,即帶有小數的數字。相似於C語言中的double類型,佔8個字節(64位),其中52位表示底,11位表示指數,剩下的一位表示符號。 complex(複數) 複數由實數部分和虛數部分組成,通常形式爲x+yj,其中的x是複數的實數部分,y是複數的虛數部分,這裏的x和y都是實數。 注:Python中存在小數字池:-5 ~ 257 2)布爾值 真或假 1 或 0 3)字符串 "hello world" 萬惡的字符串拼接: python中的字符串在C語言中體現爲是一個字符數組,每次建立字符串時候須要在內存中開闢一塊連續的空,而且一旦須要修改字符串的話,就須要再次開闢空間,萬惡的+號每出現一次就會在內從中從新開闢一塊空間。 字符串格式化輸出 name = "alex" print "i am %s " % name #輸出: i am alex PS: 字符串是 %s;整數 %d;浮點數%f 字符串經常使用功能: 移除空白 分割 長度 索引 切片 4)列表 建立列表: name_list = ['alex', 'seven', 'eric'] 或 name_list = list(['alex', 'seven', 'eric']) 基本操做: 索引 切片 追加 刪除 長度 切片 循環 包含 5)元組(不可變列表) 建立元組: ages = (11, 22, 33, 44, 55) 或 ages = tuple((11, 22, 33, 44, 55)) 6)字典(無序) 建立字典: person = {"name": "mr.wu", 'age': 18} 或 person = dict({"name": "mr.wu", 'age': 18}) 經常使用操做: 索引 新增 刪除 鍵、值、鍵值對 循環 長度 5.數據運算 按位取反運算規則(按位取反再加1) 詳解http://blog.csdn.net/wenxinwukui234/article/details/42119265 6.表達式if ... else 場景1、用戶登錄驗證 # 提示輸入用戶名和密碼 # 驗證用戶名和密碼 # 若是錯誤,則輸出用戶名或密碼錯誤 # 若是成功,則輸出 歡迎,XXX! #!/usr/bin/env python # -*- coding: encoding -*- import getpass name = raw_input('請輸入用戶名:') pwd = getpass.getpass('請輸入密碼:') if name == "alex" and pwd == "cmd": print("歡迎,alex!") else: print("用戶名和密碼錯誤") 場景2、猜年齡遊戲 在程序裏設定好你的年齡,而後啓動程序讓用戶猜想,用戶輸入後,根據他的輸入提示用戶輸入的是否正確,若是錯誤,提示是猜大了仍是小了 #!/usr/bin/env python # -*- coding: utf-8 -*- my_age = 28 user_input = int(input("input your guess num:")) if user_input == my_age: print("Congratulations, you got it !") elif user_input < my_age: print("Oops,think bigger!") else: print("think smaller!") 外層變量,能夠被內層代碼使用 內層變量,不該被外層代碼使用 7.表達式for loop 最簡單的循環10次 #_*_coding:utf-8_*_ __author__ = 'Alex Li' for i in range(10): print("loop:", i ) 需求一:仍是上面的程序,可是遇到小於5的循環次數就不走了,直接跳入下一次循環 for i in range(10): if i<5: continue #不往下走了,直接進入下一次loop print("loop:", i ) 需求二:仍是上面的程序,可是遇到大於5的循環次數就不走了,直接退出 for i in range(10): if i>5: break #不往下走了,直接跳出整個loop print("loop:", i ) 8.while loop count = 0 while True: print("你是風兒我是沙,纏纏綿綿到天涯...",count) count +=1 if count == 100: print("去你媽的風和沙,大家這些脫了褲子是人,穿上褲子是鬼的臭男人..") break 回到上面for 循環的例子,如何實現讓用戶不斷的猜年齡,但只給最多3次機會,再猜不對就退出程序。 #!/usr/bin/env python # -*- coding: utf-8 -*- my_age = 28 count = 0 while count < 3: user_input = int(input("input your guess num:")) if user_input == my_age: print("Congratulations, you got it !") break elif user_input < my_age: print("Oops,think bigger!") else: print("think smaller!") count += 1 #每次loop 計數器+1 else: print("猜這麼屢次都不對,你個笨蛋.")