點擊window python
右鍵,有一個屬性propertesmysql
也是右鍵屬性,這裏就不在說了
#模塊的和模塊的經常使用方法sql
#!/usr/bin/env python #coding:utf-8 def login(username): if username == "alex": print "登陸成功" else: print "登陸失敗" if __name__ == "__main__": user = raw_input('username:') login(user)
print range(10) for item in xrange(10): print item #輸出的時候並無所有建立,他只是一個生成器,說明他沒有寫入內存中 #也就是說每一次建立就只建立一個整數 def foo(): yield 1 re = foo() print re 輸出: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 0 1 2 3 4 5 6 7 8 9 <generator object foo at 0x00000000030B8480>
def fool(): yield 1 yield 2 yield 3 yield 4 #他的執行過程是,第一從從yield 1 執行,下一次直接從yield2開始執行 re = fool() print re #生成了一個生成器,每次遍歷只生成一條 for item in re : print item 結果: <generator object fool at 0x0000000003248480> 1 2 3 4
def ReadLines(): seek = 0 while True: with open('E:/temp.txt','r') as f : f.seek(seek) date = f.readline() if date: seek = f.tell() yield date else: return print ReadLines() for item in ReadLines(): print item
for k,v in enumerate([1,2,3,4]): print k,v 輸出: 0 1 1 2 2 3 3 4
#爲程序增長一個序號 li = ['手錶','汽車','房'] for item in enumerate(li,1): print item[0],item[1] #1爲初始值 1 手錶 2 汽車 3 房
lala = []; def foo(arg): return arg + 100 li = [11,22,33] lala = map(foo,li) print lala 結果: [111, 122, 133] #也可使用 lala.append(item+100) temp = map (lambda arg:arg+100,li)
temp = [] li = [11,22,33] def foo(arg): if arg <22: return True else: return False temp = filter(foo,li) print temp 將li序列中知足條件的返回temp序列中 結果:11
print reduce(lambda x,y:x+y,[1,2,3] ) 結果 6 將前一次的計算結果,傳遞爲第二次計算的第一個參數
a ='8*8' print eval(a) 結果:64
s = 'i am {0},{1}'
print s.format('alex','xxx')
i am alex,xxx數據庫
不容許使用import os 導入,用temp的方法導入編程
temp = 'os' model = __import__(temp) print model print model.path 輸出: <module 'os' from 'D:\pycharm\lib\os.pyc'> <module 'ntpath' from 'D:\pycharm\lib\ntpath.pyc'>
getattr就是在mysqlhelper模塊中查找count函數
Function就等於調用的count函數
相應的有delattr()、hasattr()判斷函數中是否含有相應的模塊json
#使用random生成驗證碼
它使用的是ascall的值進行生成的app
import random print random.random() print random.randint(1,5) #生成1-5之間的隨機整數 print random.randrange(1,3) #生成大於等於1,小於3的隨機數
import random code = [] for i in range(6): if i == random.randint(1,5): code.append(str(random.randint(1,5))) else: temp = random.randint(65,90) code.append(chr(temp)) print ''.join(code)
#注意:join和+=的區別
join效率更高,+=每次都要在內存中請求一塊空間,join只申請一次dom
#!/usr/bin/env python #coding:utf-8 import hashlib hash=hashlib.md5() hash.update('admin') print hash.hexdigest() print hash.digest() 21232f297a57a5a743894a0e4a801fc3 !#/)zW��C�JJ�¬� #md5不能反解
應用實例:(python 和python之間傳輸文件,單機遊戲實時保存)ide
一個程序將列表存在一個程序中,另外一個程序使用這個文件的時候。使用序列化以後在讓另外一個程序去讀取的話,使兩個python程序之間內存數據之間的交換,兩個獨立的進程在內存中看,他們的內存空間不能互相訪問,若是兩個程序之間不只僅只是簡單的列表共享,還想其餘數據交換,數據可能比較複雜。並且硬盤只能存字符串類型的數據,只能經過系列化,存入文件,另外一個程序而後讀取文件的內容,而後將其反序列化以後,在加載到內存中
序列化:把一個對象或(一個列表、字典),把對象經過Python特有的機制序列化,序列化就是以特殊的形式以過二進制的方式給對象加密,而且序列化以後能夠反序列化。函數式編程
import pickle li = ['axex',11,22,'ok','sb'] print pickle.dumps(li) print type(pickle.dumps(li)) 輸出結果: (lp0 S'axex' p1 aI11 aI22 aS'ok' p2 aS'sb' p3 a. <type 'str'> #是一個沒有規則的字符串類型
import pickle li = ['axex',11,22,'ok','sb'] dumpsed = pickle.dumps(li) print type(dumpsed) loadsed = pickle.loads(dumpsed) print loadsed print type(loadsed) <type 'str'> ['axex', 11, 22, 'ok', 'sb'] <type 'list'>
將列表序列化到一個文件中
import pickle li = ['axex',11,22,'ok','sb'] pickle.dump(li,open('E:/temp.pk','w')) result = pickle.load(open('E:/temp.pk','r')) #將文件中反序列化
JSON:一種標準化的數據格式,把不一樣格式的數據JSON化。
##兩種序列化的區別
import json name_dic = {'name':'wupeiqi','age':23} print json.dumps(name_dic) 輸出結果:所有變成字符串 {"age": 23, "name": "wupeiqi"}
爲何多個了U呢,由於在存入內存中使用Unicode,你本事是utf-8,而後反序列化以後又變成Unicode