1. 程式人生 > >使用yield生成器,用Python實現用戶對用戶輸入信息的監聽和過濾

使用yield生成器,用Python實現用戶對用戶輸入信息的監聽和過濾

所有 file line adl 語句 pytho open UNC 函數

# -*- coding:utf-8 -*-
‘‘‘‘‘‘
‘‘‘
生成器是一次生成一個值的特殊類型函數。
可以將其視為可恢復函數。調用該函數將返回一個可用於生成連續 x 值的生成【Generator】,
簡單的說就是在函數的執行過程中,yield語句會把你需要的值返回給調用生成器的地方,
然後退出函數,下一次調用生成器函數的時候又從上次中斷的地方開始執行,
而生成器內的所有變量參數都會被保存下來供下一次使用。
‘‘‘
def func(readfile):
g = open(readfile,encoding=‘utf-8‘)
while True:
line = g.readline()
if line.strip():#判斷line.strip()是否為空
yield line.strip()#用生成器得到一個特殊的值

g= func(‘file‘)
for i in g:
if ‘python‘ in i:#過濾沒有帶‘python‘的輸入
print(i)
# -*- coding:utf-8 -*-
‘‘‘‘‘‘
‘‘‘
生成器是一次生成一個值的特殊類型函數。
可以將其視為可恢復函數。調用該函數將返回一個可用於生成連續 x 值的生成【Generator】,
簡單的說就是在函數的執行過程中,yield語句會把你需要的值返回給調用生成器的地方,
然後退出函數,下一次調用生成器函數的時候又從上次中斷的地方開始執行,
而生成器內的所有變量參數都會被保存下來供下一次使用。
‘‘‘
def func(readfile):
    g = open(readfile,encoding=‘utf-8‘)
    while True:
        line = g.readline()
        if line.strip():#判斷line.strip()是否為空
            yield line.strip()#用生成器得到一個特殊的值

g= func(‘file‘)
for i in g:
    if ‘python‘ in i:#過濾沒有帶‘python‘的輸入
        print(i)

  

使用yield生成器,用Python實現用戶對用戶輸入信息的監聽和過濾