2019-11-15

# for temp in [11, 22, 33]:

#? print(temp)

# for temp in "abcdef":

#? print(temp)

# for temp in 100:

#? print(temp)

# from collections import Iterable

# print(isinstance([11, 22, 33], Iterable))

# print(isinstance((11, 22, 33), Iterable))

# print(isinstance("abc", Iterable))

# print(isinstance(100, Iterable))

# a = 0

# b = 1

# print(a)

# a, b = b, a+b? # (1, 0+1)

# print(a)

# a, b = b, a+b? # (1, 0+1)

# print(a)

# a, b = b, a+b? # (1, 0+1)

# print(a)

# a = (11, 22, 33)

# print(list(a))

# nums = [x*2 for x in range(10)]

# print(nums)

# nums = (x*2 for x in range(10))

# print(nums)

# for num in nums:

#? print(num)

# import urllib.request

# req = urllib.request.urlopen("http://www.baidu.com")

# content = req.read()

# print(content)

# Python2適用

# import MySQLdb

# Python3適用

# import pymysql

# from pymysql import connect

# # 創(chuàng)建Connection連接

# conn = connect(host='localhost',port=3306,database='jing_dong',user='root',password='123456',charset='utf8')

# # 獲得Cursor對(duì)象

# cursor = conn.cursor()

# count = cursor.execute("select * from goods;")

# print("查詢(xún)到%d條數(shù)據(jù)" % count)

# # print(cursor.fetchone());

# # print(cursor.fetchone());

# # print(cursor.fetchone());

# # print(cursor.fetchone());

# # print(cursor.fetchmany());

# # print(cursor.fetchmany(3));

# # print(cursor.fetchall());

# # print(cursor.fetchall());

# # line_content = cursor.fetchone();

# # print(line_content)

# # print(line_content[0])

# # print(line_content[1])

# # print(line_content[2])

# # for temp in line_content:

# #? print(temp)

# lines = cursor.fetchmany(5);

# for temp in lines:

#? print(temp)

# # 關(guān)閉Cursor對(duì)象

# cursor.close()

# conn.close()

# # print(cursor.fetchone(), "---->");

# # count = cursor.execute("select * from goods;")

# from pymysql import connect

# # 創(chuàng)建Connection連接

# conn = connect(host='localhost',port=3306,database='jing_dong',user='root',password='123456',charset='utf8')

# # 獲得Cursor對(duì)象

# cs1 = conn.cursor()

# # print(cs1.execute("""insert into goods_cates (name) values ("硬盤(pán)")"""))

# # print(cs1.execute("""insert into goods_cates (name) values ("硬盤(pán)2")"""))

# # print(cs1.execute("""insert into goods_cates (name) values ("硬盤(pán)3")"""))

# # conn.commit()

# print(cs1.execute("""insert into goods_cates (name) values ("硬盤(pán)3")"""))

# print(cs1.execute("""insert into goods_cates (name) values ("硬盤(pán)4")"""))

# conn.rollback()

# print(cs1.execute("""insert into goods_cates (name) values ("硬盤(pán)4")"""))

# conn.commit()

# import urllib.parse

#

# print(urllib.parse.quote("@"))

# print(urllib.parse.quote("中國(guó)"))

#

# print(urllib.parse.unquote("%E4%B8%AD%E5%9B%BD"))



import time

from collectionsimport Iterable

from collectionsimport Iterator

class Classmate(object):

def __init__(self):

self.names = list()

self.current_num =0

? def add(self, name):

self.names.append(name)

def __iter__(self):

"""如果想要一個(gè)對(duì)象成為一個(gè)可以迭代的對(duì)象(即可以使用for),那么必須實(shí)現(xiàn)__iter__方法"""

? ? # return ClassIterator(self)

? ? return self

? def __next__(self):

if self.current_num < len(self.names):

ret =self.names[self.current_num]

self.current_num +=1

? ? ? return ret

else:

raise StopIteration

# class ClassIterator(object):

#? def __init__(self, obj):

#? ? self.obj = obj

#? ? self.current_num = 0

#? def __next__(self):

#? ? if self.current_num < len(self.obj.names):

#? ? ? ret = self.obj.names[self.current_num]

#? ? ? self.current_num += 1

#? ? ? return ret

#? ? else:

#? ? ? raise StopIteration

classmate = Classmate()

classmate.add("宏杰")

classmate.add("永振")

classmate.add("明越")

# print("判斷classmate是否是可以迭代的對(duì)象:", isinstance(classmate, Iterable))

# classmate_iterator = iter(classmate)

# print("判斷classmate_iterator是否是迭代器:", isinstance(classmate_iterator, Iterator))

# print(next(classmate_iterator))

for namein classmate:

print(name)

time.sleep(1)



"""

nums = list()

a = 0

b = 1

i = 0

while i < 10:

nums.append(a)

a, b = b, a+b

i += 1

for num in nums:

print(num)

"""

class Fibonacci(object):

def __init__(self, all_num):

self.all_num = all_num

self.current_num =0

? ? self.a =0

? ? self.b =1

? def __iter__(self):

