4-1 內置函數和匿名函數

 一 內置函數python

1 輸出 print函數

print(1,2,3,4,5,sep=';',end='| ') ##sep是以;分開每一個數字,end是以|結尾的spa

2 查看內置屬性設計

##dir查看某對象的屬性及其方法code

# import osorm

# print(dir(os))對象

 

3 數學相關運算的blog

3.1 abs 計算絕對值排序

# print(abs(-9))ip

3.2 divmod 能夠返回商和餘數

# print(divmod(9,4))

 

3.3 round 小數精確

# print(round(3.1415926,3)) #逗號後面能夠指定保留幾位小數,而且會四捨五入

 

3.4 pow 冪運算

# print(pow(2,3,5)) #(2**3)%3 就是2的三次方,對5取餘

3.5 sum 求和

# print(sum ([1,2,3,4]))

# print(sum(range(1,10)))

#print(sum([1,2,3,4,5],10))  ##1到5求完和以後,而後再加10,不加默認是0

 

3.6 max求最大值(重要)

print(max(1,2,3,6))

print(max(range(1,10)))

 

3.7min 求最小值(重要)

1 # print(min(-1,0,3,4))
2 
3 # print(min(-1,0,3,4,key=abs)) ##算完絕對值以後,在返回最小值
4 
5 # def func(num):
6 
7 # return num%2
8 
9 # print(min(-2,3,-4,key=func))

 

 

3.8 反序

 1 ##reverse  ##直接返回結果
 2 
 3 # ret = [1,2,3,4,5]
 4 
 5 # ret.reverse()
 6 
 7 # print(ret)
 8 
 9 
10 #reversed  ##返回一個可迭代對象
11 
12 # ret1 = reversed(ret)
13 
14 # ret2 = reversed((1,2,3,4,5))
15 
16 # print(ret)
17 
18 # print(list(ret1))

 

4 字符串相關的

1 # eval和exec
2 
3 # eval('print(123)')
4 
5 # exec('print(123)')
6 
7 # print(eval('1+2-3*20/(2+3)'))##有返回值
8 
9 # print(exec('1+2-3*20/(2+3)')) ##執行了但沒有返回值

 

 

5 format格式化顯示

#字符串能夠提供的參數,指定對齊方式,<是左對齊, >是右對齊,^是居中對齊

# print(format('test', '<20'))

# # print(format('test', '>20'))

# print(format('test', '^20'))

 

6##ord 字符串按照unicode轉數字

# print(ord('a'))

 

7#chr數字按照unicode轉字符

# print(chr(97))

 

8##repr用於%r格式化輸出

# print(repr(1))

# print(repr('1'))

 

9 enumerate 枚舉

 1 # ll=['a','b','c']
 2 
 3 # for i in ll:
 4 
 5 # print(ll.index(i),i)
 6 
 7 第二種寫法
 8 
 9 # for i,v in enumerate(ll):
10 
11 # print(i,v)

 

10 zip返回一個迭代器,拉鍊就是按順序讓其一一對應

 
 
ret = zip([1, 2, 3, 4, 5], ('a', 'b', 'c', 'd'), (4, 5,0))  # 拉鍊方法

print(ret)

for i in ret:
print(i)
 

11filter 重要  用於過濾,好比大於幾的數字,或者偶數,奇數之類的

 
 
lst = [1, 4, 6, 7, 9, 12, 17]
def func(num):
if num % 2 == 0: return True

filter(func, lst) ##分別把lst裏面的值傳給num,而後取出除2等於0的數字

for i in filter(func, lst):

print(i)


##第二種方法
g = (i for i in lst if i%2 == 0)
for i in g:
print(i)
 

 

12map 求1到10的平方 重要  主要用於計算

 
 
def func(num):

return num**2
for i in map(func,range(10)):

print(i)
 

13 排序

##sort 排序(這個只是個方法,不是函數)

1 # l = [1,-4,-2,3,-5,6,5]
2 
3 # l.sort(key=abs) ##按照絕對值來排序的
4 
5 # print(l)
打印結果是
[1, -2, 3, -4, -5, 5, 6]

##sorted排序(重要)

1 # l = [1,-4,-2,3,-5,6,5]
2 
3 # new_l = sorted(l,key=abs,reverse=True) ##按照絕對值,而且反序來排序的
4 
5 # print(new_l)
打印結果是
[6, -5, 5, -4, 3, -2, 1]

 二 匿名函數(lambda)

匿名函數:爲了解決那些功能很簡單的需求而設計的一句話函數

 1 #普通函數寫法:
 2 def calc(n):
 3     return n**n
 4 print(calc(2))
 5 
 6 
 7 #換成匿名函數
 8 calc = lambda n:n**n
 9 print(calc(2))
10 
11 打印結果都是4

匿名函數格式

函數名 = lambda 參數 :返回值

#參數能夠有多個,用逗號隔開
#匿名函數無論邏輯多複雜,只能寫一行,且邏輯執行結束後的內容就是返回值
#返回值和正常的函數同樣能夠是任意數據類型

2.1例子
 1 ##第一種普通函數寫法:
 2 # def func(num):
 3 #      return num ** 2
 4 #
 5 # for i in map(func,range(10)):print(i)
 6 
 7 
 8 ##第二種寫法:匿名函數
 9 
10 # for i in map(lambda num : num ** 2 ,range(10)):print i
11 
12 
13 ##打印結果是0-9,9個數字的平方

 

#例子
現有兩元組(('a'),('b')),(('c'),('d')),請使用python中匿名函數生成列表[{'a':'c'},{'b':'d'}]

第一種寫法:普通函數
# def func(t):
#     return {t[0]:t[1]}
# ret = map(func,zip((('a'),('b')),(('c'),('d'))))
# print(list(ret))

##第二種寫法:匿名函數
# ret = map(lambda t:{t[0]:t[1]},zip((('a'),('b')),(('c'),('d'))))
# print(list(ret))
相關文章
相關標籤/搜索