0

I'm trying to write a python program that guesses a number that the user chooses between 1 and 1000 in no more than 10 guesses and I can not figure it out for my life! I know it's super beginner and there are a lot of problems, but please be patient with me.

SO HERE'S MY PROGRAM SO FAR.... :

#print instructions to the user
print 'Guess a number from 1 to 1000 and I will guess what it is in less than 10 tries! After each guess, tell me either "correct", "lower", or "higher".'

#here's the guesser...

def guess():
guesses = 1
low = 0
high = 1000
trick = high-low
while guesses < 11:
lower = trick/2+low #originally 250...
higher = trick+lower #originally 750...
print trick
correct = trick

question = "Is this your number? "
user_answer = input(question)

if user_answer == lower:
high = trick
trick = lower
guesses = guesses + 1

elif user_answer == higher:
low = trick
trick = higher
guesses = guesses + 1

elif user_answer == correct:
print "Sweet! That took me", guesses, "tries!"
guesses = 10

else:
print 'Please enter "correct", "lower", or "higher"'

while not guesses < 11:
print "I'm a failure..."
guesses = 10

guess()

3
Contributors
2
Replies
7
Views
7 Years
Discussion Span
Last Post by snippsat
0

Be a little more specific what is the problem? Are you getting and error, are you getting a diffrent result than what you expected? Also wrap your code in the code tags, it makes it easier to read and locate possible mistakes.

0

Nice try.
But you have done some mistake.

lower = trick/2+low    #originally 250...
higher = trick+lower   #originally 750...

This is upp to the user,by typing 500,250.. to guess the number.
The user is doing a binary search

It was easier for me to write this than start edit your code.
Should help,mayby to much.
As a traning you could edit the code and make a function.
Set a argumet for max tries.
Som you can call it like this guess(10) # set max tries
So guess(15) will give 15 as max tries.

import random
number = random.randint(0, 1000)    
guess = 0
tries = 0

print'Guess a number(0,1000), max 10 tries'
while guess != number: 
    guess = int(raw_input ('my guess: '))       
    if guess < number:
        print('To low')
    elif guess > number:
        print('To high')
    tries += 1
    if tries >= 10:
        print'To many tries,the secret number was %s' % (number)        
        exit()        
print 'You guessed the secret number %s in %s tries' % (number, tries)
This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.