1. 程式人生 > >pyrhon學習_day17___內置函數

pyrhon學習_day17___內置函數

code 什麽 iteration cep lee 默認 eight 9.png --

3.6版本python共提供68種內置函數,如下圖展示,現將重要內置函數的使用做如下講解:

技術分享

1、作用域相關:globals()和locals()

  globals():全局作用域中的變量,無論放在全局命名空間還是在局部命名空間,輸出結果一樣,都是全局中的變量

  locals():放在全局命名空間時和globals()效果一致,放在局部命名空間輸出局部空間的變量

def func():
    x = 1
    y = 2
func()
print(locals())
print(globals())
#輸出結果一致,均為全局變量
def func():
    x = 1
    y 
= 2 print(locals()) print(globals()) func() #前者輸出局部變量,後者輸出全局變量

2、叠代器/生成器相關:range()、iter()、next()

  range(n):可叠代對象,可用於for循環得到0-n間的整數,包括0,不包括n

print(range(10))             #結果為:range(0,10)
for i in range(10):
    print(i)                 #結果為:0 1 2 3 4 5 6 7 8 9

  iter():將可叠代對象轉變為叠代器,等價於:可叠代對象.__iter__()

from collections import Iterable
from collections import  Iterator
lst=[1,2,3,4,5]
print(isinstance(lst,Iterable))                  #輸出結果:True---是否可叠代對象
print(isinstance(lst.__iter__(),Iterator))       #輸出結果:True---是否叠代器
print(isinstance(iter(lst),Iterator))            #輸出結果:True---是否叠代器

  next():返回叠代器的下一個值。next(叠代器)等價於叠代器.__next__()

#例1:
k=iter([1,2,3,4])
print(k.__next__())                             #輸出結果為:1
print(next(k))                                  #輸出結果為:2
#例2:
k=iter([1,2,3,4])
while True:
    try:
        print(next(k))
    except StopIteration: #超出叠代器的層數就退出循環
        break

3、字符串類型python代碼執行相關:eval()、exec()、compile()

  eval():執行字符串表達式,並返回表達式的值

print(eval(2*2))                             #輸出結果:4
x=3
print(eval(7*x))                             #輸出結果:21

  exec():執行字符串代碼,無返回值

4、內置函數filter()和map()

  filter()函數:用於過濾序列,將不符合條件的序列過濾,返回符合條件的叠代器。該接收兩個參數,第一個為函數,第二個為序列,序列的每個元素作為參數傳遞給函數進行判,然後返回 True 或 False,最後將返回 True 的元素放到新列表中。

def func(n):
    if n%2 == 0:
        return True
lst = [1,2,3,4,5,6,7]
ret = filter(func,lst)
print(list(ret))                              #輸出結果為:[2,4,6]

  map()函數: 會根據提供的函數對指定序列做映射。第一個參數 function 以參數序列中的每一個元素調用 function 函數,返回包含每次 function 函數返回值的新列表的叠代器。

lst=[1,2,3,4]
def func(n):
    return n**2
ret=map(func,lst)
print(list(ret)                              #輸出結果為:[1,4,9,16]

5、輸入和輸出函數:input()、print()

  print()函數:在py2中是個關鍵字,語法為:print(*objects, sep=‘ ‘, end=‘\n‘, file=sys.stdout)。objects -- 復數,表示可以一次輸出多個對象。輸出多個對象時,需要用 , 分隔。

sep -- 用來間隔多個對象,默認值是一個空格。end -- 用來設定以什麽結尾。默認值是換行符 \n,我們可以換成其他字符串。file -- 要寫入的文件對象。

#進度條實例
import time
import sys
for i in range(0,101,2):
     time.sleep(0.1)
     char_num = i//2      #打印多少個*
     per_str = \r%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 )

pyrhon學習_day17___內置函數