1.5.5 Python內建函式

花姐毛毛腿發表於2019-01-19

一,Python內建函式

1.locals()和globals()

def func():    x = 1    y = 2    print(locals())    print(globals())func()複製程式碼

2.eval,exec,和compile

print(123)"print(456)"  ## 字串eval("print(456)")  ## 吧字串轉換成python程式碼去執行(有返回值)exec("print(7889)")  ## 吧字串轉換成python程式碼去執行(無返回值)num = eval('4+5+6')  ## 執行了,有返回值print(num)num = exec('4+5+6')  ## 執行了,沒有返回值print(num)compile  ## 做編譯com = compile('1+2+3', '', mode='eval')  ## 節省時間print(eval(com))print(eval('1+2+3'))  ## 這句效果和上面的compile()效果一樣複製程式碼

3.print

print('123', end='')  ## 不換行print('456', end='')print(1, 2, 3)print(1, 2, 3, 4, 5, 6, sep=',')## print()函式的小例子import timeimport sysfor i in range(0, 101, 2):    time.sleep(0.1)    char_num = i // 2  ## 列印多少個#    per_str = '%s%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%s%% : %s' % (i, '*' * char_num)    print(per_str, end='', file=sys.stdout, flush=True)import sysfor i in range(0, 101, 2):    time.sleep(0.1)    char_num = i // 2    per_str = '\r%s%% : %s' % (i, '*' * char_num)    print(per_str, file=sys.stdout, flush=True)複製程式碼

4.input()

5.type()

s = '1213'print(type(s)) #輸出s的型別複製程式碼

6.hash

print(hash('asdsffd'))  ## 一開始幾個都是不變的,,然後重新執行一次就變了print(hash('asdsffd'))print(hash('asdsffd'))print(hash('asdsffd'))print(hash('asdsffd'))print(hash((1, 2, 3, 4)))複製程式碼

7.open

## r, w, a, r +, w +, a + (都可以加b)f = open('tmp', 'r+')  ## r+開啟檔案print(f.read(3))  ## 如果讀了在寫,追加f.seek(5)  ## 如果seek指定了游標的位置,就從該位置開始覆蓋這寫f.write('aaaaaa')  ## 如果直接寫,從頭覆蓋f.close()複製程式碼

8.import()

import osimport sysimport time複製程式碼

9.callable:檢視能不能呼叫

print(callable(123))  ## 數字不能呼叫結果就是Falseprint(callable(open))  ## 函式可以呼叫就返回True複製程式碼

10.dir 檢視資料型別的方法

print(dir(__builtins__))  ## 看著報錯,,但其實不報錯print(dir(int))print(dir(list))print(dir(0))  ## 和int一樣print(set(dir(list)) - set(dir(tuple)))複製程式碼

11.int()轉換為int型別

num1 = int(123)num2 = int(12.3)  ## 強制轉換成int型別print(num1, num2)複製程式碼

12.取商/餘

print(divmod(7, 3))複製程式碼

13.計算最小值

print(min(1, 2, 3, 4))print(min([5, 6]))複製程式碼

13.計算最大值

print(max(1, 2, 3, 4))print(max([5, 6]))複製程式碼

14.sum求和

print(sum(1, 2, 3, 4))  ## 出錯了,引數是序列,雜湊不行print(sum([5, 6]))print(sum((1, 2, 3, 4)))## 以下的兩個方式是一樣的print(1 + 2)print(int(1).__add__(2))複製程式碼

15.round精確度

print(round(3.1415926, 2))  ## 保留兩位複製程式碼

16.pow()冪運算

print(pow(2, 3))print(2 ** 3)複製程式碼

17.和資料結構相關的

1.reversed()順序的反轉

l = [1, 2, 3, 4]print(list(reversed(l)))  ## 是生成了一個新的列表,沒有改變原來的列表(以後能不用reversed就不用reversed,用reverse)複製程式碼
## l.reverse()#在現在的列表的基礎上修改了,修改的是原來的列表print(l)複製程式碼

2.slice切片3.format()#除了格式化以外的作業

print(format('test', '<
20'
))print(format('test', '>
40'
))print(format('test', '^40'))複製程式碼

4.bytes

s = '你好'sb = bytes(s, encoding='utf-8')print(sb)print(sb.decode('utf-8'))sb2 = bytearray(s, encoding='utf-8')sb2[0] = 229  ## 修改   瞭解就好print(sb2.decode('utf-8'))print(sb2)print(sb2[0])複製程式碼

5.repr

print(repr('1234'))print(repr(1234))print('name:%r' % ('egon'))  ## 你怎麼傳進去的就按什麼格式列印出來了複製程式碼

6.set和frozenset(不可變的集合)就像list和tuple7.enumerate

l = ['a', 'b']for i in enumerate(l):    print(i)for i, j in enumerate(l):    print(i, j)複製程式碼

8.all和any

print(all([1, 2, 3]))print(all([0, 2, 3]))  ## 因為0是Falseprint(any([1, 2, 3]))print(any([0, 2, 3]))複製程式碼

9.zip()

l = [1, 2, 3]l2 = [4, 5, 6, 7, 8]print(zip(l, l2))print(list(zip(l, l2)))l3 = {'k': 'v'
}print(list(zip(l, l3)))複製程式碼

10.sort和sorted

l = [1, 3, 5, -2, -6]l.sort()print(l)l2 = [1, 3, 5, -2, -6]print(sorted(l2))print(sorted(l2, key=abs))print(sorted(l2, key=abs, reverse=True))  ## 預設從小到大排序,修改為True,則從大到小排序複製程式碼

11.map():我要對我的列表當中的每一個值去做函式裡面的操作

l = [1, 2, 3, 4, 5]def pow2(x):    return x * xprint(list(map(pow2, l)))複製程式碼

12.filter():從一個列表當中找到所有符合篩選條件的,在組成一個新列表

def aaa(x):    return x % 2 == 1ret = list(filter(aaa, [1, 2, 54, 3, 6, 8, 17, 9]))print(ret)複製程式碼

來源:https://juejin.im/post/5c4344316fb9a04a027aa7a8

相關文章