python中的內置函數(一)

內置函數:內置函數就是python提供的,能夠拿來直接用的函數python

做用域相關

locals():返回當前做用域中的名字
globals():返回全局做用域中的內容數據結構

 1 def func():  2     print('我早晨吃了一個蘋果')  3     def func1():  4         print('我下午吃了一個桃')  5         def func2():  6             print('都挺好吃')  7  func2()  8     print(globals())#'func': <function func at 0x000001BA3E9F2EA0>
 9     print(locals())#func1 at 0x000001BA3EBC08C8>
10  func1() 11 func()

迭代器相關

range():生成數據
1 print(list(range(5))) 2 [0, 1, 2, 3, 4]
next():迭代器向下執行一次,內部實際使用了__next__()方法
iter():獲取迭代器,內部實際上是使用了__iter__()方法來獲取迭代器
1 lis=[1,2,3,4,5] 2 it=iter(lis)#獲取迭代器
3 print(next(it))#迭代器向下執行一次
4 print(next(it)) 5 print(next(it))

字符串相關

eval():執行字符串類型的代碼,並返回結果,是求值
1 a="{'你':'是','我':'的','大':'豬','蹄':'子兒'}"
2 print(eval(a)[''])
exec():執行字符串類型的代碼,若是是多行,注意縮進,是執行,沒有返回結果
1 exec('''for i in range(5): 2  print(i) 3 ''') 4 
5 eval('''for i in range(5): 6  print(i) 7 ''')  #invalid syntax(語法錯誤)
compile(),將字符串中代碼編譯,代碼可以經過exec()執行,或者經過eval()進行求值
(有返回值形式的字符串用eval(),沒有返回值類型的字符串用exec())
語法:compile(source, filename, mode[, flags[, dont_inherit]])
source -- 字符串或者AST(Abstract Syntax Trees)對象。。
filename -- 代碼文件名稱,若是不是從文件讀取代碼則傳遞一些可辨認的值。
mode -- 指定編譯代碼的種類。能夠指定爲 exec, eval, single
 1 code='''for i in range(6):  2  print(i)  3 '''
 4 c1=compile(code,'',mode='exec')  #若是是編譯字符串,第二個文件的位置要''
 5 exec(c1)  6 0  7 1
 8 2
 9 3
10 4
11 5
12 
13 code='1+2+3'
14 c=compile(code,'',mode='eval') 15 print(eval(c))#6
16 
17 有用戶交戶的mode用single 18 code='content=input("請輸入想吃的?")'
19 a=compile(code,'',mode='single')  #有用戶交戶的用single
20 exec(a) 21 print(content)   #pycharm裏的報錯信息,不必定是對的
22 請輸入想吃的?太撐了,不想吃 23 太撐了,不想吃

輸入輸出相關

input():獲取用戶輸入的內容
print():打印輸出
1 content=input('今天喝了多少水?') 2 print(content) 3 "C:\Program Files\Python36\python.exe"
4 今天喝了多少水?三杯 5 三杯

內存相關

hash():獲取到對象的hash值
1 lis=(1,2,3,4,5) 2 print(hash(lis)) #8315274433719620810
哈希計算以後是一串數字,可能很大,也可能很小還有多是複數,哈希的目的是爲了存儲,
但有一個缺點就是耗內存,是在以空間換取時間,哈希值儘可能不要重複(在某些特定的環境下可能會重複)
id():獲取到對象的內存地址
1 lis=[1,2,3,4,5,6] 2 print(id(lis))#1964303088776

文件操做相關

1 open():用於打開一個文件,建立一個文件句柄 2 f=open('daily.txt',mode='r',encoding='utf-8')

模塊相關

__import__():用於動態加載類和函數.import裏面封裝的__import__()

幫助

help():用於查看函數或模塊用途的詳細說明
dir():查看內置屬性,方法,訪問的是對象中的__dir__()方法
dir()和help()的區別:
help(list) #help除了方法屬性外還有介紹
print(dir(list)) #dir出來的是含有的方法屬性

調用相關

callable()用於檢查一個對象是否可用,若是返回true,object有可能調用失敗,
若是返回的是False,必定不會調用成功
1 lis=[1,2,3,4,55,6] 2 a=1
3 def func(): 4     b=a+1
5     print(a) 6 func() 7 print(callable(func))

基礎數據類型相關

數字相關:
bool():將給定的值轉換bool型,若是不給值返回False
int():將給定的值轉換int型,若是不給值返回False
float():將給定的值轉換int型,也就是小數
 1 a='1'
 2 print(type(a))  3 print(type(int(a)))  4 print(type(bool(a)))  5 print(type(float(a)))  6 <class 'str'>
 7 <class 'int'>
 8 <class 'bool'>
 9 <class 'float'>
10 print(float(1))  #1.0
complex():建立一個複數,第一個參數爲實部,第二個參數爲虛部,或者第一個參數直接用字符串來描述複數(與數學中不一樣的是複數用a+bj而不是a+bi)
1 print(complex(1,2))  #(1+2j)
進制轉換:
bin():將給的參數轉換成二進制
otc():將給的參數轉換成八進制
hex():將給的參數轉換成十六進制 # 0 1 2 3 4 5 6 7 8 9 a b c d e f
1 a=10
2 print(bin(a)) 3 print(oct(a)) 4 print(hex(a)) 5 0b1010 6 0o12 7 0xa
數學運算:
abs():返回絕對值
1 a=-5
2 print(abs(a))  #5
divmod():返回商和餘數
1 print(divmod(6,3))#(2, 0)
round():四捨五入(這臺機器是五舍六入)
1  print(round(4.5))
pow(a,b):求a的b次冪,若是輸入三個數,則求完次冪後對第三個數取餘
1 print(pow(2,3))  #8
2 print(pow(2,3,2))  #0
sum():求和sum中放的必須是可迭代對象
1 print(sum(1,2))  #'int' object is not iterable
2 print(sum([1,2,3,4,5,6]))   #21
min():最小值
max():最大值
1 lis=[1,2,3,4,5,6] 2 print(min(lis),max(lis))  #1 6

