I was doing the Magic Ball 8 project (its task is to read a user's question and output a prediction) on Python and wrote the following code:

```
from random import choice
from time import sleep
list_of_predictions = [
          "Undoubtedly", "It seems to me - yes", "It is not clear yet, try again", "Do not even think", "A foregone conclusion", "Most likely", "Ask later", "My answer is no",
          "No doubt", "Good prospects", "Better not to tell", "According to my information - no", "You can be sure of this", "Yes", "Concentrate and ask again", "Very doubtful"
           ]
print('I am a magic ball, and I know the answer to any of your questions.')
sleep(1)
n = input("What is your name?\n")
print(f'Greetings, {n}.')
sleep(1)
def is_question(question):
    return q[-1] == '?'
def is_valid_question(question):
    return ('When' or 'How' or 'Where') not in q
again = 'yes'
while again == 'yes':
    print('Enter a question, it must end with a question mark.')
    q = input()
    if is_question(q) and is_valid_question(q):
        sleep(2)
        print(choice(list_of_predictions))
    elif not is_question(q):
        print('You  entered not a question!')
        continue
    else:
        print('You have entered a question that cannot be answered "yes" or "no"!')
        continue
    sleep(1)
    again = input('Are there any other questions?\n')
    sleep(1)
a = input('Come back if they arise!\n')

```

The main feature of my program is that it checks if the user has entered a question, which can be answered "yes" or "no". It also works with small delays in time (for realism). What do you think about my project implementation?