by shigemk2

当面は技術的なことしか書かない

エキスパートPythonプログラミング send

14-210206.py

nextと似てる。

#-*- coding:utf-8 -*-"
def psychologist():
    print('Please tell me your problems')
    while True:
        answer = yield
        if answer is not None:
            if answer.endswith('?'):
                print("Don't ask yourself too much questions")
            elif 'good' in answer:
                print("A that's good, go on")
            elif 'bad' in answer:
                print("Don't be so negative")

free = psychologist()
print next(free) # # Please tell me your problems
# None
# sendを使うとyieldが渡された値を返す。
free.send('I feel bad') # Don't be so negative
free.send("Why shouldn't?") # Don't ask yourself too much questions
free.send("ok then i should find what is good for me") # A that's good, go on