數據結構相關

列表和元組:
list() 將一個可迭代對象轉換成列表
tuple() 將一個可迭代對象轉換成元組
1 a='asdfghj'
2 print(list(a))  #['a', 's', 'd', 'f', 'g', 'h', 'j']
3 print(tuple(a))   #('a', 's', 'd', 'f', 'g', 'h', 'j')
reversed():將一個序列翻轉,返回翻轉序列的迭代器
1 a='asdfghjkl'
2 it=reversed(a) 3 print(it.__next__())   #l
slice():列表的切片
1 a=[1,2,3,4,5,6] 2 s=slice(0,4,2) 3 print(a[s])  #[1, 3] 值得注意的是打印的時候要用print(a[s])這種寫法

字符串相關

str():將數據轉化成字符串
1 a=12
2 print(type(str(a)))  #<class 'str'>
format():與具體數據相關,用於計算小數精算等,format還能夠用來格式化
 1 字符串:  2 print(format('test','<20'))   #test 擴展爲20個字符,並將test左對齊
 3 print(format('test','>20'))   # test擴展爲20個字符,並將test右對齊
 4 print(format('test','^20'))   # test 擴展爲20個字符,並將test居中
 5 數值:  6 print(format(3,'b'))   #將三轉換成二進制 #11
 7 print(format(97,'c'))  #把97轉換成97對應的Unicode字符 #a
 8 print(format(11,'d'))   #將11轉換成十進制 #11
 9 print(format(111122348542,'o'))  #轉換成八進制 #1473732074776
10 print(format(465456461,'x'))   #轉換成16進制,用小寫字母表示 #1bbe4d4d
11 print(format(465456461,'X'))   #轉換成16進制,用大寫字母表示 #1BBE4D4D
12 print(format(11,'n'))       #十進制
13 print(format(11))   #11
14 浮點數 15 print(format(123456789,'e'))   #1.234568e+08科學計數法,默認保留六位小數
16 print(format(123456789,'0.2e'))  #1.23e+08 科學計數法,默認保留兩位小數(e小寫)
17 print(format(123456789,'0.2E'))  #1.23E+08 #科學計數法,默認保留兩位小數(e大寫)
18 print(format(123456789,'f'))    #123456789.000000 小數點計數法,默認保留六位小數
19 print(format(123456789,'0.2f'))    #123456789.00 #小數點計數法,默認保留兩位小數
20 print(format(123456789,'0.10f'))   #123456789.0000000000 小數點計數法,默認保留10位小數
21 print(format(1.23456789e+10000,'F'))  #INF 小數點計數法
bytes();把字符串轉換成某某類型,後面要加上編碼類型
1 s='你好!'
2 print(bytes(s,encoding='utf-8'))
bytearry()
1 ret=bytearray('你好',encoding='utf-8') 2 print(ret)  #bytearray(b'\xe4\xbd\xa0\xe5\xa5\xbd')
memoryview():查看bytes在內存中的狀況
1 s=memoryview('李小龍'.encode('utf-8')) 2 print(s)  #<memory at 0x0000014E41955F48>
ord()輸入字符,查找字符編碼的位置
chr()輸入位置查找對應的字符
ascii()是ascii碼中的就有返回值,不然就返回\u
1 print(ord('a'))   #97
2 print(ord(''))  #20013
3 
4 print(chr(97))   #a
5 print(chr(20013))   #
6 
7 print(ascii('a'))   #'a'
8 print(ascii(''))   '\u4e2d'
repr():返回正式的官方的字符串
 1 print(repr('你們好,我叫周杰倫'))  2 print(repr('你們好/n,我叫周杰倫'))  3 print(repr('你們好\n,我叫周杰倫'))  4 print(repr('你們好\t,我叫周杰倫'))  5 print(repr('你們好\\,我叫周杰倫'))  6 print(repr('你們好\\\,我叫周杰倫'))  7 print(repr('你們好\\\\,我叫周杰倫'))  8 print(repr('周杰倫說"你們好,我叫周杰倫"'))  9 print(repr("周杰倫說'你們好,我叫周杰倫'")) 10 
11 '你們好,我叫周杰倫'
12 '你們好/n,我叫周杰倫'
13 '你們好\n,我叫周杰倫'
14 '你們好\t,我叫周杰倫'
15 '你們好\\,我叫周杰倫'
16 '你們好\\\\,我叫周杰倫'
17 '你們好\\\\,我叫周杰倫'
18 '周杰倫說"你們好,我叫周杰倫"'
19 "周杰倫說'你們好,我叫周杰倫'"
dict{}建立一個字典
1 dict={} 2 print(dict)
set():建立一個集合
1 s=set() 2 print(type(s))  #<class 'set'>
frozenset():建立一個凍結的集合,凍結的集合不能進行增長和刪除操做
1 frozenset={} 2 print(frozenset)
len():返回一個對象中元素的個數
enumerate():獲取集合的枚舉對象
1 lis=[1,2,3,4] 2 for i, j  in enumerate(lis): 3     print(i,j) 4 0 1
5 1 2
6 2 3
7 3 4
all()可迭代對象中 所有是true纔是true:
any()可迭代對象中有一個是true就是true
1 print(all([1,2,3,4,5]))  #True
2 print(all([1,2,3,4,5,0]))  #False
3 print(any([1,2,3,4,5]))  #True
4 print(any([1,2,3,4,5,0]))   #True
相關文章
相關標籤/搜索