Найти - Пользователи
Полная версия: Задача на тему КОРУТИНА
Начало » Python для новичков » Задача на тему КОРУТИНА
1
medusa_01
Доброго времени суток. помогите пожалуйста решить задачу:
Ваша задача — написать сопрограмму alphabet, в которую передаются буквы, а в ответ она генерирует слова, закрепленные переданной буквой из словаря DICTIONARY.

Гарантируется, что в alphabet будут поступать значения, которые имеются в ключах словаря DICTIONARY.

Сама переменная DICTIONARY вам в редакторе кода не видна, но вы можете обращаться к ней внутри сопрограммы alphabet.

Мой код выдает не верный ответ:
 DICTIONARY = {
    'a': 'apple',
    'b': 'banana',
    'c': 'cat',
    'd': 'dog',
    'e': 'elephant',
    'f': 'fox',
    'g': 'gorilla',
    'h': 'hippo',
    'i': 'iguana',
    'j': 'jaguar',
    'k': 'koala',
    'l': 'llama',
    'm': 'monkey',
    'n': 'newt',
    'o': 'octopus',
    'p': 'parrot',
    'q': 'quail',
    'r': 'rabbit',
    's': 'squirrel',
    't': 'tiger',
    'u': 'unicorn',
    'v': 'viper',
    'w': 'walrus',
    'x': 'xenomorph',
    'y': 'yak',
    'z': 'zebra'
}
def alphabet():
    while True:
        letter = (yield )
        value = yield DICTIONARY.get(letter)
        print(value)
coro = alphabet()
next(coro)
print(coro.send('a'))
print(coro.send('b'))
print(coro.send('c'))
Вывод:
apple
b
None
cat
py.user.next
  
>>> DICTIONARY = {
...     'a': 'apple',
...     'b': 'banana',
...     'c': 'cat',
...     'd': 'dog',
...     'e': 'elephant',
...     'f': 'fox',
...     'g': 'gorilla',
...     'h': 'hippo',
...     'i': 'iguana',
...     'j': 'jaguar',
...     'k': 'koala',
...     'l': 'llama',
...     'm': 'monkey',
...     'n': 'newt',
...     'o': 'octopus',
...     'p': 'parrot',
...     'q': 'quail',
...     'r': 'rabbit',
...     's': 'squirrel',
...     't': 'tiger',
...     'u': 'unicorn',
...     'v': 'viper',
...     'w': 'walrus',
...     'x': 'xenomorph',
...     'y': 'yak',
...     'z': 'zebra'
... }
>>> 
>>> def alphabet():
...     while True:
...         yield DICTIONARY.get((yield))
... 
>>> def f():
...     coro = alphabet()
...     coro.send(None)
...     for c in 'abcdef':
...         print(coro.send(c))
...         coro.send(None)
...     coro.close()
... 
>>> f()
apple
banana
cat
dog
elephant
fox
>>>

Не спрашивай меня, как это работает. Я сам этого не понимаю.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB