Random Number Game - Python

Medea - May 19 '22 - - Dev Community

In this tutorial, you’ll learn how to make a game where you have to guess the number picked between 1-100, only with the aid of high or low.


Table of contents

Imports
Writing the code
Finishing results


Imports

The only module you need to import is random, which will help the computer choose the random number at the start of the game.
To import it, just do the code below, at the start of the game:



import random


Enter fullscreen mode Exit fullscreen mode

Writing the code

We can start off by creating a variable called number, which holds the random number the user has to try to figure out.
You can do that by using the function random.randint() with the two inputs: 1,100, which is the range of the random number.
That is equivalent to the code below:



number = random.randint(1,100)


Enter fullscreen mode Exit fullscreen mode

Then, you have to get the first integer input the user has done, to guess the number, and save the input under a variable called guess. Around the input, you could use the function int(), to convert the string input to an integer, so later when comparing guess to number, it won’t show an error. Comparing a string and an integer creates an error.



guess = int(input("Guess a number from 1-100:\n"))


Enter fullscreen mode Exit fullscreen mode

Next, you want the program to keep on asking you what the number is until you get it right, so you use a while loop, and make it run while guess is not equal to number.
So you do:



while guess != number:


Enter fullscreen mode Exit fullscreen mode

Now you want to tell the user if the guess they have done is higher or lower than the actual number, so you use if and elif statements.
First you check if guess is greater than number, and if that is True, then it will tell the user that the number is smaller than their guess.
If the first statement is False, then you check if number is greater than guess, and if that is True, then it will tell the user that the number is larger than their guess.
Both of these statements will be inside the while loop, so they run until the user figures out what the number is.
Make sure that when printing guess with a string, you convert guess to a string as you cannot print a string with an integer on the same line.



if guess > number:
  print(f"The number is smaller than {str(guess)}")
elif number > guess:
  print(f"The number is bigger than {str(guess)}")


Enter fullscreen mode Exit fullscreen mode

If you run the code altogether and enter the input as an integer which isn't equal to number, the code will keep on running, and it won't stop.
The loop is coded to keep on running while guess is not equal to number, and as the data held in the variable guess isn't changed, the loop will keep on running.

After the if and elif statements, you have to add another line of code so the user can input what they think the guess is after they have received the high or low clue.



guess = int(input("Guess the number:\n"))


Enter fullscreen mode Exit fullscreen mode

Right now, the program doesn't tell the user when they have guessed the correct number.
So after the while loop, make the program tell the user that they have guessed the correct number and what the correct number is.



print(f"You guessed the number correctly! It was {str(number)}")


Enter fullscreen mode Exit fullscreen mode

Now, to make it a bit more fun, we can add a variable to count the amount of guesses it takes for the user to guess the number.

At the start of the code after the import, create a variable called count and set it as 1.



count = 1


Enter fullscreen mode Exit fullscreen mode

Now, before the input in the while loop, make count increase by one.



count += 1


Enter fullscreen mode Exit fullscreen mode

So the user knows at the end how many guesses it took them to figure out the correct number, tell them on the last line of code.



print(f"You guessed the correct number in {str(count)} guesses!")


Enter fullscreen mode Exit fullscreen mode

You've written the whole code!


Finishing results

The full code is:



import random
count = 1
number = random.randint(1,100)
guess = int(input("Guess a number from 1-100:\n"))
while guess != number:
    if guess > number:
        print(f"The number is smaller than {str(guess)}")
    elif number > guess:
        print(f"The number is bigger than {str(guess)}")
    count += 1
    guess = int(input("Guess the number:\n"))
print(f"You guessed the number correctly! It was {str(number)}")
print(f"You guessed the correct number in {str(count)} guesses!")


Enter fullscreen mode Exit fullscreen mode

It looks like this when it is run:

coderun


Thanks for reading, and I hope you learnt something new from this!

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .