oldboy_09_03day
1、split 分割
2、內置函數 ?
__name__ ------- 主動執行還是被其他程序調用; 本程序內 __name__ 值為 __main__ ;其他程序調用時,__文件名__
?__file__ ======當前文件路徑、是文件的相對路徑
__doc__ ======當前程序說明文檔
3、函數 def、形式參數
?
def test( a,*b):
? ? print a , b
*b形參數 不限制參數個數 ---
test('1', '2','3')
?
* 代表可以參數一個元組(2,3)
?
def test1(a,b,c):
 print a,b,c
test1('1', '2', '3')
?
def test2(a,b,*c):
 print a,b,c
?
d=('1','2','3')
?
f=test2('4', '5',d)
k={'a':1,'b':2,'c':3}
?
def test3(a,b,**c):
 print a,b,c
test3(31, 32,c='1',d='2')
def test(a,**b)
** 代表可以傳入 一個字典;
def 默認值
def test5(a,b='test5')
print a,b
4、函數局部變量
test1='ceshi'?
def a():
print test1
def b():
test1='insite ceshi'
def c():
golbal test1 #引用全局變量 test1
?
testoutsit='outsite_ceshi'
def intest():
 print testoutsit
def intest1():
 testoutsit='insitetest'
 print testoutsit
def intest2():
 global testoutsit
 testoutsit='changeinstie'
 print testoutsit
intest()
intest1()
intest2()
print testoutsit
?5、return
def back():
? for i in range(20):
? ? ? print i
? ? ? if i==10 :
? ? ? return i
? else:
? ? ? print i
a=back()
if a==10:
print 'return ok!'
?return 整個函數跳出函數執行
得到一個數值,或者返回一個結果
一般return 寫在結尾;
#a=11>6 ? True:False ? (三步運算符)
?ceshi='tr' if 2>1 else 'fl'?
print ceshi
和 if ,else ?一樣?
if ?11>6:
a=Trun
else:
a=False
?=================
6.1 lambda 函數
lambda x,y:x+y
6.2 with---as :
with ? ?as 方便打開文件 ,給了文件打開;和close,
with open (file.txt ,'r') as f: ? # with open 做了兩個動作 1、打開文件 2、file.close?
?
?
?
6.3、bool ?布爾值 ;python 內置函數
print bool('') - -------- print 為 flase
print bool('date') ?----- print 為True?
為空 布爾值 都為假;不為空 ?布爾值都為真
?
6.4 yield 迭代器
保存函數的執行狀態;執行一半跳出;后可再進行執行
?大數據讀取;
def readfile():
 tel=0
 while True:
 with open('E:\licence.py','r') as f:
 f.seek(tel)
 date=f.readline()
 if date:
 tel=f.tell()
 yield date
 else:
 return
files=readfile()
date1=files.next()
date2=files.next()
date3=files.next()
date4=files.next()
date5=files.next()
print date1,date2,date3,date4,date5
print '=================='
date1=files.next()
date2=files.next()
date3=files.next()
date4=files.next()
date5=files.next()
print date1,date2,date3,date4,date5
print '====================='
for i in files:
 print i
?
?
?
?
6.5 range 、xrange效率更高 (xrange 也是迭代器,一行一行的返回,只記錄開始和結尾)
?
?
?
6.6 內置函數
1、dir()
顯示當前文件中所有變量名稱
2、vars()
當前文件中所有變量名稱及值
3、reload() 和import 都是引入別的文件;
reload 重新加載模塊 ;import 只執行一次;
import ??
import
reload
reload
當配置文件被修改;不重啟服務時,重新reload
4、id()
id(2)或者 id(c)
打印的是2或者c在內存中的地址
5、cmp 進行比較
cmp(2,10)小于 返回 ‘-1’
cmp (10,2) 大于 返回 ‘1’
cmp (10,10) ?等于 返回 ‘0’
6、abs 絕對值
abs(-1)
7、divmod()除 取商和余數
divmod(10,4)
8、max()
max 列表也可以取最大
max([1,2,3,4,6,20]) max(1,2,3,)
9、min () 比較最小
10、sum() 求和
11、pow()冪
pow(2,4)2的4次方
12、len()統計字符串長度
13、all() ?全&,全部為真,才為真
#web 前端登錄 ?user pass info 全為真;為真
print all('1','c',none)
14、any() 只要有一個為真,就為真
print any('1','c',none)
15、chr()ASICC 碼對應的位置
16、ord()asics 碼對應的數值
17、hex()轉化為16進制 oct()八進制bin()二進制
0X是16進制的開始
0 是8進制
0b 是二進制的開始
18、.format?
?
19、zip 把列表列表壓縮到列表中
?x=[1,2,3]
y=[4,5,6]
z=[7,8,9]
zip(x,y,z)
20、map()
lamdba 匿名函數 可與定義 lambda x:x+1 ; 定義匿名函數x,函數意義 x+1 ;ruturn x+1值
map(lambda x:x+1,[3,4,5])?
def fun(x):
 return x+1
