Python Forum

Full Version: I don't know if it's my error or Python error
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
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.")
Good work.
Pages: 1 2