014_內置函數

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以後會報錯。

  • 可哈希(即不可更改的數據類型)
  • 每一次執行程序,內容相同的變量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和eval均可以執行 字符串類型的代碼
  • eval不能經常使用,存在安全問題,所以只能用在你明確知道你要執行的代碼是什麼(即寫死的代碼)
  • eval有返回值——>有結果的簡單計算
  • exec沒有返回值——>簡單的流程控制
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))#都換成絕對值後再求最小值
相關文章
相關標籤/搜索