Learn to Code via Tutorials on Repl.it!

← Back to all posts
A Slightly More Advanced ChatBot [Intermediate, Python]

Hello Fellow Replers!

Welcome to my next tutorial with a ChatBot, if you haven't seen my last tutorial, then you should click here.

How do we make our ChatBot more advanced?

That is easy to answer first we need to think, how would this be possible? With connecting our ChatBot to google and find the most relevant answer to the User Input? Good idea, but no. In fact we can make even simpler, and I'm going to explain. We can use two lists! Now this is really cool, and simple. A lot of people don't know how to do this. You will after reading the rest of this tutorial.

How can we use a list to detect User Input?

Well, we can't do that, but we can use it so the ChatBot can figure out how to respond to the User. Let me give you a small explanation about how this is possible.

First, we have two lists:


If we assign values then they will look like this:

Do you notice anything?

The User Inputs and the Responses have the same List Index Value(LIV). Let me show you.

If you look at list Check you will see the first item: hello this has a LIV of 0.

And if you look at list Respond you will see the first item: Hi this also has a LIV of 0.
Do you see a correlation between the two? Maybe you do, maybe you don't you will understand later in the next section.

Now to the code!

Alright so we have the basic code we wrote in the last tutorial. That code was simple, and impractical. Let's simplify it.
Here is the code:

Lets first create a new file, you can do that by clicking the little paper icon on the side of you project:


Now go to the smaller paper Icon with the plus sign and click that. Now you have created a file, for the name of your file name it client.py. There is no specific reason for the name it just looks cool. Ok, back to the tutorial.

Inside of client.py create the following lists:

Now obviously we have nothing in the lists, but that is what we want right now.
Hmmm? So how do we use these lists? Easy! We use what Repl.it has called import. Type the following into main.py at the top of the script:

Now we can use these lists.

We need some values in these lists for anything to happen, so write the following into your lists in client.py:

Okay cool, now we have some simple code for our lists, but we still cant do anything with our ChatBot yet. First, we need to tell it what to do. Go into main.py and type the following:

Is the LIV thing making sense to you? If not I will explain it now, skip this if you understand it

So basically I am using the LIV, to tell the ChatBot how to respond to user input.

Look at this and you might understand. In the lists we have two different, items. hi, hello
The easiest way to look at this is by understanding that they are in the same position just a different list.

Here is a visual

| 0
They match up with the same index that is why I can print the index of User_Inputs, through __Responses.

Now here is the finished output:


If you have any questions then post them in the comments.

Stay tuned for
"An Advanced ChatBot [Advanced, Python]", I will show you how to have your bot scan User Input for Keywords!.

Keep coding,
Christian Thone


this is too basic, looking forward an 'advanced bot' Thaanks


@slimaidarismail You're welcome, the advanced bot is taking a while to make, sorry for the wait.


@ChristianThone Are you still planning on posting the advanced bot?


@ChristianThone is it out yet?


Suggestion: use a dictionary instead of 2 lists. It's really easy to mess up and get your bot to output the wrong thing.


@ash15khng well thats why you should take your time and mke sure it is done right, and you should always test your programs after adding something to it. What do you mean by use a dictionary? Can you give me an example?


@ChristianThone This is an example of a dictionary and an updated code using it:


@ChristianThone Yeah, a dictionary would probably make more sense for this project. It would improve readability.


@ash15khng Okay, I will add it to the Advanced bot, but if anyone knows how to scan for keywords that would be great if you could tell me.


@ChristianThone You can use string in other_string.
For example:

This would print "yayayayay".


@ChristianThone you can also split the input using the split method

this would return hi if the word hello was in the input. Also, this may not be 100% correct, so double check before using.



a better example, where you check for everything:

this is my attempt, and maybe you could replicate this, but with dictionaries as well, to make the code better ;)


@ChristianThone i really dont properly understand this can you help me?


@ChristianThone Are you still planning on making an advanced bot tutorial?




@Murzikal Did you try it?


@ChristianThone i knew most of it though, except import from a file.


@Murzikal Ok, at least you learned something huh? Thats what i'm here for.


How can I actually add it to a chatting service bro?


thanks dude I had a lot of trouble trying to figure out how to get the file to work and some other things from this I was able to use and I have checked out a LOT!! of your other things and they have helped me figure out how to do things before I have even gotten to that stage! Your stuff is AMAZING!




@ZControls_Games Thank you!