武道之路-煉體期六重天(年已過,恢複更新),之路六重

來源:互聯網
上載者:User

武道之路-煉體期六重天(年已過,恢複更新),之路六重

產生器:調用的時候才產生的資料(惰性計算,協程:保留上次進入的狀態,每次程式進入,相當於調用上一次的狀態,非同步),單線程下的並發效果(不同角色間切換)。

(3.x)range(),列表產生式 [i*i for i in range(20)], 

檔案讀取:

for line in f: (這裡f是檔案控制代碼)

  print(line)

記住重要的方法:__next__(計算下一個狀態值),send(value)(把值傳給產生器的yeild)

例如(斐波那契數列):

def seq(num):

  #計算幾位斐波那契數列

  count,x,y=0,0,1

  while count<num:

    yield y #想把什麼放入產生器

    x,y=y,x+y

    count=count+1

  return 'end'

g=seq(10)

g.__next__()->1

g.__next__()->1

g.__next__()->2

...

超過num數字會拋出異常

捕獲異常:

try:

  #程式段

except StopIteration(異常類型,這裡表示沒有更多值了):

  print('error')

  break

單線程下的並發效果(非同步):

import time

def employee(name):

  print('%s 已經準備工作'%name)

  while True:

    work=yield

    print('%s 員工已經完成老闆下發的%s份工作 '%(name,work))

def boss(name):

  wang=employee('小王')

  zhang=employee('小張')

  wang.__next__() #相當於把函數變成產生器 停在yield(執行到這裡)

  zhang.__next__() 

  print('%s 準備去接單了'%name)

  for i in range(10):

    print('已經接到 %d 份單子'%i)

    wang.send(i)#把值傳給yield

    zhang.send(i)

    time.sleep(1)#隔一秒

boss('大哥')#調用,boss 接單,員工完成工作同時進行!(不熟悉的自己設斷點調試過程)

迭代器(Iterator):可被__next__調用並不斷返回下一個值的對象,直到拋出異常。產生器(generator),range(), f(檔案控制代碼),[i*5 for i in range(10)],for迴圈(底層)

可迭代對象(Iterable):可直接作於for迴圈的對象,list tuple,dict,set,str(可通過Iter()轉成迭代器), 帶yield的function,generator

from collections inport Iterable(Iterator) 先引入

isinstance(對象,Iterable(Iterator)) 判斷是否是可迭代對象(迭代器)

 

一些內建函數:

abs() 求絕對值

bool()判斷真假

all()檢測可迭代對象裡的元素的值有假即是假

any()檢測可迭代對象裡的元素的值有真即是真

bin()轉二進位-》b'.....'

bytearray('值',encoding='編碼'),二進位可變數組,bytes不可變

callable() 是否可調用,函數,類---》()

chr 返回ASCII值對應的字元,ord 與之相反

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.