內置函數
1.取絕對值的內置函數: abs
print(bas(-9)) #-9的絕對值會被打印出來
2. 處理可迭代對象的函數(一):all
name = ("Tom","Jack","Lily")
print(all(name)) #因name這個變量定義的可迭代對象是一個正確的列表
因此實print執行會返回Truse,只有可迭代對象全爲真,
返回結果才爲True.
3.處理可迭代對象函數(二):any
name = ("Tom","Jack","Lily",[]) #這自己並非一個列表
print(any(name)) #返回結果會是True,由於any函數對對象處理是或的關係
只有列表中的元素全爲假,返回值才爲假
4.將十進制轉換成二進制的函數 bin()
num = 10
print(bin(num) #0b1010 0b意爲轉換的是二進制形式
5.將十進制轉換成八進制的函數 oct()
print(oct(10)) #這是一種簡寫形式,直接轉換,o012
6.將十進制轉換成十六進制的函數:hex()
print(hex(19)) #19轉換成十六進制形式打印
7.對結果進行判斷的函數 bool()
print(bool(2>3)) #返回False,能夠在函數體中加入bool
8.將字符類型轉換成十六進制位的字節碼後並打印
print(bytes("jiahb",encoding="utf-8")) #在轉換的最後加上編碼類型,gbk utf-8
9.將十六進進制字節碼轉換成字符串(或漢字),反編譯
print(str(bytes("jiahb",encoding="utf-8"))) #最後打印出的依然是alex,反編譯了。
10.判斷函數是否能夠被調用 callable
def f1():
pass
f2=(121)
print(callable(f1)) #判斷一個是函數是否能夠被調用,其實就是判斷一個函數是不是完整的
11.將數字轉換成ASSIC碼錶中對應的值 chr
print(chr(1)) #還有ASSIC碼錶中可能對應了一個空的值,即沒有返回值。
12.將字符串編譯成python代碼 complile()
name = "jiab"
b = compile(name,'','','exec')
exec(b) #使用compile模塊下的exec方法對name這個變量定義的字符串進 行編譯,編譯結果是沒有返回值的
print(eval("8*8")) #打印8*8的計算結果,可是有返回值
print(exec("8*8")) #沒有返回值,只會打印下None
13.快速查看模塊提供了哪些功能 dir()
a. print(dir(compile)) #查看compile這個內置函數的基本功能
也能夠查看導入模塊的基本功能信息
b.import json
print(dir(json)) #查看json模塊的基本功能
14.求兩個數的商和餘數 divmod()
num = divmod(12,8)
print(divmod)
print(num[0]) #取商
print(num[1]) #取餘數
15.判斷對象是不是某個類的實例 isinstance
name = "jiahb"
print(isinstance(s,str)) #建立的對象"jiahb"是不是str這個類的實例,是則True,不是則False.
16.查看建立變量的內存地址 id()
name = "jiahb"
print(id(name)) #返回一串數字,即內存的地址
17.將建立的對象轉換成浮點型 float()
name = "12"
print(float(name)) #轉換成12.0
18. 將對象轉換成hash值 hash()
name = "jiahb"
print(hash(name)) #求定義的變量的一個哈希值,並將其看成key進行存儲(這點兒沒太明白)
19.建立一個迭代器 iter() 後續再加
20.查看python建立變量的字符串的長度,也能夠按字節查看 len()
python3默認是按字符查看,pyhon2.7只能按字節查看
name = "jiahb"
print(len(name))
python3.0按字節查看
b = bytes(name,encoding='utf-8')
print(len(b)) #將轉換成的字節數打印出來
21.對多個數字進行求和運算 sum()
print(sum(11,22,33,44)) #多個數字累加求和
22.求若干數字中最大最小值 max() min()
print(max(11,22,33,44))
print(min(11,22,33,44))
23.求某個數的指數 pow()
print(pow(2,10)) #2**10會打印
24.面向對象中會用到的內置函數 repr()
25.求序列的反轉 reverse()
注:reverse這個反轉函數只能處理列表,不能處理元組
num = [11,22,33,44]
num.reverse()
print(num)
26.把一個字母轉換成數字 ord()
print(ord("a")
27.求四捨五入的數 round()
print(round(float(1.9)) #返回2
28.slice 切片功能 python3.0新加功能
29.循環是取位置對應符號enumerate()
dic={'name':'egon','age':18}
for i in enumerate(dic):
print(i)
結果 : (0,'name')(1,'age')
salaries={
'egon':3000,
'alex':100000000,
'wupeiqi':10000,
'yuanhao':2000
}
def func(x):
return salaries[x]
print(max(salaries,key=lambda x:salaries[x]))
min
zip
映射 map()
map()函數接收兩個參數,一個是函數,一個是序列,map將傳入的函數依次做用到序列的每一個元素,並把結果做爲新的list返回
map:映射
l=[1,2,3,4]
m=map(lambda x:x**2,l)
print(list(m))
names=['alex','wupeiqi','yuanhao']
print(list(map(lambda item:item+'_SB',names)))
reduce:合併
from functools import reduce
res=0
for i in range(100):
res+=1
print(reduce(lambda x,y:x+y,range(100),100))
filter:過濾
names=['alex_sb','yuanhao_sb','wupeiqi_sb','egon']
print(list(filter(lambda name:name.endswith('_sb'),names)))
sorted
l=[1,2,4,9,-1]
print(sorted(l)) #從小到大
print(sorted(l,reverse=True)) #從大到小
匿名函數:
關鍵字
lambda
表示匿名函數,冒號前面的
x
表示函數參數。
匿名函數有個限制,就是隻能有一個表達式,不用寫
return
,返回值就是該表達式的結果。
用匿名函數有個好處,由於函數沒有名字,沒必要擔憂函數名衝突。此外,匿名函數也是一個函數對象,也能夠把匿名函數賦值給一個變量,再利用變量來調用該函數:
範例:
l=[1,2,3,4]
m=map(lambda x:x**2,l)
print(list(m))
names=['alex','wupeiqi','yuanhao']
print(list(map(lambda item:item+'_SB',names)))
範例:活用列表解析
with open('goods',encoding='utf-8') as f:
# for line in f:
# l=line.split()
# goods_info.append({'name':l[0],'price':l[1],'count':l[2]})
goods_info=[{'name':line.split()[0],'price':float(line.split()[1]),'count':int(line.split()[2])} for line in f \
if float(line.split()[1]) > 3000]
print(goods_info)