

1、isinstance 判斷變量的數據類型

temp = "asdfsdfs" r = isinstance(temp, list) print(r)案例:
2、
python函數傳參的時候是傳引用 ----新浪面試題
java,c#等是在ref out在內存中在創建一份值
3、lambda用法:

def f1():
return 123
f2 = lambda :123
r1 = f1()
r2 = f2()
print(r1,r2)
案例:

def f3(a1,a2):
return a1 + a2
f4 = lambda a1,a2: a1 + a2
r3 = f3(1,2)
r4 = f4(3,4)
print(r3,r4)
方法2:
1、abs--取絕對值

i = abs(123) print(i) i = abs(-123) print(123)案例:
2、all 循環參數,如果每個元素都為真,那麼all的返回值都為真

由於判斷真的太多,所以判斷假的就可以了
i =all(["",(),{},0,None,"123",])
print(i)
結果:False
案例:
3、any 只要有一個為真,則為真

i =any(["",None,(),{},123])
print(i)
結果:False
案例:
4、
bin() # 二進制 oct() #八進制 int() #十進制 hex() #十六進制

i = int('0b11',base=2)
print(i)
i = int('11',base=8)
print(i)
i = int('0xe',base=1t6)
print(i)
案例:
5、chr 和 ord和bytes

首先字符串轉字節
bytes("xxxx",encoding="utf-8")
其次
c = chr(65) 返回數值表達式值為編碼的字符
print(c)
在其次
---將ASCLL碼值轉換為字符
d = ord("a") ---必須是字符串才可以
print(d)
案例
6、callable檢查對象object是否可以調用

f1 = 123 r = callable(f1)案例
7、dir 查看類型的幫助文檔方式

help()效果一樣 li = [] print(dir(li))案例
8、divmod 除商得余數---例如分頁

a = 10 / 3 print(a) r = divmod(10,3) print(r) 結果: 3.33333335 (3,1)案例:
9、eval -----強制不轉換輸入類型的格式

ret = eval("1 + 3")
print(ret)
結果:4
案例
10、exec ----執行py代碼---沒有返回值

exec("for i inrange(10): print(i)")
結果:
0
1
2
3
4......
案例
11、filter (過濾)

def f1(x):
if x > 22:
return True
else:
return False
---------------
return x > 22 -----------第二種簡寫方法
ret = filter(f1,[11,22,33,44])
案例一

ret = filter(lambda x: x >22, [11,22,33,44])
for i in ret:
print(i)
lambda寫法
12、map 無論是map還是filter,得到的結果都是可迭代的對象,迭代器的實例

def f1(x):
if x % 2 == 1:
return x + 100
else:
return x
ret = map(f1, [1,2,3,4,5])
ret2 = map(lambda x: x + 100if x % 2 == 1 else x ,[1,2,3,4,5])
print(ret)
for i in ret :
print(i)
案例一

def comp(y):
c = y > 11
return c
ret1 = map(comp, [1,2,4,11,22, 33])
for i in ret1:
print(i)
filter和map區別

# ret2 =filter(comp,[1,2,4,11, 22, 33]) # for i in ret2: # print(i)filter
13、max()最大數 min() 最小數

li = [11,22,123,1] r = max(li) print(r) a = min(li) print(a)案例
14、iter 迭代器 next輸出迭代器的下一個元素

obj =iter([11,22,33,44]) 創建迭代器對象 print(obj) r1 = next(obj) 輸入迭代器的下一個元素 print(r1) r2 = next(obj) print(r2)案例
15、pow(x,y) ----就是求x的y次方

i = pow(2,100) print(i)案例
16、zip ---意思就是取兩個變量中索引相對應的值,,個人理解

li1 = [11,22,33,44]
li2 =["a",'VV',"c","E"]
r = zip(li1,li2)
print(r)
for i in r :
print(i)
案例
17、globals locals
聲明全局變量和局部變量

a = 1
def f(x):
global a
a = 2
c = x + a
print(c)
f(3)
print(a)
案例
18、round用法---返回浮點數x的四捨五入值

round(80.2332434, 2) 結果:80.23案例
(1).def close(self,*args,**kwargs)關閉文件
(2).def fileno(self,*args,**kwargs) 文件描述符
(3).def flush(self,*args,**kwargs) 刷新文件內部緩沖區(就是可以寫入磁盤)

f = open("ha1.log",'w')
f.write(bytes("不穿",encoding:utf-8))
f.flush() 先注銷這句,然後知行,用下面代碼查看,然後再
input("adf:") 用這句上flush這句在看,
View Code