return self

? def __next__(self):

if self.current_num

ret =self.a

self.a, self.b =self.b, self.a+self.b

self.current_num +=1

? ? ? return ret

else:

raise StopIteration

fibo = Fibonacci(10)

for numin fibo:

print(num)



def create_num(all_num):

print("---1---")

# a = 0

# b = 1

? a, b =0, 1

? current_num =0

? while current_num < all_num:

print("---2---")

# print(a)

? ? yield a# 如果一個(gè)函數(shù)中有yield語(yǔ)句仰坦,那么這個(gè)就不再是函數(shù)睡陪,而是一個(gè)生成器的模板

? ? print("---3---")

a, b = b, a+b

current_num +=1

? ? print("---4---")

# 如果在調(diào)用create_num的時(shí)候娶耍,發(fā)現(xiàn)這個(gè)函數(shù)中有yield蚪腋,那么此時(shí)不是調(diào)用函數(shù)柬赐,而是創(chuàng)建一個(gè)生成器對(duì)象

obj = create_num(10)

obj2 = create_num(2)

ret = next(obj)

print("obj:", ret)

ret = next(obj)

print("obj:", ret)

ret = next(obj2)

print("obj2:", ret)

ret = next(obj)

print("obj:", ret)

ret = next(obj)

print("obj:", ret)

ret = next(obj)

print("obj:", ret)

ret = next(obj2)

print("obj2:", ret)

ret = next(obj2)

print("obj2:", ret)

# for num in obj:

#? ? print(num)



def create_num(all_num):

# a = 0

# b = 1

? a, b =0, 1

? current_num =0

? while current_num < all_num:

# print(a)

? ? yield a# 如果一個(gè)函數(shù)中有yield語(yǔ)句妒蛇,那么這個(gè)就不再是函數(shù)倦挂,而是一個(gè)生成器的模板

? ? a, b = b, a+b

current_num +=1

? return "ok~~~"

# 如果在調(diào)用create_num的時(shí)候龄砰,發(fā)現(xiàn)這個(gè)函數(shù)中有yield敷鸦,那么此時(shí)不是調(diào)用函數(shù),而是創(chuàng)建一個(gè)生成器對(duì)象

obj2 = create_num(20)

while True:

try:

ret = next(obj2)

print(ret)

except Exceptionas ret:

print(ret.value)

break



def create_num(all_num):

a, b =0, 1

? ? current_num =0

? ? while current_num < all_num:

ret =yield a

print(">>>ret>>>", ret)

a, b = b, a+b

current_num +=1

obj = create_num(10)

obj.send(None)

ret = next(obj)

print(ret)

ret = obj.send("hahaha")

print(ret)


import time

def task_1():

while True:

print("---1---")

time.sleep(0.1)

yield

def task_2():

while True:

print("---2---")

time.sleep(0.1)

yield

def main():

# 此時(shí)并非函數(shù)調(diào)用寝贡,而是創(chuàng)建生成器

? t1 = task_1()

t2 = task_2()

# 先讓t1運(yùn)行一會(huì)兒扒披,當(dāng)t1中遇到y(tǒng)ield的時(shí)候,再返回到這里

? # 然后執(zhí)行t2圃泡,當(dāng)它遇到y(tǒng)ield的時(shí)候碟案,再次切換到t1中

? # 這樣t1/t2/t1/t2的交替運(yùn)行,最終實(shí)現(xiàn)了多任務(wù)……協(xié)程

? while True:

next(t1)# 調(diào)用task_1颇蜡,yield時(shí)返回

? ? next(t2)# 調(diào)用task_2价说,yield時(shí)返回

if __name__ =="__main__":

main()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市风秤,隨后出現(xiàn)的幾起案子鳖目,更是在濱河造成了極大的恐慌,老刑警劉巖缤弦,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件领迈,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡碍沐,警方通過(guò)查閱死者的電腦和手機(jī)狸捅,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)累提,“玉大人尘喝,你說(shuō)我怎么就攤上這事≌悖” “怎么了朽褪?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵置吓,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我缔赠,道長(zhǎng)交洗,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任橡淑,我火速辦了婚禮构拳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘梁棠。我一直安慰自己置森,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布符糊。 她就那樣靜靜地躺著凫海,像睡著了一般。 火紅的嫁衣襯著肌膚如雪男娄。 梳的紋絲不亂的頭發(fā)上行贪,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音模闲,去河邊找鬼建瘫。 笑死,一個(gè)胖子當(dāng)著我的面吹牛尸折,可吹牛的內(nèi)容都是我干的啰脚。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼实夹,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼橄浓!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起亮航,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤荸实,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后缴淋,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體准给,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年宴猾,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了圆存。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡仇哆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出夫植,到底是詐尸還是另有隱情讹剔,我是刑警寧澤油讯,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布,位于F島的核電站延欠,受9級(jí)特大地震影響陌兑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜由捎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一兔综、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狞玛,春花似錦软驰、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至硬鞍,卻和暖如春慧瘤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背固该。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工锅减, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人伐坏。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓上煤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親著淆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子劫狠,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348