1. 程式人生 > >day17 Pyhton學習 內建函式繼續

day17 Pyhton學習 內建函式繼續

1. locals 本地作用域/區域性作用域  會隨著位置的改變而改變

2.globals 全域性作用域   永遠不變,永遠是全域性

3.complex:複數 實數(有理數和無理數)

某一個數的平方是-1 ,那麼這個數就是一個虛數的基礎單位 j
# 複數 = 實數+虛數 = a+bj
# 選擇題 :(對你的數學有要求的公司都會考)
    # 複數不能比較大小
    # 共軛複數 : a+bj 和 a-bj是一對共軛複數
    # a+bj 和 a+bJ都是複數

4.bin oct hex

# a = 19
# # 0 1 2 3 4 5 6 7 8 9 A B C D E F 10
# # 256 十進位制 # print(bin(a)) # 0b100000000 0b代表二進位制,100000000 = 256 # print(oct(a)) # 0o400 0o代表八進位制,400 = 256 # print(hex(a)) #十六進位制

5.abs 求絕對值,正數的絕對值是正數,負數的絕對值也是正數

6.divmod 商餘函式

print(divmod(2520,25))#(100, 20)
print(divmod(35,25))#(1, 10)
print(divmod(8,3))#(2, 2)

7.round(小數,保留幾位小數)    小數精確

ret = round(2.3258358)
print(ret)#2 ret = round(2.3253358,2) print(ret)#2.33 ret = round(2.3253358,3) print(ret)#2.325 ret = round(0.5) print(ret)#0

8.pow(x,y,z=1) 冪運算/冪餘運算  x的y次方%2

print(pow(2,3))#8
print(pow(3,2))#9
print(pow(5,3,2))#1
print(pow(4,2,2))#0
print(pow(4,3,2))#0

9.sum(可迭代的數字集,start),start從哪個數開始加

print
(sum((1,2,3,4))) print(sum([1,2,3,4])) print(sum(range(10))) print(sum((i**2 for i in range(5)))) print(sum((1,2,3,4))) print(sum((1,2,3,4),10)) print(sum((1,2,3,4),30))

10.min/max(iterable/*args,key) key是一個函式的記憶體地址,key做的事情就是根據你對每一項資料大小的需求來排序

print(min(1,2,3))
print(min((1,2,3)))
print(min((1,2,3),(4,5,6)))
print(min((7,2,3),(4,5,6)))
def func(n):   # n = 2,3,4,7
    return n%6 # 2,3,4,1
ret = min(2,3,4,7,key = func)
print(ret) #7
l = [{'name1':10},{'name2':500}]
def func(dic):
    for k in dic:
        return dic[k]
# def max(iter,key = None):#自己定義的max函式
#     ret=0
#     max_value = 0
#     if key:
#         for i in iter :
#             if key(i)>max_value:#key(i)是股票的價格
#                 max_value = key(i)
#                 ret = i
#     return ret
# def min(iter,key = None):#自己定義的min函式
#     ret=0
#     min_value=0
#     if key:
#         for i in iter:
#             if min_value==0:
#                 min_value=key(i)
#                 ret=i
#             elif min_value>key(i):
#                 min_value=key(i)
#                 ret=i
#     return ret
print(max(l,key = func))
print(min(l,key = func))
# l中的每一項都會作為引數傳給func
# max和min的求值會根據func的返回值來排序

11.reversed(list/tuple)  #返回一個迭代器,為了節省記憶體

l = [1,2]
l.reverse()
print(l)

ret = reversed([1,2,3])  # iterator
print(list(ret))
# reverse是在原基礎上修改 : 2000項的列表 不會產生額外的記憶體佔用
# reversed不修改原基礎 : 不直接返回列表而返回迭代器,為了不佔用更多的記憶體

12. slice  切片

l = [1,2,3,4,5,]#[2, 3, 4]
print(l[1:4])

ret = slice(1,4)# [2, 3, 4]
print(l[ret])

13 . format  與具體資料相關,用於計算各種小數,精算等

# 字串
print(format('test', '<20')) # 左對⻬
print(format('test', '>20')) # 右對⻬
print(format('test', '^20')) # 居中
# 數值
print(format(3, 'b')) # ⼆進位制
print(format(97, 'c')) # 轉換成unicode字元
print(format(11, 'd')) # ⼗進位制
print(format(11, 'o')) # ⼋進位制
print(format(11, 'x')) # ⼗六進位制(⼩寫字⺟)
print(format(11, 'X')) # ⼗六進位制(⼤寫字⺟)
print(format(11, 'n')) # 和d⼀樣
print(format(11)) # 和d⼀樣
# 浮點數
print(format(123456789, 'e')) # 科學計數法. 預設保留6位⼩數
print(format(123456789, '0.2e')) # 科學計數法. 保留2位⼩數(⼩寫)
print(format(123456789, '0.2E')) # 科學計數法. 保留2位⼩數(⼤寫)
print(format(1.23456789, 'f')) # ⼩數點計數法. 保留6位⼩數
print(format(1.23456789, '0.2f')) # ⼩數點計數法. 保留2位⼩數
print(format(1.23456789, '0.10f')) # ⼩數點計數法. 保留10位⼩數
print(format(1.23456789e+10000, 'F')) # ⼩數點計數法.

14. bytes 位元組

# str --> bytes
# print('abc'.encode('utf-8'))
# print('你好'.encode('utf-8'))
# bytes --> str
# b = b'\xe4\xbd\xa0\xe5\xa5\xbd'
# print(b.decode('utf-8'))

15. bytearray 把一個字串程式設計一個位元組陣列,較長的字串的修改節省記憶體,修改行為必須依靠編碼

ret = bytearray('abc'*30,encoding='utf-8')  # 位元組陣列
print(ret)#bytearray(b'abcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc'
ret[0] = 102   # asc碼  65A 97abcdef 你好 您好
print(ret)#bytearray(b'fbcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabcabc'

16.memoryview 檢視bytes在記憶體中的情況

ret = memoryview(bytes('hello,eva',encoding='utf-8'))
print(list(ret[:10]))

17.ord/chr 字元和編碼之間的轉換

# print(ord('a'))
# print(chr(97))

18.repr() 列印的時候輸出這個變數的資料型別

a = 1
b = '1'
print(repr(a),repr(b))#1  '1'
print(a)#1
print(b)#1

19.len 計算長度

a="d3d3dd"
print(len(a))#6