易於學習:Python有相對較少的關鍵字,結構簡單,和一個明肯定義的語法,學習起來更加簡單。html
易於閱讀:Python代碼定義的更清晰。java
易於維護:Python的成功在於它的源代碼是至關容易維護的。python
擁有普遍的標準庫:Python的最大的優點之一是豐富的庫,跨平臺的,在UNIX,Windows和Macintosh兼容很好。linux
互動模式:互動模式的支持,您能夠從終端輸入執行代碼並得到結果的語言,互動的測試和調試代碼片段。c++
可移植:基於其開放源代碼的特性,Python已經被移植(也就是使其工做)到許多平臺。程序員
可擴展:若是你須要一段運行很快的關鍵代碼,或者是想要編寫一些不肯開放的算法,你可使用C或C++完成那部分程序,而後從你的Python程序中調用。算法
數據庫:Python提供全部主要的商業數據庫的接口。shell
GUI編程:Python支持GUI能夠建立和移植到許多系統調用。數據庫
可嵌入: 你能夠將Python嵌入到C/C++程序,讓你的程序的用戶得到"腳本化"的能力。macos
學習Python首先固然是安裝上,以下提供windows、Linux、Mac的安裝方法(所有都是Python3.x,如下實踐都是在Python3.x上進行)
1.下載安裝包 Python3.5 for windows
2.安裝 默認安裝路徑:C:\python3.5.2
3.配置環境變量(原來的值;C:\python27,切記前面有分號)
右鍵計算機-->屬性-->高級系統設置-->環境變量-->找到變量名爲Path的一行雙擊-->Python安裝目錄追加到變量值中。用分號;分割
4.Windows更新Python,卸載重裝便可
1.安裝gcc,用於編譯Python源碼 yum install gcc
2.下載源碼包
Python發行版 #選擇版本下載
Python3.5版本 #安裝Python3.5
3.解壓並進入源碼文件 cd python3.5.2
4.編譯安裝
./configure
make all
make install
5.查看版本
/usr/local/bin/python3.5 -V Python 3.5.2
6.修改默認Python版本
mv /usr/bin/python /usr/bin/python2.6 ln -s /usr/local/bin/python3.5 /usr/bin/python
7.防止yum執行異常,修改yum使用的Python版本
vi /usr/bin/yum #!/usr/bin/python 更改成 #!/usr/bin/python2.6
1.下載如下軟件,直接雙擊運行便可安裝
Mac OS X 10.5以上點擊下載
Mac OS X 10.6以上點擊下載
2.執行Python3命令便可查詢
[root@localhost ~] python3 Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>>
print("Hello World!") #3.x print "Hello World!" #2.x print("Hello World!") #2.x
執行命令: python hello.py
上一步中執行 python hello.py 時,明確的指出 hello.py 腳本由 python 解釋器來執行。
若是想要相似於執行shell腳本同樣執行python腳本,例: ./hello.py
,那麼就須要在 hello.py 文件的頭部指定解釋器,以下:
#!/usr/bin/env python print ("hello,world")
如此一來,執行: ./hello.py
便可。
ps:執行前需給予 hello.py 執行權限,chmod 755 hello.py
在交互器執行
除了把程序寫在文件裏,還能夠直接調用python自帶的交互器運行代碼
[root@localhost ~]# python
Python 3.5.2 (default, Jun 17 2014, 18:11:42)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print ("hello word")
hello word
聲明變量
#_*_coding:utf-8_*_ name = "Alex Li"
上述代碼聲明瞭一個變量,變量名爲: name,變量name的值爲:"Alex Li"
變量定義的規則:
變量的賦值
name = "Alex Li"
name2 = name print(name,name2)
name = "Jack"
print("What is the value of name2 now?")
python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill)
ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其餘西歐語言,其最多隻能用 8 位來表示(一個字節),即:2**8 = 256-1,因此,ASCII碼最多隻能表示 255 個符號。
關於中文
爲了處理漢字,程序員設計了用於簡體中文的GB2312和用於繁體中文的big5。
GB2312(1980年)一共收錄了7445個字符,包括6763個漢字和682個其它符號。漢字區的內碼範圍高字節從B0-F7,低字節從A1-FE,佔用的碼位是72*94=6768。其中有5個空位是D7FA-D7FE。
GB2312 支持的漢字太少。1995年的漢字擴展規範GBK1.0收錄了21886個符號,它分爲漢字區和圖形符號區。漢字區包括21003個字符。2000年的 GB18030是取代GBK1.0的正式國家標準。該標準收錄了27484個漢字,同時還收錄了藏文、蒙文、維吾爾文等主要的少數民族文字。如今的PC平臺必須支持GB18030,對嵌入式產品暫不做要求。因此手機、MP3通常只支持GB2312。
從ASCII、GB23十二、GBK 到GB18030,這些編碼方法是向下兼容的,即同一個字符在這些方案中老是有相同的編碼,後面的標準支持更多的字符。在這些編碼中,英文和中文能夠統一地處理。區分中文編碼的方法是高字節的最高位不爲0。按照程序員的稱呼,GB23十二、GBK到GB18030都屬於雙字節字符集 (DBCS)。
有的中文Windows的缺省內碼仍是GBK,能夠經過GB18030升級包升級到GB18030。不過GB18030相對GBK增長的字符,普通人是很難用到的,一般咱們仍是用GBK指代中文Windows內碼。
顯然ASCII碼沒法將世界上的各類文字和符號所有表示,因此,就須要新出一種能夠表明全部字符和符號的編碼,即:Unicode
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。Unicode 是爲了解決傳統的字符編碼方案的侷限而產生的,它爲每種語言中的每一個字符設定了統一而且惟一的二進制編碼,規定雖有的字符和符號最少由 16 位來表示(2個字節),即:2 **16 = 65536,
注:此處說的的是最少2個字節,可能更多
UTF-8,是對Unicode編碼的壓縮和優化,他再也不使用最少使用2個字節,而是將全部的字符和符號進行分類:ascii碼中的內容用1個字節保存、歐洲的字符用2個字節保存,東亞的字符用3個字節保存...
因此,python解釋器在加載 .py 文件中的代碼時,會對內容進行編碼(默認ascill),若是是以下代碼的話:
報錯:ascii碼沒法表示中文
#!/usr/bin/env python print "你好,世界"
改正:應該顯示的告訴python解釋器,用什麼編碼來執行源代碼,即:
#!/usr/bin/env python # -*- coding: utf-8 -*- print "你好,世界"
單行註釋:
# 被註釋內容
多行註釋:
'''被註釋的內容'''
#!/usr/bin/env python #_*_coding:utf-8_*_ #name = raw_input("What is your name?") #only on python 2.x name = input("What is your name?") print("Hello " + name )
輸入密碼時,若是想要不可見,須要利用getpass 模塊中的 getpass方法,即:
#!/usr/bin/env python # -*- coding: utf-8 -*- import getpass # 將用戶輸入的內容賦值給 name 變量 pwd = getpass.getpass("請輸入密碼:") # 打印輸入的內容 print(pwd)
場景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!")
做業二:編寫登錄接口