Python的創始人:吉多·範羅蘇姆(Guido van Rossum)java
1989年,吉多·範羅蘇姆爲了在阿姆斯特丹打發聖誕節假期時間,開發的一個新的腳本解釋程序,做爲ABC語言的一種繼承。python
Python社區的人賦予他「仁慈大君」 的稱號,這一稱號直接來自英國肥皂劇《Monty Python飛行馬戲團》。Guido當初之因此選中Python做爲語言的名字,是由於他太喜歡這部肥皂劇了。linux
TIOBE排行榜 c++
http://www.tiobe.com/tiobe-index/算法
優勢:數據庫
1)易於學習:Python有相對較少的關鍵字,結構簡單,和一個明肯定義的語法,學習起來更加簡單。編程
2)易於閱讀:Python代碼定義的更清晰。網絡
3)易於維護:Python的成功在於它的源代碼是至關容易維護的。多線程
4)一個普遍的標準庫:Python的最大的優點之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。運維
5)互動模式:互動模式的支持,您能夠從終端輸入執行代碼並得到結果的語言,互動的測試和調試代碼片段。
6)可移植:基於其開放源代碼的特性,Python已經被移植(也就是使其工做)到許多平臺。
7)可擴展:若是你須要一段運行很快的關鍵代碼,或者是想要編寫一些不肯開放的算法,你可使用C或C++完成那部分程序,而後從你的Python程序中調用。
8)數據庫:Python提供全部主要的商業數據庫的接口。
9)GUI編程:Python支持GUI能夠建立和移植到許多系統調用。
10)可嵌入: 你能夠將Python嵌入到C/C++程序,讓你的程序的用戶得到"腳本化"的能力。
缺點:
可是大量的應用程序不須要這麼快的運行速度,由於用戶根本感受不出來。例如,開發一個下載MP3的網絡應用程序,C程序的運行時間須要0.001秒,而Python程序的運行時間須要0.1秒,慢了100倍,但因爲網絡更慢,須要等待1秒,用戶能感受到1.001秒和1.1秒的區別嗎?這就比如F1賽車和普通的出租車在北京三環路上行駛的道理同樣,雖然F1賽車理論時速高達400千米,但因爲三環路堵車的時速只有20千米,所以,做爲乘客,你感受的時速永遠是20千米。
這個缺點僅限於你要編寫的軟件須要賣給別人掙錢的時候。好消息是,在目前的互聯網時代,靠賣軟件受權的商業模式愈來愈少了,靠網站和移動應用賣服務的模式愈來愈多了,後一種模式不須要把源碼給別人。另外,如今如火如荼的開源運動和互聯網自由開放的精神是一致的,互聯網上有無數很是優秀的像Linux同樣的開源代碼,咱們千萬不要高估本身寫的代碼真的有很是大的「商業價值」。那些大公司的代碼不肯意開放的更重要的緣由是代碼寫得太爛了,一旦開源,就沒人敢用他們的產品了。
下載地址:https:
/
/
www.python.org
/
downloads
/
2.2.1 Windows:
1)添加到PATH
2)next
3)選擇安裝目錄
4)安裝成功
2.2.2 Linux:
解壓、編譯、安裝
1 # tar zxvf Python-3.5.2.tgz 2 3 # cd Python-3.5.2 4 5 # ./configure 6 7 # make 8 9 # make install
1 Python 3.5.2 (default, Sep 28 2016, 14:44:21) 2 [GCC 4.1.2 20070626 (Red Hat 4.4.7-3)] on linux 3 Type "help", "copyright", "credits" or "license" for more information. 4 >>> print("Hello World!") 5 Hello World! 6 >>>
1 編輯文件:vi hello.py 2 寫入代碼:print("Hello Woold!") 3 執行文件:python hello.py
3.3.1 PyCharm 簡介
PyCharm是由JetBrains打造的一款Python IDE,具有調試、語法高亮、Project管理、代碼跳轉、智能提示、自動完成、單元測試、版本控制等功能。另外,PyCharm還提供了一些很好的功能用於Django開發,同時支持Google App Engine,更酷的是,PyCharm支持IronPython!
3.3.2 PyCharm快捷鍵
在菜單欄Help下你點擊Default Keymap Reference,能夠打開一個PDF文件,裏面列出了全部的快捷鍵,你能夠打印出來備用。千萬不要被這麼多快捷鍵嚇到了,平常編程常用的也就下面 幾個,若是你想放棄鼠標,直接純鍵盤編程,那麼你會徹底愛上PyCharm。
◆ Basic code completion --- 」基本代碼完成「快捷鍵
在平常寫代碼中,Basic code completion是用的比較多的,它能夠智能的提示你或者幫你補全餘下的代碼。可是這一個快捷鍵是最有爭議的一個快捷鍵,由於它的快捷方式是Ctrl + Space,會與咱們的輸入法快捷鍵衝突,因此第一步咱們須要改變這個快捷鍵,我通常喜歡改爲Ctrl + Comma。(如何修改默認快捷鍵見下面介紹)
◆ Tab
Tab 有2種狀況:
1. 當你什麼也沒有輸入的時候,Tab只是4個空格的縮進。
2. 當你輸入前幾個字母,PyCharm會智能的列出全部的候選項,這時候,你只要按下Tab,會默認選擇第一個候選項。你也許以爲這沒什麼,可是這個功能能保證你的雙手不離口鍵盤的「字母區」,你不須要按上下左右鍵去選擇候選項,提供輸入速度,很是流暢。
◆ Shift+Enter --- 智能換行
class function鼠標在這(): 鼠標在function後面括號前面,我想換到下一行正確的位置寫代碼,那麼就Shift+Enter 智能換行吧
◆ 其餘快捷鍵 --- 若是你感興趣,就看Default Keymap Reference吧,保證有驚喜
3.3.3 PyCharm默認快捷鍵的修改
上面提到,咱們須要修改Basic code completion的默認快捷鍵。
1)快捷鍵(Ctrl + Alt + S)打開設置面板,或者點擊如圖所示紅方框裏面的圖標:
2)找到Keymap選項
3.3.4 PyCharm 的插件
由於PyCharm的功能已經很強大了,我通常不多用插件,這裏介紹一個我很喜歡的插件,叫Native Neighbourhood,這個插件能夠快速的打開操做系統的文件。
那麼如何安裝插件呢?
1)快捷鍵(Ctrl + Alt + S)打開設置面板,或者點擊如圖所示紅方框裏面的圖標
2)找到Plugins
3.3.5 PyCharm 一下吧
那麼如今就點擊這個連接下載吧,不須要找註冊碼,先試用一個月再說!
http://www.jetbrains.com/pycharm/
使用符號#開頭註釋單行內容:
1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 # 文件名:test.py 4 5 # 第一個註釋 6 print("Hello, Python!") # 第二個註釋
輸出結果:
1 Hello, Python!
使用三個單引號(''')或三個雙引號(""")註釋多行內容
1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 # 文件名:test.py 4 5 6 ''' 7 這是多行註釋,使用單引號。 8 這是多行註釋,使用單引號。 9 這是多行註釋,使用單引號。 10 ''' 11 12 """ 13 這是多行註釋,使用雙引號。 14 這是多行註釋,使用雙引號。 15 這是多行註釋,使用雙引號。 16 """
變量是存儲在內存中的值。這就意味着,在建立變量時,會在內存中開闢一個空間。基於變量的數據類型,解釋器會分配指定內存,並決定什麼數據能夠被存儲在內存中。所以,變量能夠指定不一樣的數據類型,這些變量能夠存儲整數,小數或字符。
1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 counter = 100 # 賦值整型變量 5 miles = 1000.0 # 浮點型 6 name = "John" # 字符串 7 8 print counter 9 print miles 10 print name
以上實例中,100,1000.0和"John"分別賦值給counter,miles,name變量。
執行以上程序會輸出以下結果:
1 100 2 1000.0 3 John
如下關鍵字不能聲明爲變量名
['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']
用print()
在括號中加上字符串,就能夠向屏幕上輸出指定的文字。好比輸出'hello, world'
,用代碼實現以下:
1 >>> print("Hello World!") 2 Hello World!
print()
函數也能夠接受多個字符串,用逗號「,」隔開,就能夠連成一串輸出:
1 >>> print('The quick brown fox', 'jumps over', 'the lazy dog') 2 The quick brown fox jumps over the lazy dog
Python提供了一個input()
,可讓用戶輸入字符串,並存放到一個變量裏。好比輸入用戶的名字:
1 >>> name = input() 2 James 3 >>> print(name) 4 James
python3中的input() 即爲 python2中的raw_input()
1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 #name = raw_input("What is your name?") #only on python 2.x 5 name = input("What is your name?") 6 print("Hello " + name )
輸入密碼時,若是想要不可見,須要利用 getpass 模塊中的 getpass 方法,即:
1 #!/usr/bin/env python 2 # -*- coding: UTF-8 -*- 3 4 import getpass 5 6 # 將用戶輸入的內容賦值給 name 變量 7 passwd = getpass.getpass("請輸入密碼:") 8 9 # 打印輸入的內容 10 print(passwd )
場景一:用戶登陸驗證
1 # 提示輸入用戶名和密碼 2 3 # 驗證用戶名和密碼 4 # 若是錯誤,則輸出用戶名或密碼錯誤 5 # 若是成功,則輸出 歡迎,XXX! 6 7 8 #!/usr/bin/env python 9 # -*- coding:UTF-8 -*- 10 11 import getpass 12 13 name = input('請輸入用戶名:') 14 passwd = getpass.getpass('請輸入密碼:') 15 16 if name == "James" and passwd == "123": 17 print("歡迎,James!") 18 else: 19 print("用戶名和密碼錯誤")
場景2、猜年齡遊戲
在程序裏設定好你的年齡,而後啓動程序讓用戶猜想,用戶輸入後,根據他的輸入提示用戶輸入的是否正確,若是錯誤,提示是猜大了仍是小了。
循環10次:
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 for i in range(10): 5 print("loop:", i )
輸出結果:
1 loop: 0 2 loop: 1 3 loop: 2 4 loop: 3 5 loop: 4 6 loop: 5 7 loop: 6 8 loop: 7 9 loop: 8 10 loop: 9
需求一:仍是上面的程序,可是遇到小於5的循環次數就不走了,直接跳入下一次循環
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 for i in range(10): 5 if i<5: 6 continue #不往下走了,直接進入下一次loop 7 print("loop:", i )
輸出結果:
1 loop: 5 2 loop: 6 3 loop: 7 4 loop: 8 5 loop: 9
需求二:仍是上面的程序,可是遇到大於5的循環次數就不走了,直接退出
1 #!/usr/bin/python 2 # -*- coding: UTF-8 -*- 3 4 for i in range(10): 5 if i>5: 6 break #不往下走了,直接進入下一次loop 7 print("loop:", i )
輸出結果:
1 loop: 5 2 loop: 6 3 loop: 7 4 loop: 8 5 loop: 9
只要條件知足,就不斷循環,條件不知足時退出循環
1 #!/usr/bin/env python 2 # -*- coding:UTF-8 -*- 3 4 count = 0 5 while (count < 9): 6 print('The count is:', count) 7 count = count + 1 8 9 print("Good bye!")
輸出結果:
1 The count is: 0 2 The count is: 1 3 The count is: 2 4 The count is: 3 5 The count is: 4 6 The count is: 5 7 The count is: 6 8 The count is: 7 9 The count is: 8 10 Good bye!
while 的死循環
1 #!/usr/bin/env python 2 # -*- coding:UTF-8 -*- 3 4 count = 0 5 while True: 6 print("加雞腿...",count) 7 count +=1
做業一:博客
做業二:編寫登錄接口