點(diǎn)擊window
創(chuàng)新互聯(lián)從2013年成立,先為辛集等服務(wù)建站,辛集等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為辛集企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
右鍵,有一個(gè)屬性propertes
也是右鍵屬性,這里就不在說(shuō)了
#模塊的和模塊的常用方法
#!/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
#輸出的時(shí)候并沒(méi)有全部創(chuàng)建,他只是一個(gè)生成器,說(shuō)明他沒(méi)有寫(xiě)入內(nèi)存中
#也就是說(shuō)每一次創(chuàng)建就只創(chuàng)建一個(gè)整數(shù)
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
#他的執(zhí)行過(guò)程是,第一從從yield 1 執(zhí)行,下一次直接從yield2開(kāi)始執(zhí)行
re = fool()
print re
#生成了一個(gè)生成器,每次遍歷只生成一條
for item in re :
print item
結(jié)果:
<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
#為程序增加一個(gè)序號(hào)
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
結(jié)果:
[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序列中
結(jié)果:11
print reduce(lambda x,y:x+y,[1,2,3] )
結(jié)果 6
將前一次的計(jì)算結(jié)果,傳遞為第二次計(jì)算的第一個(gè)參數(shù)
a ='8*8'
print eval(a)
結(jié)果:64
s = 'i am {0},{1}'
print s.format('alex','xxx')
i am alex,xxx
不允許使用import os 導(dǎo)入,用temp的方法導(dǎo)入
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函數(shù)
Function就等于調(diào)用的count函數(shù)
相應(yīng)的有delattr()、hasattr()判斷函數(shù)中是否含有相應(yīng)的模塊
#使用random生成驗(yàn)證碼
它使用的是ascall的值進(jìn)行生成的
import random
print random.random()
print random.randint(1,5)
#生成1-5之間的隨機(jī)整數(shù)
print random.randrange(1,3)
#生成大于等于1,小于3的隨機(jī)數(shù)
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和+=的區(qū)別
join效率更高,+=每次都要在內(nèi)存中請(qǐng)求一塊空間,join只申請(qǐng)一次
#!/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不能反解
應(yīng)用實(shí)例:(python 和python之間傳輸文件,單機(jī)游戲?qū)崟r(shí)保存)
一個(gè)程序?qū)⒘斜泶嬖谝粋€(gè)程序中,另一個(gè)程序使用這個(gè)文件的時(shí)候。使用序列化之后在讓另一個(gè)程序去讀取的話,使兩個(gè)python程序之間內(nèi)存數(shù)據(jù)之間的交換,兩個(gè)獨(dú)立的進(jìn)程在內(nèi)存中看,他們的內(nèi)存空間不能互相訪問(wèn),如果兩個(gè)程序之間不僅僅只是簡(jiǎn)單的列表共享,還想其他數(shù)據(jù)交換,數(shù)據(jù)可能比較復(fù)雜。而且硬盤(pán)只能存字符串類型的數(shù)據(jù),只能通過(guò)系列化,存入文件,另一個(gè)程序然后讀取文件的內(nèi)容,然后將其反序列化之后,在加載到內(nèi)存中
序列化:把一個(gè)對(duì)象或(一個(gè)列表、字典),把對(duì)象通過(guò)Python特有的機(jī)制序列化,序列化就是以特殊的形式以過(guò)二進(jìn)制的方式給對(duì)象加密,并且序列化之后可以反序列化。
import pickle
li = ['axex',11,22,'ok','sb']
print pickle.dumps(li)
print type(pickle.dumps(li))
輸出結(jié)果:
(lp0
S'axex'
p1
aI11
aI22
aS'ok'
p2
aS'sb'
p3
a.
<type 'str'>
#是一個(gè)沒(méi)有規(guī)則的字符串類型
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'>
將列表序列化到一個(gè)文件中
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:一種標(biāo)準(zhǔn)化的數(shù)據(jù)格式,把不同格式的數(shù)據(jù)JSON化。
##兩種序列化的區(qū)別
import json
name_dic = {'name':'wupeiqi','age':23}
print json.dumps(name_dic)
輸出結(jié)果:全部變成字符串
{"age": 23, "name": "wupeiqi"}
為什么多個(gè)了U呢,因?yàn)樵诖嫒雰?nèi)存中使用Unicode,你本事是utf-8,然后反序列化之后又變成Unicode
當(dāng)前標(biāo)題:python內(nèi)置函數(shù)和序列化
文章分享:http://jinyejixie.com/article2/iicgoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、響應(yīng)式網(wǎng)站、商城網(wǎng)站、網(wǎng)站排名、服務(wù)器托管、品牌網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)