On Sat, Aug 5, 2017 at 1:28 PM, Howard Lawrence <1019sh...@gmail.com> wrote: > # this is a guess number game. > import random > > guessesTaken = 0 > > print('hello! What is your name?') > myName = input() > > number = random.randint(1, 20) > print('Well, ' + myName + ', i am thinking of a number between 1 and 20') > > while guessesTaken < 6: > print('take a guess.') > guess = input() > guess_value = int(guess) > > guessesTaken = guessesTaken + 1 > > print("type(guess_value)=",type(guess_value)) > print("type(number)=",type(number)) > > if guess_value < number: > print('your guess is too low.') > > if guess_value > number: > print('your guess is too high.') > > if guess_value == number: > break
If the values are equal the "break" statement will exit your while loop and never see the following "if" block. > if guess_value == number: > guessesTaken = str(guessesTaken) > print ('good job, ' + myName + '! you guessed my number in ' + > guessesTaken + ' guesses!') And I suspect you only want to execute the following "if" block if the user did not guess the number in the provided six guesses. > if guess_value != number: > number = str(number) > print ('nope. the number i was thinking of was ' + number) So these final two "if" groupings should be _outside_ your while loop: while guessesTaken < 6: <All of your earlier code inside the while loop> if guess_value == number: print('good job, ' + myName + '! you guessed my number in', guessesTaken, 'guesses!') else: print('nope. the number i was thinking of was', number) Notice the differences in indentation between what is _inside_ the while loop and what now follows _outside_ the while loop. Also instead of two consecutive "if" blocks, I used the "if - else" structure. If the "if" condition is not true then the code will automatically execute the "else" block. Per what the others have said, I did not convert "guessesTaken" and "number" to strings, The print function will handle that for us. Also, with the print function if items to be printed are listed as separate arguments, that is, separated by commas, the default behavior of print is to insert a single space in the place of each comma. Inside your while loop you could use "if - elif - else" instead of your chain of three "if" statements. Have you read about these yet? If yes, then it would be more natural (Pythonic) to do things this way: while guessesTaken < 6: ... if guess_value < number: ... elif guess_value > number: ... else: break Hope all of this makes sense. If not come back with questions. Cheers! boB _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor