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()

Recommended Answers

All 2 Replies

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.

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)
Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.