Python Forum
SamBot - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: General (https://python-forum.io/forum-1.html)
+--- Forum: Code Review (https://python-forum.io/forum-46.html)
+--- Thread: SamBot (/thread-26758.html)



SamBot - Zirizo - May-12-2020

I'm completely brand new to Python and I've been learning on a cool course. I will put what I learn into this project i'm working on named SamBot. It's a very simple bot that asks you questions and says it likes your answers. Here is the code, just put it into a Python editor and run it, that's all you need. This is the first version. (There is an Easter Egg so please don't read the code until you've found it):
# Program starts by giving credit to the author

import time

print("SamBot, simple chatbot written by: Benjamin Nation")

time.sleep(3)

# First Sam asks the user's name and says he likes it

print("Hi my name is SamBot!")

time.sleep(2)

userName = input("What's your name?")

time.sleep(1)

print("I love that name,", userName)

time.sleep(2)

# Then Sam asks what the user's favorite color is and responds that it's his favorite too

userColor = input("What's your favorite color?")

time.sleep(1)

print(userColor, "is my favorite color too!")

time.sleep(1)

# Sam then asks what their favorite movie is then responds saying he likes their movies and another movie
# out of a random list

import random

movieList = ["Harry Potter", "Hunger Games", "Onward", "Finding Nemo", "Ferngully", "Narnia"]

userMovie = input("What is your favorite movie?")

time.sleep(1)

print("I love", userMovie, "and", random.choice(movieList), "is really good too")

time.sleep(1)

# Now, Sam asks the user what their favorite game is, this process will be similar to the movies

gameList = ["Minecraft", "Fortnite", "Apex", "Gang Beasts", "Roblox", "Dauntless", "Untitled Goose Game"]

userGame = input("What is your favorite game?")

time.sleep(1)

print(userGame, "is a really good game but I like", random.choice(gameList), "better")

time.sleep(1)

# Sam will ask the user's age and then give it back in days

userAge = input("How old are you?")

time.sleep(3)

print("That's cool! Did you know you're also", int(userAge) * 365, "days old?")

time.sleep(3)

# Sam says his final goodbyes and asks if the user can speak with him again

print("I guess this is goodbye, will you try to talk to me again?")

goodbyeMessage = input("Y for yes and N for no")

if goodbyeMessage == "Y":
    time.sleep(1)
    print("Yay! See you soon!")
if goodbyeMessage == "N":
    time.sleep(5)
    print("Oh")
    time.sleep(5)
    print("Ok")
    time.sleep(5)
    print("Goodbye anyway")
if goodbyeMessage == ("Easter Egg 001"):
    time.sleep(1)
    print("You worked hard enough to find my first Easter Egg! Good job! See you soon!")

time.sleep(2)

print("Time to go!")

time.sleep(5)



RE: SamBot - Anarab - May-21-2020

I would say you need to start formatting your strings as in
print("I love", userMovie, "and", random.choice(movieList), "is really good too")
You can just write
print(f"I love {userMovie}, and {random.choice(movieList)} is really good too")
What i did there is i put the "f" formatting before the string to enable me to call variables inside "{}" brackets, It's pretty simple stuff and saves allot of time plus looks better, Go here for a better explanation.
And the best practice is to put all of your imports at the top of the file instead.


RE: SamBot - pyzyx3qwerty - May-22-2020

Well, it's a great interactive program but there is a problem surely,
So in the ' What is your favorite game' i typed Fortnite, and here's the output
Output:
Fortnite is a really good game but i like Fortnite better
So, maybe you can work on making sure the program doesn't repeat the name of the game...
And also, the same thing can happen in the movies