Alienbot - Chat Bots


Im having problems with point 20 and the regular expression. It seems to skip through it and goes to describe_planet_intent instead of answer_why_intent, Here is the code

import re
import random

class AlienBot:
# potential negative responses
negative_responses = (“no”, “nope”, “nah”, “naw”, “not a chance”, “sorry”)
# keywords for exiting the conversation
exit_commands = (“quit”, “pause”, “exit”, “goodbye”, “bye”, “later”)
# random starter questions
random_questions = (
"Why are you here? ",
"Are there many humans like you? ",
"What do you consume for sustenance? ",
"Is there intelligent life on this planet? ",
"Does Earth have a leader? ",
"What planets have you visited? ",
"What technology do you have on this planet? "

def __init__(self):
    self.alienbabble = {'describe_planet_intent': r'',
                    'answer_why_intent': r'why\sare.*',
                    'cubed_intent': r''

# Define .greet() below:
def greet(self): = input("Hi, whats your name?")

    will_help = input(f'Hi {}, Im not from this planet. Will you help me learn abaout your planet?')

    if will_help in self.negative_responses:
        print(f'Ok {}, have a nice Earth day!')
# Define .make_exit() here:
def make_exit(self, reply):
    for exit_command in self.exit_commands:
        if exit_command in reply:
            print("Ok, have a nice Earth day!")
            return True

# Define .chat() next:
def chat(self):
    reply = input(random.choice(self.random_questions)).lower()
    while not self.make_exit(reply):
        reply = input(self.match_reply(reply))

# Define .match_reply() below:
def match_reply(self, reply):
    for intent, regex_pattern in self.alienbabble.items():
        print(intent, regex_pattern)
        found_match = re.match(regex_pattern, reply)
        if found_match and intent == 'describe_planet_intent':
            return self.describe_planet_intent()
        elif found_match and intent == 'answer_why_intent':
            return self.answer_why_intent()

# Define .describe_planet_intent():
def describe_planet_intent(self):
    responses = ("My planet is a utopia of diverse organisms and species. ", "I am from Opidipus, the capital of the Wayward Galaxies. ")
    return random.choice(responses)

# Define .answer_why_intent():
def answer_why_intent(self):
    responses = ('I come in peace', 'I am here to collect data on your planet and its inhabitats', 'I heard the coffee is good')
    return random.choice(responses)

# Define .cubed_intent():
def cubed_intent(self, number):
    return "Inside .cubed_intent()"

# Define .no_match_intent():
def no_match_intent(self):
    return "Inside .no_match_intent()"

Create an instance of AlienBot below:

my_bot = AlienBot()