a=fun(2)
print type(a)
print map(fun,[20,30])
map 遍歷列表[3,4,5] 添加到函數 jia的中進行處理,并返回
引用函數是引用函數的名字
def fun1(x):
 return x+1
c=[1,2,3,4,5,6,7,8,9,10] 
a=fun1(2)
print type(a)
print 'this is map %s'%(map(fun1,c))
print 'this is map lambda %s'%(map(lambda x:x+1, c)) 
22、filter()
filter (lamdba x:x>5 ,[3,4,5,6,7,8] )
def fun2(a):
 return a>6
print 'this is filter %s' %(filter(fun2,c))
print 'this is filter lambda%s'%(filter(lambda x:x>5, c))
只是過濾;
23、reduce()累計 加入下次計算
reduce(lambda x,y:x+y ,[1,2,3,4,5,6])
def fun3(x,y):
 return x+y
print 'this is reduce %s' % (reduce(fun3, c))
print 'this is reduce lambda %s'%(reduce(lambda x,y:x+y,c))
?
?
只能傳進去2個值
24、random 隨機驗證碼
練習
25、MD5 加密
import md5
ceshi=md5.new()
print dir(md5) 查看md5的方法
print vars(md5) 查看md5 的方法和值
驗證是,md5 加密一次 再去數據庫驗證
import md5
ceshi=md5.new()
#print dir(md5)
#print vars(md5)
ceshi.update('userpasswd')
print ceshi.hexdigest()
?
26、re python正則表達式
import re
dir(re)
a=‘ceshi,name,dfsdndsfsdnn’
a1=re.match(‘c.*’,a)'.' 代表任意字符 ‘*’ 代表出現0次或者最多 ?# match 必須是字符串 開頭匹配
print a.group
b=re.search('e.*',a) 整個字符串檢索一遍;進行匹配
c=re.search('e,*d',a) 匹配從e到d?
d=re.findall('n.',a) 所有的全部查找 防到一個列表中;
f=re.split ('n.',a) 字符串 按照表達式進行分割;剩下的放到一個表中
g=re.sub(‘n.’,'ww',s)查找后替換 查找n 替換為ww;在s 中查找
k=h[a-z]o
k1=h[a|b|c]0 匹配 hao 或者hbo或者hco ? ‘|’ 豎線 是或的意思
正則表達式獲取網址、ip、手機號、郵箱
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import re
import sys
def getIPAddFromFile(fobj):
 regex = re.compile(r'\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b', re.IGNORECASE)
 ipadds = re.findall(regex, fobj)
 print ipadds
 return ipadds
def getPhoneNumFromFile(fobj):
 regex = re.compile(r'1\d{10}', re.IGNORECASE)
 phonenums = re.findall(regex, fobj)
 print phonenums
 return phonenums
def getMailAddFromFile(fobj):
 regex = re.compile(r"\b[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}\b", re.IGNORECASE)
 mails = re.findall(regex, fobj)
 print mails
 return mails
def getUrlFromFile(fobj):
 regex = re.compile(r"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+", re.IGNORECASE)
 urls = regex.findall(fobj)
 print urls
 return urls
def main(FilefilePath):
 fobj = open(FilefilePath, 'rb').read()
 urllist = getUrlFromFile(fobj)
 mailList = getMailAddFromFile(fobj)
 phoneNum = getPhoneNumFromFile(fobj)
 ipaddlist = getIPAddFromFile(fobj)
if __name__ == '__main__':
 main(sys.argv[1])
?
======================
rn=r'[0-9]+(?:\.[0-9]+){3}' #匹配IP地址?
?
26、序列化和json
內存中的數據保存
字典等不能直接寫入到文件中
序列化 ?內存中的類型轉化為字符串存儲到硬盤;
讀入中通過序列化讀取回來
?
import pickle
dir(pickle)
pickle.dump
pickle.load
f=file('dump.txt','w')
import os
import pickle as p
c={'a':1,'b':2,'c':3}
#with open('dumpfile','wb') as f:
f=open('dumpfile','w')
p.dump(c,f)
f.close()
e=open('dumpfile','r')
c=p.load(e)
print c
print os.system('dir')
======================
內存數據交換 通過pickle.dumps;發送過去;對端pickle.load
?
json 通用存儲;各種編程語言都能讀取;內存數據轉化為字符串
json 只能序列化常用的數據類型 (字符串、列表、字典、元組、等; ) python 的類 、函數、等不能被序列化
?
unicode 和 utf-8 的相互轉換
s='abc'
print type(s)
s=u'abc'
print type(s)
s=s.encode('utf-8')
print type(s)
?
轉載于:https://www.cnblogs.com/zhzhao/p/4525505.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的oldboy_09_03day的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 无线路由器网络测试软件,简单快速测试家里
 - 下一篇: Unity TextMeshPro显示中