http://www.cnblogs.com/wupeiqi/articles/4906230.htmlhtml
http://www.cnblogs.com/wupeiqi/articles/5433925.htmjava
電腦語言進化史python
機器語言(二進制)linux
0101010110101011010101101010110101010程序員
彙編 shell
A54 <===> 1010110101編程
C語言windows
JAVA, C#, PHP, PYTHON數組
虛擬機 分配內存ruby
print("Hello world!") >>>Hello world!
http://coolshell.cn//wp-content/uploads/2010/10/EvolutionOfComputerlanguages.png
Python簡介
Python是著名的「龜叔」Guido van Rossum在1989年聖誕節期間,爲了打發無聊的聖誕節而編寫的一個編程語言。(祖師爺還真夠無聊的-_-!)
2016年1月計算機語言排行,Python排行第五
l
python種類
cPython
程序員:掌握一種規則的cPython
jPython, ironPython, rubyPython
程序運行過程
Pyhton > jPython > 中間代碼 > java虛擬機 > 機器碼 >計算機
pypy
pypy > 機器碼 >計算機
PyPy在兼容和效率都有很強大,有興趣能夠看看。
http://www.oschina.net/translate/why-are-there-so-many-pythons
python語言的缺點:
運行速度慢。話說是1.001秒和1.1秒的區別...
代碼不能加密。經濟共享時代,連google都共享代碼,這個就略去吧...
安裝Python
windows:
1、下載安裝包 https://www.python.org/downloads/ 2、安裝 默認安裝路徑:C:\python27 3、配置環境變量 【右鍵計算機】--》【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名爲Path 的一行,雙擊】 --> 【Python安裝目錄追加到變值值中,用 ; 分割】 如:原來的值;C:\python27,切記前面有分號
Linux 更新Python
Linux和Mac系統已經自帶Python
查看默認Python版本 python -V 1、安裝gcc,用於編譯Python源碼 yum install gcc 2、下載源碼包,https://www.python.org/ftp/python/ 3、解壓並進入源碼文件 tar -xvf file.tar 4、編譯安裝 ./configure make all make install 5、查看版本 /usr/local/bin/python2.7 -V 6、修改默認Python版本 mv /usr/bin/python /usr/bin/python2.7 ln -s /usr/local/bin/python2.7 /usr/bin/python 7、防止yum執行異常,修改yum使用的Python版本 vi /usr/bin/yum 將頭部 #!/usr/bin/python 修改成 #!/usr/bin/python2.7
編碼
最小的單元是位(bit),接着是字節(Byte),一個字節=8位,英語表示是1 byte=8 bits 。機器語言的單位Byte。1 KB=1024 Byte; 1 MB=1024 KB; 1 GB=1024 MB ; 1TB=1024 GB。
ASCII(American Standard Code for Information Interchange,美國信息互換標準代碼)
8位:全部英文,字符,數值,ascii
01001010==2**8 = 256
Unicode (Universal Multiple-Octet Coded Character Set) 通用多八位編碼字符集的簡稱,支持世界上超過650種語言的國際字符集。
A=65= '000000000B1000001' 前8個零爲補齊
最少用2個字節(16bit):
1byte(字節) = 8bit =01010101
2byte(字節) = 16bit = 0101010101010101 = 2**16
gbk 漢字 (3字節):
陳:
3 byte (字節) =
010101010101010101010101
UTF -8 Unicode Translation Format,UTF-8是Unicode的其中一個使用方式, 即把Unicode轉作某種格式的意思。
unicode加工:
英文:8位
歐洲:16位
中文:24位
......
轉碼實例 python2.7
1 # -*- coding: -*- 2 3 temp = "李傑" #utf-8 4 #解碼,須要指定原來的什麼編碼 5 temp_unicode = temp.decode('utf-8') 6 #先轉成unicode,再轉成gbk 7 temp_gbk = temp_unicode.encode("gbk") 8 print(temp_gbk)
#-*- conding:utf-8 -*- 適用於 python 2.7
轉碼實例 python 3.X
1 #py3 2 #py3, 自動安裝 utf-8, unicode, gbk 3 #py3,移除了python的unicode類型 4 tmp = "李傑" 5 #自動轉換 utf-8, unicode, gbk 6 temp_gbk = temp.encode('gbk')
unicode, gbk, utf -8 的轉換
py2.7:以unicode爲中間互相轉碼
utf-8 > unicode > gbk
utf-8 解碼unicode編碼gbk
py3.5:系統自帶編碼轉譯
utf -8 > gbk
window上輸出
utf-8 > unicode
Python 入門
python內部執行過程以下:
簡單程序模板(Python2.7)
#!/usr/bin/env python #聲明執行python解釋器 # -*- coding: utf-8 -*- #聲明UTF-8編碼 "This a test module" #注析 import sys import os #模塊導入 debug = True #(全局)變量導入 局部變量可代替全局變量 class FooClass(object): "Foo class" pass def test(): #函數定義 "test function" # modules, function執行 foo = FooClass() if debug: print"run test()" if __name__ == '__main__': #主程序 test()
linux 系統中
.py文件首行 #!/usr/bin/env python 編譯器的位置
Linux終端 ./h.py (須要首行註明 #!/usr/bin/env python)
或 python h.py (啓動python執行程序)
註釋
當行注視:# 被註釋內容
多行註釋:""" 被註釋內容 """
內庫和導入
/python/lib/model.py 內庫文件
import model #在內庫中找到lib.py,將內容替換
建立執行代碼
1. 建立XXX.py文件
使用英文名字路徑
2. 寫代碼
a. 頭部兩行
b. 寫功能代碼
3.執行代碼
a.打開終端
功能鍵+R,CMD
b. python代碼文件路徑
變量
一、聲明變量
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 li = raw_input("Username") li 代指raw_input輸入的內容 4 name = "wupeiqi"
上述代碼聲明瞭一個變量,變量名爲: name,變量name的值爲:"wupeiqi"
變量的做用:暱稱,其代指內存裏某個地址中保存的內容
變量定義的規則:
二、變量的賦值
name1 = "wupeiqi" name2 = "alex"
name1 = "wupeiqi" name2 = name1
1 >>> B = raw_input("raw_input: ") 2 raw_input: 123 3 >>> type(B) 4 <type 'str'> #‘raw_input’輸出的是字符串 5 >>> C = input("input: ") 6 input: 123 7 >>> type(C) 8 <type 'int'>#‘input’輸出的是整數 9 >>>
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 # 將用戶輸入的內容賦值給 name 變量 5 name = raw_input("請輸入用戶名:")#raw_input()只能在python2.x使用 6 7 # 打印輸入的內容 8 print name
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import getpass #導入getpass模塊 5 6 # 將用戶輸入的內容賦值給 pwd 變量 7 pwd = getpass.getpass("請輸入密碼:") 8 9 # 打印輸入的內容 10 print pwd
if 判斷條件:
執行語句……
elif:
執行語句……
else:
執行語句……
#賦值
name = "alex" #一個等號是賦值 #兩個等號的比較 if 1 == 1: print("11111")# 1 == 1爲True,執行本句 else: print("22222")
if 1 != 1:
print("1111")
else:
print("2222")# 1!= 1 爲False,執行本句
1 if True: 2 print("11111") # if爲True將執行本句 3 else: 4 print("22222") 5 6 if False: 7 print("11111") 8 else: 9 print("22222")# if爲False將執行本句
1 inp = raw_input(">>>") 2 3 if inp == "1": 4 print('111')#條件一 5 6 elif inp == "2": 7 print('222')#條件二 8 9 elif inp == "3": 10 print('333')#條件三 11 12 else: 13 print('...')#條件四
if 條件應用
用戶登錄驗證
1 # 提示輸入用戶名和密碼 2 3 # 驗證用戶名和密碼 4 # 若是錯誤,則輸出用戶名或密碼錯誤 5 # 若是成功,則輸出 歡迎,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 "用戶名和密碼錯誤"
name = raw_input("Username: ") pwd = raw_input('Password: ') if name == "alex" and pwd == "123":#判斷用戶輸入name是否等於alex, pwd是否等於123; print ('yes') else: print('no')
根據用戶輸入內容輸出其權限
1 # 根據用戶輸入內容打印其權限 2 3 # alex --> 超級管理員 4 # eric --> 普通管理員 5 # tony --> 業務主管 6 # 其餘 --> 普通用戶
1 #!/usr/bin/env python 2 # -*- coding: encoding -*- 3 4 name = raw_input('請輸入用戶名:') 5 6 7 if name == "alex": 8 print "超級管理員" 9 elif name == "eric": 10 print "普通管理員" 11 elif name == "tony": 12 print "業務主管" 13 else: 14 print "普通用戶"
外層變量,能夠被內層變量使用
內層變量,沒法被外層變量使用
條件 and 和 or
if name == 'alex' or name == 'eric': 只要知足任何一個or的條件,進入當前代碼塊
1 if 條件: 2 代碼塊 3 elif 條件: 4 代碼塊 5 else: 6 代碼塊 7 8 條件 9 True False 10 1>2 n1 > n2 n1 == n2 11 name == 'alex' or name == 'eric' 12 name != 'alex' 13 name == 'alex' and pwd == '123'
while 條件: #條件成立,代碼會一直循環執行 代碼塊 import time while True: print('1') time.sleep(1) #程序在while = True, print('1')一直循環 print('end') n1= True while n1: #n1 = True程序進入循環, print('1') #代碼塊1 time.sleep(1) n1 = False #n1= False程序跳出n1=True的循環執行下面代碼塊 print('end')
while循環
在某條件下,循環執行某段程序,以處理須要重複處理的相同任務。
while 條件: #條件成立,代碼會一直循環執行 代碼塊 import time while True: print('1') time.sleep(1) #程序在while = True, print('1')一直無限循環 print('end')
import time n1= True while n1: #n1 = True程序進入循環, print('1') #代碼塊1 time.sleep(1) n1 = False #n1= False程序跳出n1=True的循環執行下面代碼塊 print('end')
1
end
>>>
break
用於跳出全部循環,而且break下面的代碼不在執行
break原理應用
flag =True, falg = False設定終止循環標示
1 import time 2 3 begin = 1 #begin = 1 #7 begin = 2 4 flag = True #2 5 while flag: #3 6 print('begin')#4 7 if begin == 10:#終止條件 8 flag = False # 跳出 flag = True; while循環,到print('end') 9 begin += 1 #5(begin = 1+1) 10 time.sleep(1) #6 11 12 print('end')
1 begin = 1 2 3 while True: 4 print('begin') 5 if begin == 10: 6 break #break跳出整個循環,而且不執行下面任何代碼 7 begin += 1
continue
終止當前循環,回到循環開始
continue實例
1 while True: 2 print('123') 3 break 4 print('456') 5 6 >>>123
8 while True: #1 #4 9 print('123') #2 #5 10 continue #3 #6 11 print('456') 12 13 >>>123 14 >>>123 15 >>>123 16 >>>123
#練習
#輸出1-10之間的數字 不包含7 start = 1 while True: if start == 7: start += 1 #爲了跳出 start==7的循環無限continue,start+=1 = 8 continue #跳出本次循環,回到while True print(start) if start == 10 #當start == 10時 break #跳出程序循環 start += 1
i = 1
while i <= 10:
if i != 7:
print(i)
i += 1
#練習
1 1 - 100相加(先循環獲取1-100的數,而後再設定) 2 3 (1) 獲取1-100的數字 4 start = 1 5 6 while True: 7 print(start) 8 if start == 100 9 break 10 start += 1 11 12 (2) 13 sum = 0 14 start = 1 15 16 while True: 17 start = 1 18 19 while True: 20 print(start) 21 sum = sum +start 22 if start == 100 23 break 24 start += 1 25 #1+2+3+4+5+6...+100 26 print(sum)