1,內置函數python
截止到python版本3.6.2,如今python一共爲咱們提供了68個內置函數。它們就是python提供給你直接能夠拿來使用的全部函數shell
Built-in Functions | ||||
---|---|---|---|---|
abs() | dict() | help() | min() | setattr() |
all() | dir() | hex() | next() | slice() |
any() | divmod() | id() | object() | sorted() |
ascii() | enumerate() | input() | oct() | staticmethod() |
bin() | eval() | int() | open() | str() |
bool() | exec() | isinstance() | ord() | sum() |
bytearray() | filter() | issubclass() | pow() | super() |
bytes() | float() | iter() | print() | tuple() |
callable() | format() | len() | property() | type() |
chr() | frozenset() | list() | range() | vars() |
classmethod() | getattr() | locals() | repr() | zip() |
compile() | globals() | map() | reversed() | __import__() |
complex() | hasattr() | max() | round() | |
delattr() | hash() | memoryview() | set() |
2,做用域相關緩存
2.1,globals()——獲取全局變量的字典安全
2.2,locals()——獲取所在域的變量的字典函數
3,幫助ui
3.1,dir()——查看其對象的全部方法編碼
3.2,callable()——看這個變量是否是可調用spa
callable(參數),看這個變量是否是可調用。若是參數是一個函數名,就會返回Truecode
print(callable(print))
3.3,help()——查看幫助信息 orm
在控制檯執行help()進入幫助模式。能夠隨意輸入變量或者變量的類型。輸入q退出,或者直接執行help(參數),查看和參數有關的操做
help(str)
4,模塊相關
4.1,__import__導入一個模塊
import time #導入模塊
os = __import__('os')
print(os.path.abspath('.'))
5,文件操做相關
5.1,open()
open() 打開一個文件,返回一個文件操做符(文件句柄)
操做文件的模式有r,w,a,r+,w+,a+ 共6種,每一種方式均可以用二進制的形式操做(rb,wb,ab,rb+,wb+,ab+)
能夠用encoding指定編碼.
5.2,判斷文件是否可讀,可寫
f = open('file')
print(f.writable())
print(f.readable())
6,內存相關
6.1,id(參數)—— 返回一個變量的內存地址
6.2,hash(參數) ——返回一個可hash變量的哈希值,不可hash的變量被hash以後會報錯。
print(hash(123))
print(hash('fskjs'))
print(hash('fskjs'))
print(hash([])) #報錯
字典尋址方式(字典尋址快的緣由):
對鍵進行hash將獲得的值做爲地址,將鍵值存入該內存地址
7,輸入輸出
7.1,print()
#def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
"""
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
file: 默認是輸出到屏幕,若是設置爲文件句柄,輸出到文件
sep: 打印多個值之間的分隔符,默認爲空格
end: 每一次打印的結尾,默認爲換行符
flush: 當即把內容輸出到流文件,不做緩存
"""
f = open('file','w')
print('aaa',file=f)
f.close
#打印進度條
import time
for i in range(0,101,2):
time.sleep(0.1)
char_num = i//2 #打印多少個'*' ,單'/'結果是float型,雙'//'是整除,結果是int型
per_str = '\r%s%% : %s\n' % (i, '*' * char_num) if i == 100 else '\r%s%% : %s'%(i,'*'*char_num)
print(per_str,end='', flush=True) #'%%' 是打印'%'
# \r 能夠把光標移動到行首但不換行
7.2,input()
s = input("請輸入內容 : ") #輸入的內容賦值給s變量
print(s) #輸入什麼打印什麼。數據類型是str
8,字符串類型代碼的執行
8.1,exec()和eval()均可以執行 字符串類型的代碼;compile 將字符串類型的代碼編譯
exec('print(123)')
eval('print(123)')
print(eval('1+2+3'))
print(exec('1+2+3'))
code = '''for i in range(3): print(i*'*') ''' exec(code)
8.2,compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
將字符串類型的代碼編譯。代碼對象可以經過exec語句來執行或者eval()進行求值。一次編譯,能夠一直使用
參數說明:
1. 參數source:字符串或者AST(Abstract Syntax Trees)對象。即須要動態執行的代碼段。
2. 參數 filename:代碼文件名稱,若是不是從文件讀取代碼則傳遞一些可辨認的值。當傳入了source參數時,filename參數傳入空字符便可。
3. 參數model:指定編譯代碼的種類,能夠指定爲 ‘exec’,’eval’,’single’。當source中包含流程語句時,model應指定爲‘exec’;當source中只包含一個簡單的求值表達式,model應指定爲‘eval’;當source中包含了交互式命令語句,model應指定爲'single'。
#流程語句使用exec
code1 = 'for i in range(0,10): print (i)'
compile1 = compile(code1,'','exec')
exec (compile1)
#簡單求值表達式用eval
code2 = '1 + 2 + 3 + 4'
compile2 = compile(code2,'','eval')
eval(compile2)
#交互語句用single
>>>code3 = 'name = input("please input your name:")'
>>>compile3 = compile(code3,'','single')
>>>name #執行前name變量不存在
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
name
NameError: name 'name' is not defined
>>> exec(compile3) #執行時顯示交互命令,提示輸入
please input your name:pythoner
>>> name #執行後name變量有值
9,complex 複數
數學中複數的虛部用 i 表示,在python中是用 j 表示
浮點數:有限循環小數,無限循環小數
小數:有限循環小數,無限循環小數,無限不循環小數
10,進制轉換
print(bin(10)) # 0b1010 二進制
print(oct(10)) # 0o12 八進制
print(hex(10)) # 0xa 十六進制
11,數學運算
11.1,
print(abs(-5))#求絕對值
print(divmod(7,2)) #div除法 mod取餘 #求商和餘數
print(round(3.14159,2))#精確值
print(pow(2,3))#求冪運算
print(pow(2,3,3))#冪運算以後再取餘
11.2,sum(iterable,start)
#sum(iterable,start)
#必須是可迭代的才能求和
#start#從幾開始加
ret = sum([1,2,3,4,5],10)
print(ret)
11.3,min(iterable,key,defult)
min(*args,key,defult)
print(min(1,2,3,4))
print(min([1,2,3,4]))
print(min(1,2,3,-4,key = abs))#都換成絕對值後再求最小值