with open("ha1.log",'r') as f:
a = f.read()
print(a)
常用方式-我最喜歡的方式
(4).def isatty(self,*args,**kwargs) 判斷文件是否是同意tty設備
(5)def read(self,*args,**kwargs)讀取指定字節數據
(6)def readable(self,*args,**kwargs)是否可讀
with open("ha1.log",'r') as f:
a = f.readable()
print(a)
(7)def readline(self,*args,**kwargs)僅讀取一行數據
with open("ha1.log",'r',encoding="utf-8") as f: ----注意這個地方要寫字符集編碼
f.seek(0)
a = f.readline()
print(a)
(8)def seek(self,*args,**kwargs)指定文件中指針位置
(9)def seekable(self,*args,**kwargs)指針是否可操作
(10)def tell(self,*args,**kwargs)獲取指針位置
(11)def truncate(self,*args,**kwargs)截取數據,進保留之前數據(3.5以後會先保存在內存中,2.7則會刪除)
line = fo.readline()
print ("Read Line:%s" % (line))
print(fo.tell())
# Now truncate remainingfile.
fo.truncate(8)
fo1 =open("foo.txt", "w")
line = fo.readlines()
print(fo.tell())
print ("Read Line:%s" % (line))
(12)def writable(self,*args,**kwargs)是否可寫
(13)def write(self,*args,**kwargs)寫內容
(1)、只讀,r

f = open("路徑文件","r")
f.write("asdfasdf")
f.close()
案例
(2)、w只寫模式【不可讀;文件不存在則創建;存在則清空內容】

f =open("ha1.log",'a')
a1 = f.tell() ---查看指針位置
print(a1)
f.write("nini") ----如果文件存在清空後出現”nini“
a = f.tell()----在查看指針
print(a)
f.seek(0)
#c = f.read() ----不可讀
#print(c)
f.close() -----------關閉
#print(c)
案例
(3)、x 不可讀,不存在則創建,存在則報錯

f =open("ha3.log",'x')
a1 = f.tell()
print(a1)
f.write("nini")
a = f.tell()
print(a)
f.seek(0)
#c = f.read() ---=不可讀
#print(c)
f.close()
案例
(4)、a 不可讀,不存在則創建,存在則只追加

f =open("ha3.log",'a')
a1 = f.tell()
print(a1)
f.write("cccc")-----上面已經寫入了"nini " ,存在則只追加內容
a = f.tell()
print(a)
f.seek(0)
#c = f.read()
#print(c)
f.close()
案例
(1)、r+ 如果文件不存在無法自動創建寫入,而且主意字節轉換

f =open("ha3.log",'r+',encoding="utf-8") --------注意文件和編碼
a1 = f.tell()
print(a1)
f.read()
# print(a2)
a3 = f.tell()
print(a3)
f.write("我吃了午飯")
a = f.tell()
print(a)
#f.seek(0)
#c = f.read()
#print(c)
f.close()
案例
(2)、w+ ,如果文件存在則清空,如果不存在則創建

f =open("ha3.log",'w+',encoding="utf-8")
a1 = f.tell()
print(a1)
f.read()
# print(a2)
a3 = f.tell()
print(a3)
f.write("我沒吃午飯嗎?")
a = f.tell()
print(a)
f.seek(0)
c = f.read()
#print(c)
f.close()
案例
(3)、x+ 存在則報錯 ,就不測試了
(4)、a+ 不存在則創建,存在則末尾追加
(1)、rb 現在自動轉換成了返回的二進制的值,用16進制表示

f =open("ha3.log",'rb')
a1 = f.tell()
print(a1)
a = f.read()
print(str(a,ending="utf-8")) ----------轉換的時候,需要str,然後再給參數。這是需要注意的地方
a2 = f.tell()
print(a2)
f.close()
案例-重點
(2)、wb 不可讀

f =open("ha3.log",'wb')
a1 = f.tell()
print(a1)
f.write(bytes("啦啦啦啦",encoding="utf-8"))
a2 = f.tell()
print(a2)
f.close()
案例
(3)xb
(4)ab
為了避免打開後忘了關閉,可以通過管理上下文,即:
with open("log",'r',encoding="utf-8) as f ,open("log2","w",encoding="utf-8") as f2:
for line in f1:
f2.write(line)
在python2.7之後,with又支持同時對多個文件的上下文進行管理