We're a community of 1076K IT Pros here for help, advice, solutions, professional growth and fun. Join us!
1,075,580 Members — Technology Publication meets Social Media

# Guess number

Hi all!

Is my first post here and well, im very new with python (just aroun 10 days). I did the famous "Guess my number" game. (Python pick up a number and user must guess it).
All right, i have not problems with this. But now im trying in the other way.

I mean, user pick up a number between 1-20 (for example), if the number isnt between 1-20, python warns about this.

Python have 5 tries to guess the number, and user should tell: first, if the number given by python is the pick up number or not. If user says "No" but is Yes, python "Kick the user for cheater", otherwise, if user say Yes -Always- (ever if isnt the user´s number) python wins.

So, if user says "No" and really is No, python ask "lower or higher?".

Im trying to do this loop with little i know about python. Here is my code. (Im stuck):

``````# Guess My Number Inverted
# This time, user pick up the number
# and python must guess it.

number = int(input("pick a number between 1 and 100: "))
while number < 1 or number > 100:
print("I told you a number between 1 - 100 bitch!!")
print("Try again and this time dont #### with me.")
number = int(input("Escribe un número entre el 1 y el 100: "))

import random

tries = 0
guess = 0

input("Ok... Let´s finish with this shit.")

while tries < 6:
guess = random.randint(1, 20)
tries +=1
response = input("\nYes/No: ")
if response == "Yes":
print("Perfect! i won!!")
print("Get the #### off of here, loser")
input("Please, press -Enter- To get the #### off of here, loser.")
break
elif response == "No":
if guess == number:
print("You fool!!! This is your number!!!!")
print("Get the #### off of here and comeback when you can play fair.")
input("Press -Enter- to exit, cheater.")
break
elif guess != number:
clue = input("Damn you!! lower or higher??: ")
if clue == "lower":
guess2 = random.randint(1, guess )
tries +=1
print("Your number is ", guess2, "?")
elif clue == "higher":
guess2 = random.randint(guess, 20)
tries +=1
print("Your number is ", guess2, "?")

if tries == 6 and guess2 != number:
print("oooooh what´s wrong? i though i was the best...")
print("Ok, you won, but you´ll not so lucky the next time.")
input("press -Enter- to exit, winner.")
``````

I think that my problem is with "guess2" and the refresh between lower and higher values of guess.

i dont know how do a loop and refresh the "guess2" between lower and higher :/.

If you could give me some clue, i thank you so much.

Thanks guys! ;)

2
Contributors
4
Replies
8 Hours
Discussion Span
10 Months Ago
Last Updated
5
Views
Testa
Newbie Poster
3 posts since Jun 2012
Reputation Points: 0
Skill Endorsements: 0

Keep lower and higher bounds both in variables, which you update by user response for random, and call it only in one place in loop.

pyTony
pyMod
Moderator
6,299 posts since Apr 2010
Reputation Points: 879
Skill Endorsements: 26

Ok. "higher" and "lower" both in variables; i suposse that the code looks like this:

``````number = int(input("pick a number between 1 and 100: "))
while number < 1 or number > 100:
print("I told you a number between 1 - 100 bitch!!")
print("Try again and this time dont #### with me.")
number = int(input("Escribe un número entre el 1 y el 100: "))
import random
tries = 0
guess = 0
higher = 0
lower = 0
``````

Nice. but i dont understand how can i update the random. I mean, i understand how can i do this one time, but for example.

• I pick up "12"

• Python pick up a random 1-20 first time, for example, 18.

• I say "No"

• Python ask me if lower or higher.

• i say then "lower".

• python give me a number between 1, and Guess (because i told him "lower"). Ok, all good right now.

(but here is where im stuck)

• If python tell me "10"

• i say "No" and "higher"

• But python give me a number between (10 , and 20, not 10, and the last number higher, in this case "18", i mean, i could give me 18 one more time, or 19 and 20.)

in my very first days with PY i could only learn "if, elif, else and while". Maybe my proposal exercise is beyond me right now? Can i achieve it only with these conditionals?

I´ll keep trying until i succeed but i wonder to know if it´s possible or not.

Thanks a lot again mate :)

Testa
Newbie Poster
3 posts since Jun 2012
Reputation Points: 0
Skill Endorsements: 0

How higher 0 in beginning, the number can be more than 0, can't it? And it can not be 0 so lower is too low also.

By the way need the computer use random numbers by your assignement? Using average of higher and lower bounds is more efficient.

pyTony
pyMod
Moderator
6,299 posts since Apr 2010
Reputation Points: 879
Skill Endorsements: 26

Ok. i´ll keep trying and explore other ways to achieve it trying average of higher/lower.
I´ll keep moving in the theory

Thanks a lot again pyTony ;)!

Testa
Newbie Poster
3 posts since Jun 2012
Reputation Points: 0