import random
from random import randint
x = [random.randint(1,100)]
print("Guess a number between 1 and 100.")
while True:
guess = input("")
if str(guess) == str(x):
print("Congratulations!")
elif str(guess) < str(1) or str(guess) > str(100):
print("You have to choose a number between 1 and 100.")
print("Please guess again.")
elif str(guess) < str(x):
print("Please choose a higher number.")
elif str(guess) > str(x):
print("Please choose a smaller number.")
#The problem is, is when I type in any number from 10 - 99 it forces the first elif statement to resolve and tells me to pick a number between 1 and 100. However if I type in 100 it tells me to pick a higher number.
When I change str(100) to str(99) the program works until I input 100 or higher then it tells me to pick a higher number. What am I doing wrong?
[python]
[/python]
Convert the string into an integer and not vice versa:
guess = int ( input("a number: ") )
if guess == x:
...
I converted my input string to int but it's still doing the same thing.
Then show us the new code
import random
from random import randint
x = [random.randint(1,100)]
print("Guess a number between 1 and 100.")
while True:
guess = int ( input("a numer: ") )
if str(guess) == str(x):
print("Congratulations!")
elif str(guess) < str(1) or str(guess) > str(100):
print("You have to choose a number between 1 and 100.")
print("Please guess again.")
elif str(guess) < str(x):
print("Please choose a higher number.")
elif str(guess) > str(x):
print("Please choose a smaller number.")
#!/usr/bin/python3
import random
from random import randint
x = random.randint(1,100) # <== without [ ]
print("Guess a number between 1 and 100.")
while True:
guess = int(input(""))
if guess == x:
print("Congratulations!")
elif guess < 1 or guess > 100:
print("You have to choose a number between 1 and 100.")
print("Please guess again.")
elif guess < x:
print("Please choose a higher number.")
elif guess > x:
print("Please choose a smaller number.")
You're a genius!!!!! Thank you!
What is still to do?
the user should end the program
until now, the game runs forever
# I'm trying to figure out how to end it now. This is what I have so far but it's not working.
import random
from random import randint
x = random.randint(1,100)
print("Guess a number between 1 and 100.")
active = True
while active:
guess = int(input(""))
if guess == x:
print("Congratulations! Would you like to play again?")
play_again = input("")
if play_again.lower() == 'yes' or 'y':
print("Guess a number between 1 and 100.")
elif play_again.lower() == 'no' or 'n':
print("Thanks for playing")
active = False
elif guess < 1 or guess > 100:
print("You have to choose a number between 1 and 100.")
print("Please guess again.")
elif guess < x:
print("Please choose a higher number.")
elif guess > x:
print("Please choose a smaller number.")